コンテンツにスキップ

Pi の使い方

本ページでは、クイックスタートには載せきれない日常の使い方をまとめています。

対話モード

インターフェースには 4 つの主要エリアがあります:

  • 起動ヘッダー - ショートカット、読み込まれたコンテキストファイル、プロンプトテンプレート、スキル、拡張機能
  • メッセージ - ユーザーメッセージ、アシスタント応答、ツール呼び出し、ツール結果、通知、エラー、拡張 UI
  • エディター - 入力欄。枠線の色は現在の思考レベルを示す
  • フッター - 作業ディレクトリ、セッション名、トークン/キャッシュ使用量、コスト、コンテキスト使用量、現在のモデル

エディターは /settings などの組み込み UI やカスタム拡張 UI によって一時的に置き換えられます。

機能方法
ファイル参照@ を入力してプロジェクトファイルをあいまい検索
パス補完Tab でパスを補完
複数行入力Shift+Enter、または Windows Terminal では Ctrl+Enter
画像Ctrl+V で貼り付け、Windows では Alt+V、またはターミナルへドラッグ
Shell コマンド!command を実行し出力をモデルへ送信
非表示 Shell コマンド!!command を実行するが出力はモデルへ送信しない
外部エディターCtrl+G で $VISUAL または $EDITOR を開く

すべてのショートカットとカスタマイズは Keybindings を参照してください。

エディターで / を入力するとコマンド補完が開きます。拡張機能はカスタムコマンドを登録でき、スキルは /skill:name、プロンプトテンプレートは /templatename で展開されます。

コマンド説明
/login/logoutOAuth または API キー認証情報を管理
/modelモデルを切り替え
/scoped-modelsCtrl+P サイクル用モデルの有効/無効
/settings思考レベル、テーマ、メッセージ配信、トランスポート
/resume過去のセッションから選択
/new新しいセッションを開始
/name <name>セッション表示名を設定
/sessionセッションファイル、ID、メッセージ、トークン、コストを表示
/treeセッション内の任意の地点へジャンプしてそこから続行
/fork過去のユーザーメッセージから新しいセッションを作成
/clone現在のアクティブブランチを新しいセッションに複製
/compact [prompt]コンテキストを手動で圧縮。任意でカスタム指示
/copy最後のアシスタントメッセージをクリップボードにコピー
/export [file]セッションを HTML にエクスポート
/share非公開 GitHub gist にアップロードし共有可能な HTML リンクを取得
/reloadキーバインド、拡張、スキル、プロンプト、コンテキストファイルを再読み込み
/hotkeysすべてのキーボードショートカットを表示
/changelogバージョン履歴を表示
/quitpi を終了

エージェントがまだ作業中でもメッセージを送信できます:

  • Enter はステアリングメッセージをキューに入れ、現在のアシスタントターンがツール呼び出しの実行を終えた後に配信されます。
  • Alt+Enter はフォローアップメッセージをキューに入れ、エージェントがすべての作業を終えた後に配信されます。
  • Escape は中止し、キュー内のメッセージをエディターに戻します。
  • Alt+Up はキュー内のメッセージをエディターに取り戻します。

Windows Terminal では Alt+Enter はデフォルトで全画面表示です。pi がそのショートカットを受け取るには、Terminal setup の説明に従って再マップしてください。

配信は SettingssteeringModefollowUpMode で設定します。

セッションは作業ディレクトリごとに整理され、~/.pi/agent/sessions/ に自動保存されます。

Terminal window
pi -c # 直近のセッションを続行
pi -r # セッションを閲覧して選択
pi --no-session # 一時モード。保存しない
pi --name "my task" # 起動時にセッション表示名を設定
pi --session <path|id> # 特定のセッションファイルまたはセッション ID を使用
pi --fork <path|id> # セッションを新しいセッションファイルにフォーク

便利なセッションコマンド:

  • /session は現在のセッションファイルと ID を表示します。
  • /tree はファイル内のセッションツリーを移動し、放棄されたブランチを要約できます。
  • /fork はより前のユーザーメッセージから新しいセッションを作成します。
  • /clone は現在のアクティブブランチを新しいセッションファイルに複製します。
  • /compact は古いメッセージを要約してコンテキストを解放します。

詳細は SessionsCompaction を参照してください。

Pi は起動時に次の場所から AGENTS.md または CLAUDE.md を読み込みます:

  • グローバル指示用の ~/.pi/agent/AGENTS.md
  • 現在の作業ディレクトリから上へたどる親ディレクトリ
  • 現在のディレクトリ

