Skip to content

CLI の使い方 ​

起動すると対話式 CLI に入り、自然言語でタスクを入力できます。プロンプトは [モード][agent名] > の形式で現在の状態を表示します(例:[plan][code] > )。

組み込みコマンド ​

コマンド説明
/plan計画モードに切り替え(読み取り専用の調査 + 計画提案)
/interactive対話式承認モードに切り替え(既定)
/auto全自動モードに切り替え(承認不要、高リスク)
/discussディスカッションモードに切り替え(読み取り専用の対話)
/mode現在のモードを表示
/connectLLM に接続(provider 選択 → key → モデル一覧更新 → 推論強度)
/connect rm接続設定をクリア(環境変数に戻す)
/providers設定済み LLM プロバイダーを一覧表示(▶ が現在有効)
/use <番号|id>現在有効なプロバイダーを切り替え
/rm <番号|id>指定プロバイダーを削除
/linkアカウント接続ウィザードを開始(Hub アドレス + メール/電話番号 + パスワードまたは SMS 認証コード)
/link <接続コード> [Hubアドレス]1 回限りの接続コードで本機ノードをユーザーセンターに接続
/sessions保存済みセッションを一覧し復元(切り替え後に最近のメッセージを表示)
/history現在のセッションのユーザー指示を一覧表示
/model <id>LLM モデルを切り替え
/agent <name>agent を切り替え(Prompt + 任意のモデルを同期)
/agentsすべての agent を一覧表示(現在を強調)
/agent add <name> <prompt...>カスタム agent を追加
/agent edit <name> <prompt...>agent の Prompt を変更(現在の agent は即時ホットリロード)
/agent rm <name>agent を削除
/agent show [name]agent の詳細を表示
/mcpMCP サーバーと接続状態を一覧表示
/mcp add <name> stdio <cmd...>|http <url>MCP サーバーを追加して接続(ツールを自動注入)
/mcp rm|enable|disable|refresh [name]削除 / 有効化 / 無効化 / ツール一覧の更新
/toolsすべてのツールを一覧表示(出所、リスク、無効状態)
/tool add <name> <cmd...>コマンドツールを追加(shell コマンドを実行)
/tool rm|disable|enable <name>ツールを削除 / 無効化 / 有効化
/clear現在のセッションを消去
quit / exit終了
resetセッションをリセット
実行中に入力 + Enter現在のタスクに補足情報を送る(次のイテレーションで反映)
実行中に ESC を 2 回現在のタスクを中断

よくあるタスク例 ​

自然言語でそのまま入力します。例:

> カレントディレクトリに TypeScript プロジェクトを初期化して
> src/ のコードを読んで、潜在的な問題を指摘して
> logs/ のすべての .json ファイルを .json.bak にリネームして
> テストを実行して失敗したケースを修正して

ファイル変更やコマンド実行が必要なとき、対話モードでは承認カードが表示され、確認を待ちます。

実行モード ​

モード動作
discuss読み取り専用。書き込みと実行をすべて禁止
plan読み取り専用。書き込みと実行をすべて禁止。計画提案向け
interactive副作用のある操作はユーザーが都度承認(既定)
auto副作用のある操作をすべて許可(高リスク、自己責任)

承認カード ​

対話モードでは、承認カードで次を選べます:

  • Y 今回だけ許可
  • A このツールを常に許可
  • D 拒否
  • run_shell は追加で C このコマンドを常に許可(コマンド単位の許可リスト。ツール全体を許可するより安全)

実行中の補足情報(steering) ​

タスク実行中でも、完了を待たずに指示を追加できます。文字を入力して Enter を押すと、次の イテレーションの合間に user メッセージとして現在のタスクに注入され、agent は続行時にその補足情報を取り込みます。

別のタスクを始める場合は、現在のタスクの終了を待つか ESC を 2 回押して中断してください。 (承認/質問の保留中は、入力は優先的に承認の回答または質問への回答として扱われます。)

セッション管理 ​

  • /sessions は保存済みセッションを一覧し、選んで復元します。切り替え後に最近のメッセージを表示するので、中断した作業を再開しやすくなります。
  • /clear は現在のセッションを消去します。reset はセッション状態をリセットします。
  • /history は現在のセッションのユーザー指示を一覧し、文脈を素早く振り返れます。

複数プロバイダーの管理 ​

複数の LLM 接続(異なるベンダーや Key)を保存し、いつでも切り替えられます:

/providers           # すべてのプロバイダーを一覧(▶ が現在有効)
/use 2               # 番号で切り替え(/use <id> も可)
/rm 3                # プロバイダーを削除

新しいプロバイダーは /connect で追加します。切り替えは即時反映され、再起動は不要です。

コマンドラインサブコマンド ​

zqagent で対話セッションに入る以外に、4 つのサブコマンドがあります:

bash
zqagent serve [--port <n>] [--host <addr>] [--data-dir <dir>]   # ヘッドレス常駐サービス
zqagent link --hub <url> --username <メール/電話番号> --password '<パスワード>'  # アカウント接続(再起動不要)
zqagent link --hub <url> --code <接続コード>                         # 1 回限りの接続コードで接続(再起動不要)
zqagent rename <名前>                                            # Hub に表示されるノード名を変更
zqagent update [--status|--check|--now|--rollback]               # ノードの自動更新の確認/実行、ロールバック

