0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pi Coding Agent 拡張サンプル一覧

0
Last updated at Posted at 2026-09-13

Pi Coding Agent 拡張サンプル一覧

執筆時のPiバージョン: 0.85.1

Piのインストールフォルダ/examples/extensions/ 以下に公式サンプル拡張が沢山ありますが、ひとつひとつ見る時間がないのでLLMに説明してもらいました。
インストールフォルダはwhich piで確認してください。

使い方:

# 一時的に読み込んで試す
pi -e examples/extensions/notify.ts

# 常用するなら auto-discovery 位置へコピー(/reload 対応)
cp notify.ts ~/.pi/agent/extensions/   # 全プロジェクトで有効
cp notify.ts .pi/extensions/           # そのプロジェクトのみ有効

ライフサイクル & 安全性

ファイル 説明
permission-gate.ts rm -rf、sudo など危険なbashコマンド実行前に確認ダイアログを表示
project-trust.ts project_trust イベントによるプロジェクト信頼の処理をデモ
protected-paths.ts 保護パス(.env、.git/、node_modules/)への書き込みをブロック
confirm-destructive.ts セッション破壊的操作(clear / switch / fork)の前に確認
dirty-repo-guard.ts 未コミットの変更がある場合にセッション操作を防止
sandbox/ @anthropic-ai/sandbox-runtime によるOSレベルのサンドボックス化(プロジェクト別設定)
gondolin/ 組み込みツールと ! コマンドを Gondolin マイクロVMにルーティング

カスタムツール

ファイル 説明
todo.ts Todoリストツール + /todos コマンド(カスタム描画・状態の永続化)
hello.ts 最小構成のカスタムツール例
question.ts ctx.ui.select() でユーザーに質問するUIをデモ
questionnaire.ts タブバーで移動できる複数質問の入力フォーム
tool-override.ts 組み込みツールの上書き(例: read にロギング/アクセス制御を追加)
dynamic-tools.ts 起動後や実行時コマンド経由でツールを登録(プロンプト断片・ガイドライン付き)
kimi-deferred-tools.ts Kimiの遅延ツールローディングプロトコル対応(検索→段階的有効化)
structured-output.ts terminate: true を返してエージェントを終了させる構造化出力ツール
built-in-tool-renderer.ts 組み込みツール(read / bash / edit / write)のコンパクト表示(挙動は維持)
minimal-mode.ts ツール呼び出しだけ表示し出力を省くミニマル表示への上書き
truncated-tool.ts 出力の適切な切り詰め(50KB / 2000行)付きの ripgrep ラッパー
ssh.ts 全ツールをSSH経由でリモートマシンに委譲
subagent/ 隔離されたコンテキストを持つ専門サブエージェントにタスクを委譲

コマンド & UI

ファイル 説明
preset.ts モデル・thinking レベル・ツール・指示の名前付きプリセット(--preset と /preset)
plan-mode/ Claude Code風プランモード(読み取り専用探索、/plan コマンド、ステップ追跡)
tools.ts ツールの有効/無効を切り替える対話的 /tools コマンド(セッションで永続)
handoff.ts コンテキストを新しい集中セッションに引き継ぐ /handoff <goal>
qna.ts 最終応答から質問を抽出してエディタに流し込む(ctx.ui.setEditorText())
status-line.ts フッターにターン進捗を表示(ctx.ui.setStatus())
github-issue-autocomplete.ts #1234 形式のIssue番号オートコンプリート(gh issue list から取得)
widget-placement.ts エディタの上下にウィジェットを配置(ctx.ui.setWidget())
hidden-thinking-label.ts 折りたたみ時のthinkingラベルをカスタマイズ
working-indicator.ts ストリーミング中のworking表示をカスタマイズ
model-status.ts モデル変更をステータスバーに表示(model_select フック)
send-user-message.ts pi.sendUserMessage() で拡張からユーザーメッセージを送信するデモ
timed-confirm.ts AbortSignal による自動消滅する confirm / select ダイアログ
rpc-demo.ts RPC対応の拡張UIメソッドを全て試す(rpc-extension-ui.ts とペア)
modal-editor.ts Vim風モーダルエディタ(ctx.ui.setEditorComponent())
rainbow-editor.ts 虹色アニメーションするカスタムエディタ
notify.ts エージェント完了時にデスクトップ通知(OSC 777 / Ghostty, iTerm2, WezTerm)
titlebar-spinner.ts 動作中にターミナルタイトルへ点字スピナーをアニメーション表示
summarize.ts 会話をGPT-5.2で要約して一時UIに表示
custom-footer.ts ブランチ名とトークン統計を含むカスタムフッター
custom-header.ts カスタムヘッダー(ctx.ui.setHeader())
overlay-test.ts インライン入力付きオーバーレイ合成のテスト
overlay-qa-tests.ts オーバーレイQAテスト(アンカー・マージン・重なり・オーバーフロー・アニメーション)
doom-overlay/ 35FPSで動くDOOM(オーバーレイのリアルタイム描画デモ)🎮
shutdown-command.ts ctx.shutdown() を使う /quit コマンド
reload-runtime.ts 安全なリロードフローを示す /reload-runtime と reload_runtime ツール
interactive-shell.ts user_bash フックで vim、htop など対話コマンドをフル端末で実行
inline-bash.ts プロンプト中の !{command} を展開(input イベント変換)
input-transform-streaming.ts ストリーミング中のステアリング用に重い前処理をスキップ(streamingBehavior)
snake.ts カスタムUI・キー入力・セッション永続化を持つスネークゲーム
space-invaders.ts Kittyキーボードプロトコル(押下/解放検出)による滑らかな移動のゲーム /invaders
tic-tac-toe.ts エージェントと対戦する三目並べ(executionMode: "sequential" で競合回避)

