Piの使用
このページには、クイックスタート ページには収まらない日常の使用状況の詳細が収集されます。
インタラクティブモード

インターフェイスには 4 つの主要な領域があります。
- スタートアップ ヘッダー - ショートカット、ロードされた context files、prompt templates、スキル、および拡張機能
- メッセージ - ユーザー メッセージ、アシスタントの応答、ツール呼び出し、ツールの結果、通知、エラー、拡張機能 UI
- エディタ - 入力する場所。境界線の色は現在の思考レベルを示します
- フッター - 作業ディレクトリ、セッション名、トークン/キャッシュの使用状況、コスト、コンテキストの使用状況、および現在のモデル。合計には、アシスタントの応答、ツールによって報告された使用状況、および概要の生成が含まれます。
エディターは、/settings などの組み込み UI またはカスタム拡張 UI に一時的に置き換えることができます。
エディターの機能
| 特徴 | どうやって |
|---|---|
| ファイルリファレンス | プロジェクト ファイルをあいまい検索するには、「@」と入力します。 |
| パスの完成 | Tab キーを押してパスを完成させます |
| 複数行入力 | Windows ターミナルの Shift+Enter、または Ctrl+Enter |
| 応答をコピーする | Ctrl+X は最後のアシスタント メッセージをコピーします。 /treeでは、選択したメッセージをコピーします |
| 画像 | Windows では Ctrl+V、Alt+V を押して貼り付けるか、ターミナルにドラッグします |
| シェルコマンド | !command が実行され、出力がモデルに送信されます |
| 隠しシェルコマンド | !!command は出力をモデルに送信せずに実行されます |
| 外部エディター | Ctrl+G で externalEditor、$VISUAL、$EDITOR、Windows のメモ帳、またはその他の場所で nano が開きます |
すべてのショートカットとカスタマイズについては、Keybindings を参照してください。
スラッシュコマンド
エディターに「/」と入力してコマンド補完を開きます。 Extensionsはカスタムコマンドを登録でき、スキルは/skill:nameとして利用可能で、prompt templatesは/templatenameを介して拡張されます。
| 指示 | 説明 |
|---|---|
/login, /logout |
OAuth または API キー認証情報を管理する |
/llama |
llama.cpp ルーター モデルのダウンロード、ロード、アンロード |
/model |
モデルの切り替え |
/scoped-models |
Ctrl+P サイクリングのモデルを有効/無効にする |
/settings |
思考レベル、テーマ、メッセージ配信、トランスポート |
/resume |
前のセッションからのPick |
/new |
新しいセッションを開始する |
/name <name> |
セッション表示名の設定 |
/session |
セッションファイル、ID、メッセージ、トークン、コストを表示します |
/tree |
セッション内の任意の時点にジャンプし、そこから続行します |
/trust |
プロジェクトの信頼決定を将来のセッションのために保存する |
/fork |
以前のユーザー メッセージから新しいセッションを作成する |
/clone |
現在のアクティブなブランチを新しいセッションに複製します。 |
/compact [prompt] |
手動でコンテキストを圧縮(オプションでカスタム命令を使用) |
/copy |
最後のアシスタント メッセージをクリップボードにコピーします |
/export [file] |
セッションを HTML または JSONL にエクスポート |
/import <file> |
JSONL ファイルからセッションをインポートして再開する |
/share |
共有可能な HTML リンクを使用してプライベート GitHub 要点としてアップロードします |
/reload |
キーバインド、拡張機能、スキル、プロンプト、テーマ、および context files をリロードします |
/hotkeys |
すべてのキーボード ショートカットを表示 |
/changelog |
バージョン履歴を表示する |
/quit |
円周率をやめる |
メッセージキュー
エージェントが動作している間にメッセージを送信できます。
- Enter は、現在のアシスタント ターンがツール呼び出しの実行を終了した後に配信されるステアリング メッセージをキューに入れます。
- Alt+Enter はフォローアップ メッセージをキューに入れ、エージェントがすべての作業を完了した後に配信します。
- Escape は中止され、キューに入れられたメッセージをエディタに復元します。
- Alt+Up は、キューに入れられたメッセージをエディタに取得します。
Windows ターミナルでは、Alt+Enter はデフォルトで全画面表示になります。 pi がショートカットを受信できるようにする場合は、Terminal setup で説明されているように再マッピングします。
Settings での配信を steeringMode と followUpMode で構成します。
セッション
セッションは、作業ディレクトリごとに整理されて、~/.pi/agent/sessions/ に自動的に保存されます。
pi -c # Continue most recent session
pi -r # Browse and select a session
pi --no-session # Ephemeral mode; do not save
pi --name "my task" # Set session display name at startup
pi --session <path|id> # Use a specific session file or session ID
pi --fork <path|id> # Fork a session into a new session file便利なセッションコマンド:
/sessionは、現在のセッション ファイルと ID を示します。/treeはファイル内 session tree をナビゲートし、放棄されたブランチを要約できます。/forkは、以前のユーザー メッセージから新しいセッションを作成します。/cloneは、現在のアクティブなブランチを新しいセッション ファイルに複製します。/compactは、古いメッセージを自由なコンテキストに要約します。
詳細については、Sessions および Compaction を参照してください。
コンテキストファイル
Pi は、起動時に以下から AGENTS.md または CLAUDE.md をロードします。
~/.pi/agent/AGENTS.mdグローバル命令- 親ディレクトリ、現在の作業ディレクトリから上に移動
- 現在のディレクトリ
ディレクトリに AGENTS.override.md が含まれている場合、Pi はそのディレクトリから AGENTS.md または CLAUDE.md の代わりにそれをロードします。他のディレクトリのコンテキスト ファイルは引き続き通常どおり階層化されます。
プロジェクトの規則、コマンド、安全ルール、および設定には context files を使用します。 --no-context-files または -nc でロードを無効にします。
システムプロンプトファイル
デフォルトのシステム プロンプトを次のものに置き換えます。
- プロジェクトの場合は
.pi/SYSTEM.md ~/.pi/agent/SYSTEM.md世界中で
どちらの場所でも、デフォルトのプロンプトを APPEND_SYSTEM.md に置き換えずに追加します。
プロジェクトトラスト
インタラクティブな起動時に、pi は、プロジェクトのローカル設定、リソース、またはプロジェクト .agents/skills が含まれており、~/.pi/agent/trust.json のフォルダーまたは親フォルダーに対する決定が保存されていないプロジェクト フォルダーを信頼する前に質問します。プロジェクトを信頼すると、pi は .pi/settings.json および .pi リソースをロードし、不足しているプロジェクト パッケージをインストールし、プロジェクト拡張機能を実行できます。
信頼決定の前に、pi は、project_trust イベントを処理できるように、context files、ユーザー/グローバル拡張、および CLI -e 拡張のみをロードします。プロジェクト ローカル拡張機能、プロジェクト パッケージ管理拡張機能、およびプロジェクト設定は、プロジェクトが信頼された後にのみ読み込まれます。この分割は、現在のプロセスで信頼が解決されていない別の 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 がプロンプトを表示しないことを除き、同じプロジェクト信頼フローを使用します。 1 つのコマンドに対してプロジェクトのローカル設定を信頼するには --approve を、無視するには --no-approve を渡します。
対話モードで /trust を使用すると、直接の親フォルダーに対する信頼を含め、将来のセッションのためにプロジェクトの信頼決定を保存できます。 ~/.pi/agent/trust.json のみを書き込みます。現在のセッションはリロードされないため、変更を有効にするために pi を再起動します。
セッションのエクスポートと共有
/export [file] を使用してセッションを HTML に書き込みます。
/share を使用して、共有可能な HTML リンクを含むプライベート GitHub 要点をアップロードします。
オープンソース作業に pi を使用し、モデル、プロンプト、ツール、評価研究のセッションを公開したい場合は、badlogic/pi-share-hf を参照してください。セッションを Hugging Face データセットに公開します。
CLI 参考
pi [options] [@files...] [messages...]パッケージコマンド
pi install <source> [-l] # Install package, -l for project-local
pi remove <source> [-l] # Remove package
pi uninstall <source> [-l] # Alias for remove
pi update [source|self|pi] # Update pi only, or one package source
pi update --all # Update pi and packages; reconcile pinned git refs
pi update --extensions # Update packages only; reconcile pinned git refs
pi update --models # Refresh model catalogs only
pi update --self # Update pi only
pi update --extension <src> # Update one package
pi list # List installed packages
pi config # Enable/disable package resourcesこれらのコマンドは pi パッケージを管理し、pi update で pi CLI のインストールを更新できます。 pi 自体をアンインストールするには、Quickstart を参照してください。 pi config およびプロジェクト パッケージ コマンドは、--approve/--no-approve を受け入れて、1 つのコマンドのプロジェクト ローカル設定を信頼または無視します。 pi update はプロジェクトの信頼を求めるプロンプトを表示しません。
パッケージのソースとセキュリティに関する注意事項については、Pi Packages を参照してください。
モード
| フラグ | 説明 |
|---|---|
| デフォルト | インタラクティブモード |
-p, --print |
応答を出力して終了する |
--mode json |
すべてのイベントを JSON 行として出力します。 JSON modeを参照 |
--mode rpc |
stdin/stdout を上回る RPC モード。 RPC modeを参照 |
--export <in> [out] |
セッションを HTML にエクスポートする |
印刷モードでは、pi はパイプされた stdin も読み取り、それを最初のプロンプトにマージします。
cat README.md | pi -p "Summarize this text"モデルオプション
| オプション | 説明 |
|---|---|
--provider <name> |
プロバイダー (anthropic、openai、google など) |
--model <pattern> |
モデルのパターンまたは ID。 provider/id とオプションの :<thinking> をサポートします |
--api-key <key> |
API key、環境変数を上書きする |
--thinking <level> |
off, minimal, low, medium, high, xhigh, max |
--models <patterns> |
Ctrl+P サイクルのカンマ区切りパターン |
--list-models [search] |
利用可能なモデルをリストする |
セッションオプション
| オプション | 説明 |
|---|---|
-c, --continue |
最新のセッションを継続する |
-r, --resume |
セッションを参照して選択します |
| `--セッション<パス\ | ID>` |
| `--fork <パス\ | ID>` |
--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 |
すべてのツールを無効にする |
内蔵ツール: read、bash、edit、write、grep、find、ls。
リソースオプション
| オプション | 説明 |
|---|---|
-e, --extension <source> |
パス、npm、または git から拡張機能をロードします。繰り返し可能な |
--no-extensions |
拡張機能の検出を無効にする |
--skill <path> |
スキルをロードします。繰り返し可能な |
--no-skills |
スキル検出を無効にする |
--prompt-template <path> |
プロンプトテンプレートをロードします。繰り返し可能な |
--no-prompt-templates |
プロンプトテンプレート検出を無効にする |
--theme <path> |
テーマをロードします。繰り返し可能な |
--no-themes |
テーマの検出を無効にする |
--no-context-files, -nc |
AGENTS.md および CLAUDE.md 検出を無効にする |
--no-* を明示的なフラグと組み合わせて、設定を無視して必要なものを正確にロードします。例:
pi --no-extensions -e ./my-extension.tsその他のオプション
| オプション | 説明 |
|---|---|
--system-prompt <text> |
デフォルトのプロンプトを置き換えます。 context files とスキルはまだ追加されています |
--append-system-prompt <text> |
システムプロンプトに追加 |
--tui-mode <mode> |
TUI モード: regular (デフォルト) または実験的 fullscreen |
--verbose |
冗長起動を強制する |
-a, --approve |
この実行に対してプロジェクト ローカル ファイルを信頼する |
-na, --no-approve |
この実行ではプロジェクトのローカル ファイルを無視します |
-h, --help |
ヘルプを表示する |
-v, --version |
バージョンを表示 |
fullscreen モードでは、トランスクリプトはターミナル ビューポート内でスクロールしますが、キューに入れられたメッセージ、作業ステータス、拡張機能ウィジェット、エディタ、およびフッターは下部に固定されたままになります。マウス/トラックパッド入力により、ポインタの下の領域がスクロールされます。キーボード ビューポート アクションは常に利用可能です。インライン イメージは、Kitty や Ghostty など、Kitty グラフィックス プロトコルをサポートする端末で動作します。 iTerm2 では、インライン画像プロトコルではアプリケーション所有のスクロール中にプレースメントを削除したりトリミングしたりできないため、テキスト プレースホルダーとしてレンダリングされます。 regular モードでは、pi はメイン画面と端末所有のスクロールバックを使用し、iTerm2 インライン イメージは通常どおりレンダリングを続けます。
/settings で TUI モード を設定すると、regular と fullscreen がすぐに切り替わり、今後のセッションでデフォルトを選択できます。 全画面終了出力 は、全画面を終了して最終的なトランスクリプトを印刷するか、前の画面に戻してセッション再開のヒントのみを印刷するかを制御します。
ファイル引数
ファイルをメッセージに含めるには、ファイルの前に @ を付けます。
pi @prompt.md "Answer this"
pi -p @screenshot.png "What's in this image?"
pi @code.ts @test.ts "Review these files"例
# Interactive with initial prompt
pi "List all .ts files in src/"
# Non-interactive
pi -p "Summarize this codebase"
# Non-interactive with piped stdin
cat README.md | pi -p "Summarize this text"
# Named one-shot session
pi --name "release audit" -p "Audit this repository"
# Different model
pi --provider openai --model gpt-4o "Help me refactor"
# Model with provider prefix
pi --model openai/gpt-4o "Help me refactor"
# Model with thinking level shorthand
pi --model sonnet:high "Solve this complex problem"
# Limit model cycling
pi --models "claude-*,gpt-4o"
# Read-only mode
pi --tools read,grep,find,ls -p "Review the code"
# Disable one extension or built-in tool while keeping the rest available
pi --exclude-tools ask_question設計原則
Pi はコアを小さく保ち、ワークフロー固有の動作を拡張機能、スキル、prompt templates、およびパッケージにプッシュします。
これには、組み込みの MCP、サブエージェント、権限ポップアップ、プラン モード、To-Do、またはバックグラウンド bash は意図的に含まれていません。これらのワークフローは、拡張機能またはパッケージとして構築またはインストールすることも、コンテナーや tmux などの外部ツールを使用することもできます。
完全な理論的根拠については、blog post をお読みください。