zqagent は --resume <セッションID> で前回のセッションを復元し、--debug で起動診断ログを出力できます。

serve は起動時に直接接続することもできます:--hub <url> --enroll-code <コード> --label <名前>、 またはアカウント方式 --hub <url> --username <メール/電話番号> --password <パスワード>。

Windows 単体ファイルでは zqagent を zqagent.exe に置き換えます(PATH にない場合は .\zqagent.exe):

bat
zqagent.exe serve --port 8787 --data-dir "%APPDATA%\zqagent"
zqagent.exe link --hub https://hub.cd-zq.com --username you@example.com --password <パスワード>
zqagent.exe link --hub https://hub.cd-zq.com --code <接続コード>

zqagent link を認証情報なしで実行すると対話ウィザードに入ります。パスワードは ZQAGENT_HUB_PASSWORD でも指定できます。

Windows の link もデスクトップ版がインストールしたノードサービスを自動検出するため、通常 --data-dir は不要です。 手動でタスクスケジューラを設定し、データディレクトリが既定位置にない場合のみ明示的に指定します。

詳しくはノードの起動をご覧ください。

起動診断(--debug) ​

「起動直後に終了し、コンソールに何も出ない」といった問題では、--debug で診断を有効にします:

bash
zqagent --debug              # 単体実行ファイル(macOS / Linux)
node bin/zqagent --debug     # npm インストールのエントリー
bat
zqagent.exe --debug          :: Windows 単体ファイル
set ZQAGENT_DEBUG=1          :: Windows cmd、同等の書き方
bash
export ZQAGENT_DEBUG=1       # bash/zsh

診断ログは同期的にディスクへ書き込み(stdout のバッファを経由しないため、プロセスがクラッシュしても即終了しても失われません)、同時に stderr にも出力します。 ログのパスは次の順で解決されます:

環境変数意味
ZQAGENT_DEBUG_LOGログファイルの完全なパス(優先)
ZQAGENT_DEBUG_DIRログディレクトリ。ファイル名は固定で zqagent-debug.log
いずれも未設定システムの一時ディレクトリ(os.tmpdir())下の zqagent-debug.log

ログには環境スナップショット、起動各段階、クラッシュスタックが含まれます(OPENAI_API_KEY などの認証情報は「設定有無 + 長さ」のみ記録し、 平文は出力しません)。ログが止まった行が失敗位置です。 --debug を外せば完全に無効化され、ファイルも書かず ハンドラーも登録しません。

対照プローブ:どの層の問題か判断する ​

単体ファイルの成果物 = 公式 node ベース + 注入された SEA blob + その中の業務コード。起動直後に終了する場合、 最小サンプルで 3 層を切り分ける方が、業務コードを推測するより速いです:

サンプル生成方法動かない場合の意味
_node-base-<ver>-<platform>-<arch>公式 node、無改修システム/セキュリティソフト/ローダー層で止まっており、パッケージングとは無関係
_sea-minimal-probe-<platform>-<arch>最小 SEA プローブ、useCodeCache: falseSEA 注入またはロードの失敗(終了コードを見る。例 0xC0000005)
_sea-cc-probe-<platform>-<arch>同上だが useCodeCache: trueクロスビルドがビルド機の V8 code cache を持ち込んでいる
zqagent-windows-x64.exe実際の成果物前 3 つが正常なら業務コードの初期化問題。--debug で続行
bash
pnpm run probes:sea                                   # win32-x64(既定)
pnpm run probes:sea -- --arch arm64                   # win32-arm64
pnpm run probes:sea -- --platform linux --arch x64    # Linux 上で linux プローブを生成(本機で実行可能)
pnpm run probes:sea -- --platform darwin --arch arm64 # macOS 上で macos プローブを生成(本機で実行可能)

プローブは stdout への出力に加え、一時ディレクトリに zqagent-probe.log を書き出します。「コンソールに出力が見えない」場合でも、 ディスク上のログで JS が実際に実行されたかを証明できます。

注入後の成果物の sha256 はビルドごとに変わります(blob にビルド機上の main スクリプトの絶対パスが記録されるため)。 そのためベース _node-base-* のハッシュだけを「ファイルが完全/一致しているか」の根拠にしてください。

macOS で生成/使用する際の注意:SEA には Node ≥ 20 が必要です。darwin の成果物は注入前に codesign --remove-signature、注入後に codesign --sign - --force で一時署名が必要です(本機で macos プローブを生成するスクリプトが自動処理します)。arm64 カーネルは未署名バイナリの実行を拒否します。Windows 向け成果物の生成は 純粋なクロスアセンブリ(postject はファイルを書くだけで実行しない)なので、macOS/Linux 上でも .exe を直接生成できます。

Windows では一式を同じディレクトリに置いて release/cli/diagnose.cmd を実行します。node -e、2 つのプローブ、 zqagent --debug を順に実行し、各サンプルの終了コード、診断ログ、プローブの書き出しログを表示します。 画面のテキストを丸ごとコピーして送れば特定できます。

次のステップ ​