コンテキストファイルには、プロジェクトの規約、コマンド、安全ルール、設定を記載します。--no-context-files または -nc で読み込みを無効にできます。

デフォルトのシステムプロンプトは次で置き換えられます:

  • プロジェクト用の .pi/SYSTEM.md
  • グローバル用の ~/.pi/agent/SYSTEM.md

いずれかの場所の APPEND_SYSTEM.md で、デフォルトを置き換えずに追記できます。

対話起動時、プロジェクトローカルの設定、リソース、またはプロジェクト .agents/skills を含むプロジェクトフォルダがあり、~/.pi/agent/trust.json にそのフォルダまたは親フォルダの保存済み決定がない場合、pi は信頼する前に確認します。

プロジェクトを信頼すると、pi は .pi/settings.json.pi リソースの読み込み、不足しているプロジェクトパッケージのインストール、プロジェクト拡張の実行が可能になります。

信頼決定の前に、pi はコンテキストファイル、ユーザー/グローバル拡張、CLI -e 拡張のみを読み込み、project_trust イベントを処理できるようにします。プロジェクトローカル拡張、プロジェクトパッケージ管理の拡張、プロジェクト設定は、プロジェクトが信頼された後にのみ読み込まれます。信頼が現在のプロセスで未解決の別 cwd のセッションに切り替える場合も同様です。

非対話モード(-p--mode json--mode rpc)では信頼プロンプトは表示されません。適用可能な保存済み信頼決定がない場合、グローバル設定の defaultProjectTrust を使用します:ask(デフォルト)と never はそれらのプロジェクトリソースを無視し、always は信頼します。--approve/-a または --no-approve/-na で 1 回の実行のプロジェクト信頼を上書きできます。

拡張または保存済み決定が適用されない場合、defaultProjectTrust がフォールバック動作を制御します。~/.pi/agent/settings.json"ask""always""never" に設定するか、/settings で変更してください。

pi config とパッケージコマンドは同じプロジェクト信頼フローを使用しますが、pi update はプロンプトしません。--approve で 1 コマンド分プロジェクトローカル設定を信頼するか、--no-approve で無視します。

対話モードで /trust を使うと、直接の親フォルダの信頼を含め、将来のセッション用にプロジェクト信頼決定を保存できます。書き込むのは ~/.pi/agent/trust.json のみです。現在のセッションは再読み込みされないため、変更を反映するには pi を再起動してください。

セッションのエクスポートと共有

Section titled “セッションのエクスポートと共有”

/export [file] でセッションを HTML に書き出します。

/share で非公開 GitHub gist にアップロードし、共有可能な HTML リンクを取得します。

オープンソース作業で pi を使い、モデル、プロンプト、ツール、評価研究用にセッションを公開したい場合は badlogic/pi-share-hf を参照してください。Hugging Face データセットにセッションを公開します。

Terminal window
pi [options] [@files...] [messages...]
Terminal window
pi install <source> [-l] # パッケージをインストール。-l はプロジェクトローカル
pi remove <source> [-l] # パッケージを削除
pi uninstall <source> [-l] # remove のエイリアス
pi update [source|self|pi] # pi のみ、または 1 つのパッケージソースを更新
pi update --all # pi とパッケージを更新。固定 git ref を調整
pi update --extensions # パッケージのみ更新。固定 git ref を調整
pi update --self # pi のみ更新
pi update --extension <src> # 1 つのパッケージを更新
pi list # インストール済みパッケージを一覧
pi config # パッケージリソースの有効/無効

これらのコマンドは pi パッケージを管理し、pi update は pi CLI インストール自体も更新できます。pi 自体をアンインストールするには Quickstart を参照してください。pi config とプロジェクトパッケージコマンドは --approve/--no-approve を受け付け、1 コマンド分プロジェクトローカル設定を信頼または無視します。pi update はプロジェクト信頼をプロンプトしません。

パッケージソースとセキュリティに関する注意は Pi Packages を参照してください。

フラグ説明
default対話モード
-p--print応答を表示して終了
--mode jsonすべてのイベントを JSON 行で出力。JSON mode を参照
--mode rpcstdin/stdout 経由の RPC モード。RPC mode を参照
--export <in> [out]セッションを HTML にエクスポート

print モードでは、pi はパイプされた stdin も読み取り、初期プロンプトにマージします:

