aipanel-cli
v0.3.0
Published
CLI broker and orchestrator for consult, followup, and debug workflows with Claude Code and Codex.
Maintainers
Readme
aipanel
aipanel は、Claude Code と Codex を provider として使いながら、相談、継続会話、デバッグ調査を CLI で進めるための TypeScript 製 broker / orchestrator です。
現時点の phase 1 では、claude-code と codex の direct provider を前提に、Session / Run / Artifact を aipanel 側で正本管理します。
Current Status
- phase 1 実装済み
- provider は
claude-code,codex - 利用可能 command は
providers,consult,followup,debug compareは phase 1 の対象外
Setup
corepack enable
pnpm install
pnpm run buildMakefile を使う場合は以下でも同じです。
make install
make buildビルド後は以下で実行できます。
node dist/bin/aipanel.js providers --json
pnpm start providers --json
make smokebuild 前に source から直接試すなら:
pnpm run dev providers --json
make devQuick Start
最短で使うならこの 4 つです。
node dist/bin/aipanel.js providers --json
node dist/bin/aipanel.js consult "この設計どう?" --json
node dist/bin/aipanel.js followup --session session_xxx "この続きで確認したい" --json
node dist/bin/aipanel.js debug "この不具合の根本原因は?" --json提出前の標準チェック:
pnpm run lint
pnpm run typecheck
pnpm testWorktree Shortcut
aipanel 直下の .worktree/ に Git worktree を増やしたいときは、以下のショートカットが使えます。
pnpm run worktree:add feature/debug-ui
make worktree-add BRANCH=feature/debug-ui補足:
- 既存の local branch があればその branch をそのまま開きます
origin/<branch>だけ存在する場合は tracking branch を作ります- どちらもない場合は
HEADから新しい branch を作ります - 配置先は
.worktree/<branch>です
base を変えたい場合:
pnpm run worktree:add feature/debug-ui --base origin/main
make worktree-add BRANCH=feature/debug-ui BASE=origin/main一覧確認:
pnpm run worktree:list
make worktree-listPackage Install
公開後は package として install できます。
pnpm add -g aipanel-cli
aipanel providers --json2026-03-11 JST 時点で、registry 経由の pnpm add --dir "$tmpdir" aipanel-cli と pnpm --dir "$tmpdir" exec aipanel providers --json まで確認済みです。
公開前のローカル確認は tarball か Makefile で行えます。
tmpdir="$(mktemp -d)"
pnpm pack --out aipanel-cli-local.tgz
pnpm add --dir "$tmpdir" "$(pwd)/aipanel-cli-local.tgz"
pnpm --dir "$tmpdir" exec aipanel providers --json
rm -f aipanel-cli-local.tgzmake pack-dry-run
make verify-package公開前の最終確認:
make publish-check公開:
make publish別レポジトリに組み込むなら、global install より repo-local install を推奨します。チーム全員で同じ版を使いやすく、更新も package.json / lockfile で追跡できます。
pnpm add -D aipanel-cli
pnpm exec aipanel providers --jsonUpdating The Library In Your Repository
aipanel-cli を自分のレポジトリで更新するときは、まず依存関係を上げてから、薄い smoke check とラッパースクリプト見直しを順に行うのが安全です。
repo-local install の場合:
pnpm outdated aipanel-cli
pnpm up -D aipanel-cli
pnpm exec aipanel providers --jsonglobal install だけで使っている場合:
pnpm add -g aipanel-cli@latest
aipanel providers --json更新後の確認ポイント:
package.json/ lockfile に上がった version が入っているかpnpm exec aipanel consult "Reply with exactly: ready" --json --timeout 30000が通るかfollowupを使う運用なら、一時 storage で 1 回流して継続できるかMakefile,package.json scripts, CI,.githooks/に固定している command / option / timeout を見直す必要がないか.aipanel/profile.ymlのdefaultProvider,defaultTimeoutMsが今の運用に合っているか
継続会話や debug の確認を既存データと切り離して行いたい場合は、一時 storage を使うと安全です。
AIPANEL_STORAGE_ROOT="$(mktemp -d)" pnpm exec aipanel consult "Reply with exactly: ready" --json --timeout 30000Commands
最短スタート:
node dist/bin/aipanel.js providers --json
node dist/bin/aipanel.js consult "この設計どう?" --json
node dist/bin/aipanel.js followup --session session_xxx "この修正方針で進めていい?" --json
node dist/bin/aipanel.js debug "この不具合の根本原因は?" --jsonnode dist/bin/aipanel.js providers [--json]
node dist/bin/aipanel.js consult "<question>" [--provider <name[:model]>]... [--timeout <ms>] [--json]
node dist/bin/aipanel.js followup --session <sessionId> "<question>" [--provider <name[:model]>] [--timeout <ms>] [--json]
node dist/bin/aipanel.js debug "<question>" [--provider <name[:model]>]... [--timeout <ms>] [--json]補足:
--sessionはfollowup専用です。既存 session を引き継ぐときだけ指定しますconsultとdebugは現在の質問からそのまま実行します- 実装では
asによる型アサーションを避け、必要な分岐はts-patternを優先します consult/debugに provider native session tracking はありません。継続はaipanel側の session 履歴を使います
repo からのショートカット:
pnpm start providers --json
pnpm run dev consult "この設計どう?" --json
make run ARGS='debug "この不具合の根本原因は?" --json --timeout 60000'よく使う例:
node dist/bin/aipanel.js consult "この設計どう?" --json
node dist/bin/aipanel.js consult "この設計どう?" --provider claude-code:claude-sonnet-4-5 --provider codex:codex-reviewer --json
node dist/bin/aipanel.js consult "この設計どう?" --provider codex:codex-reviewer --provider codex:codex-reviewer --json
node dist/bin/aipanel.js followup --session session_xxx "この修正方針で進めていい?" --provider codex:codex-reviewer --json
node dist/bin/aipanel.js debug "この不具合の根本原因は?" --provider claude-code:claude-sonnet-4-5 --provider codex:codex-reviewer --jsonRuntime Notes
- review 系 command は repeatable
--providerを公開します。provider:modelを使うと model override を渡せます。同じ provider を複数回書けば別インスタンスとして並列実行されます consult/followup/debugの--json出力は常に batch shape です。単発でもresults.length === 1の配列で返りますAIPANEL_STORAGE_ROOTを指定すると、session / run / artifact の保存先を切り替えられますfollowupは--session必須です。Claude Code / Codex の native resume を正本にせず、aipanel側の session 履歴再構築を基本にしていますdebugの--timeoutは orchestrated mode の各 provider call に適用されるので、合計所要時間は 3 倍近くになることがあります--timeoutの既定値は120000(ms) です
例:
AIPANEL_STORAGE_ROOT="$(mktemp -d)" node dist/bin/aipanel.js consult "Reply with exactly: ready" --json --timeout 30000profile で provider や timeout を固定したい場合:
# .aipanel/profile.yml
defaultProvider: claude-code
defaultTimeoutMs: 120000Codex を既定 provider にしたい場合は、defaultProvider: codex を指定します。
Storage Layout
デフォルトでは ./.aipanel 配下に保存します。
.aipanel/
sessions/
<sessionId>.json
runs/
<runId>.json
artifacts/
<runId>/
<artifactId>.json
<artifactId>.artifact.json主な保存内容:
sessions/:Session,SessionTurnruns/:Run,RunTask,TaskResult,RunContext,ProviderResponse,NormalizedResponse,ComparisonReportartifacts/: run context, provider raw text/json, debug task outputs
返却例:
{
"kind": "batch",
"command": "consult",
"runId": "run_xxx",
"status": "completed",
"results": [
{
"provider": "claude-code",
"sessionId": "session_a",
"status": "completed",
"reviewStatus": "ready",
"output": {
"kind": "consultation",
"answer": "..."
}
},
{
"provider": "codex",
"sessionId": "session_b",
"status": "completed",
"reviewStatus": "ready",
"output": {
"kind": "consultation",
"answer": "..."
}
}
]
}Tests
pnpm run lint
pnpm run fmt:check
pnpm run typecheck
pnpm run test:unit
pnpm run test:integration
pnpm run test:e2e
pnpm test
pnpm run auditMakefile 経由でも同じ確認ができます。
make lint
make fmt-check
make typecheck
make test
make auditテストの役割:
test:unit:ResponseNormalizer,ContextCollector,SessionManagertest:integration: built CLI + fake Claude/Codex provider でproviders/consult/followup/debugtest:e2e: built CLI の永続化込みフルフロー確認- integration / E2E では always-batch JSON と複数 provider 実行を確認
Verified Smoke Checks
2026-03-11 JST 時点で、以下を実行確認済みです。
pnpm run lintpnpm run fmt:checkpnpm run typecheckpnpm testpnpm run auditpnpm run buildpnpm run verify:packagepnpm run dev providers --jsonpnpm start providers --jsonmake smokepnpm add --dir "$tmpdir" aipanel-clipnpm --dir "$tmpdir" exec aipanel providers --jsonnode dist/bin/aipanel.js providers --json- 実 Claude Code を使った
consult - 実 Claude Code を使った
followup - 実 Claude Code を使った
debug - 実 Claude Code / Codex を混在させた batch
consult
Repo Skill
- 公開用の
aipanel-cli利用ガイド Skill は skills/use-aipanel-cli/SKILL.md にあります npx --yes skills add sean-sunagaku/aipanel --skill use-aipanel-cliで project-level に install できますpnpm dlx skills add sean-sunagaku/aipanel --skill use-aipanel-cliで install できます- user-level に入れたい場合は
npx --yes skills add sean-sunagaku/aipanel --skill use-aipanel-cli -gを使います - 更新確認は
npx --yes skills check、更新はnpx --yes skills updateです - install 後は prompt で
$use-aipanel-cliを呼ぶと、aipanel-cliの導入・実行・storage の案内に使えます - install / build / command usage / storage layout の入口を 1 本にまとめています