Git 連携

ファイル 説明
git-checkpoint.ts 各ターンでstashチェックポイントを作成し、fork時にコード復元可能に
auto-commit-on-exit.ts 終了時に最後のアシスタントメッセージをコミットメッセージにして自動コミット
git-merge-and-resolve.ts 毎ターン後にfetch & merge。競合時はエージェントに競合ブロック一覧を送り解決させる

システムプロンプト & コンパクション

ファイル 説明
pirate.ts systemPromptAppend でシステムプロンプトを動的変更(海賊語にするだけのデモ)
claude-rules.ts .claude/rules/ フォルダを走査してルール一覧をシステムプロンプトに載せる
prompt-customizer.ts 有効なツール/スキルに応じたガイダンスを systemPromptOptions で追加
system-prompt-header.ts システムプロンプトの長さをステータスウィジェット表示(ctx.getSystemPrompt())
custom-compaction.ts 会話全体を要約するカスタムコンパクション
trigger-compact.ts コンテキストが100kトークン超えたら自動コンパクト + /trigger-compact コマンド

システム統合

ファイル 説明
mac-system-theme.ts macOSのダーク/ライトモードとpiテーマを同期
bash-spawn-hook.ts bash実行前にコマンド・cwd・環境変数を調整するフック
file-trigger.ts トリガーファイルを監視し、内容を会話に注入
provider-payload.ts プロバイダ送信ペイロードをログ記録(置換も可)

リソース

ファイル 説明
dynamic-resources/ resources_discover でスキル・プロンプト・テーマを動的ロード

メッセージ & 通信

ファイル 説明
message-renderer.ts 色付き・展開可能詳細付きのカスタムメッセージ描画(registerMessageRenderer)
entry-renderer.ts TUIのみのセッションエントリ描画(appendEntry + registerEntryRenderer)
event-bus.ts pi.events による拡張間通信
input-transform.ts input イベントでユーザー入力を変換(?quick 接頭辞、ping→pong など)

セッションメタデータ

ファイル 説明
session-name.ts セッションセレクタ用にセッション名を付ける(setSessionName)
bookmark.ts ラベル付きブックマークで /tree ナビゲーションを補助(setLabel)

カスタムプロバイダ

ファイル 説明
custom-provider-anthropic/ OAuth対応・カスタムストリーミング実装のAnthropicプロバイダ
custom-provider-gitlab-duo/ pi-ai内蔵のAnthropic/OpenAIストリーミングをプロキシ経由で使うGitLab Duoプロバイダ

その他

ファイル 説明
with-deps/ 独自 package.json と依存を持つ拡張(jitiのモジュール解決のデモ)
working-message-test.ts workingメッセージがターン間で永続するかの検証用テスト
border-status-editor.ts 境界付きカスタムエディタコンポーネントの実装例
commands.ts pi.getCommands() でスラッシュコマンド一覧を表示する /commands
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?