Terminal window
cat README.md | pi -p "Summarize this text"
オプション説明
--provider <name>anthropicopenaigoogle などのプロバイダー
--model <pattern>モデルパターンまたは ID。provider/id と任意の :<thinking> をサポート
--api-key <key>環境変数を上書きする API キー
--thinking <level>offminimallowmediumhighxhigh
--models <patterns>Ctrl+P サイクル用のカンマ区切りパターン
--list-models [search]利用可能なモデルを一覧
オプション説明
-c--continue直近のセッションを続行
-r--resumeセッションを閲覧して選択
--session <path|id>特定のセッションファイルまたは部分 UUID を使用
--fork <path|id>セッションファイルまたは部分 UUID を新しいセッションにフォーク
--session-dir <dir>カスタムセッション保存ディレクトリ
--no-session一時モード。保存しない
--name <name>-n <name>起動時にセッション表示名を設定
オプション説明
--tools <list>-t <list>特定の組み込み、拡張、カスタムツールを許可リスト
--exclude-tools <list>-xt <list>特定の組み込み、拡張、カスタムツールを無効化
--no-builtin-tools-nbt組み込みツールを無効化。拡張/カスタムツールは有効のまま
--no-tools-ntすべてのツールを無効化

組み込みツール:readbasheditwritegrepfindls

オプション説明
-e--extension <source>パス、npm、git から拡張を読み込み。繰り返し可能
--no-extensions拡張の自動検出を無効化
--skill <path>スキルを読み込み。繰り返し可能
--no-skillsスキルの自動検出を無効化
--prompt-template <path>プロンプトテンプレートを読み込み。繰り返し可能
--no-prompt-templatesプロンプトテンプレートの自動検出を無効化
--theme <path>テーマを読み込み。繰り返し可能
--no-themesテーマの自動検出を無効化
--no-context-files-ncAGENTS.mdCLAUDE.md の自動検出を無効化

--no-* と明示的フラグを組み合わせ、設定を無視して必要なものだけを読み込めます。例:

Terminal window
pi --no-extensions -e ./my-extension.ts
オプション説明
--system-prompt <text>デフォルトプロンプトを置換。コンテキストファイルとスキルは引き続き追記
--append-system-prompt <text>システムプロンプトに追記
--verbose詳細起動を強制
-a--approveこの実行でプロジェクトローカルファイルを信頼
-na--no-approveこの実行でプロジェクトローカルファイルを無視
-h--helpヘルプを表示
-v--versionバージョンを表示

ファイルの前に @ を付けてメッセージに含めます:

Terminal window
pi @prompt.md "Answer this"
pi -p @screenshot.png "What's in this image?"
pi @code.ts @test.ts "Review these files"
Terminal window
# 初期プロンプト付き対話
pi "List all .ts files in src/"
# 非対話
pi -p "Summarize this codebase"
# パイプ stdin 付き非対話
cat README.md | pi -p "Summarize this text"
# 名前付きワンショットセッション
pi --name "release audit" -p "Audit this repository"
# 別モデル
pi --provider openai --model gpt-4o "Help me refactor"
# プロバイダープレフィックス付きモデル
pi --model openai/gpt-4o "Help me refactor"
# 思考レベル省略記法付きモデル
pi --model sonnet:high "Solve this complex problem"
# モデルサイクルを制限
pi --models "claude-*,gpt-4o"
# 読み取り専用モード
pi --tools read,grep,find,ls -p "Review the code"
# 1 つの拡張または組み込みツールを無効化し、残りは利用可能
pi --exclude-tools ask_question
変数説明
PI_CODING_AGENT_DIR設定ディレクトリを上書き。デフォルトは ~/.pi/agent
PI_CODING_AGENT_SESSION_DIRセッション保存ディレクトリを上書き。--session-dir で上書きされる
PI_PACKAGE_DIRパッケージディレクトリを上書き。Nix/Guix store パスに有用
PI_OFFLINE起動時のネットワーク操作(更新チェック、パッケージ更新チェック、インストール/更新テレメトリ)を無効化
PI_SKIP_VERSION_CHECK起動時の Pi バージョン更新チェックをスキップ。pi.dev への最新バージョン要求を防ぐ
PI_TELEMETRYインストール/更新テレメトリとプロバイダー帰属ヘッダーを上書き:1/true/yes または 0/false/no。更新チェックは無効化しない
PI_CACHE_RETENTIONサポートされる環境で long に設定するとプロンプトキャッシュを延長
VISUALEDITORCtrl+G 用の外部エディター

Pi はコアを小さく保ち、ワークフロー固有の動作は拡張、スキル、プロンプトテンプレート、パッケージに委ねます。

組み込み MCP、サブエージェント、権限ポップアップ、プランモード、To-do、バックグラウンド bash は意図的に含まれません。それらのワークフローは拡張やパッケージとして構築・インストールするか、コンテナや tmux などの外部ツールを使えます。

詳細な理由はブログ記事をお読みください。