- ツール実行は無効(ツール呼び出しは行われません)。
- テキスト入力 → テキスト出力 の確実な動作。
- セッションをサポート(継続的なターンの文脈を維持)。
- 画像のパススルーに対応(CLI が画像パスを受け入れ可能な場合)。
クイックスタート (初心者向け)
Claude Code CLI は 設定なし ですぐに利用可能です(OpenClaw にデフォルト設定が組み込まれています):PATH が最小限の場合は、コマンドの絶対パスのみを追加してください:
フォールバックとしての利用
プライマリモデルが失敗したときにのみ CLI バックエンドが動作するように、フォールバックリストに追加します:agents.defaults.models(許可リスト) を使用している場合は、そのリストにclaude-cli/...を含める必要があります。- プライマリプロバイダーでエラー(認証失敗、レート制限、タイムアウトなど)が発生すると、OpenClaw は次に CLI バックエンドを試行します。
構成の概要
すべての CLI バックエンドの設定は以下に記述します:claude-cli, my-cli)をキーとします。この ID がモデル参照の左側になります:
構成例
仕組み
- プロバイダーの接頭辞 (
claude-cli/...等) に基づいて バックエンドを選択 します。 - 他の経路と同じ OpenClaw のプロンプトとワークスペース文脈を使用して システムプロンプトを構築 します。
- 履歴の継続性を保つため、セッション ID (対応している場合) と共に CLI を実行 します。
- 出力を解析(JSON またはプレーンテキスト)し、最終的なテキストを返します。
- バックエンドごとに セッション ID を永続化 し、以降のターンで同じ CLI セッションを再利用します。
セッション管理
- CLI がセッションをサポートしている場合は、
sessionArg(例:--session-id) を設定します。複数のフラグに ID を挿入する必要がある場合はsessionArgs(プレースホルダー{sessionId}を使用) を設定します。 - CLI が異なるフラグを持つ 再開(resume)用のサブコマンド を使用する場合は、
resumeArgs(再開時にargsを置き換え) を設定し、必要に応じて JSON 以外の再開出力に対応するためのresumeOutputも設定します。 sessionMode:always: 常にセッション ID を送信(保存された ID がなければ新規 UUID を生成)。existing: 以前に保存された ID がある場合にのみ送信。none: セッション ID を送信しない。
画像 (パススルー)
CLI が画像パスを受け入れ可能な場合は、imageArg を設定してください:
imageArg が設定されていればそのパスが CLI 引数として渡されます。imageArg が未設定の場合、OpenClaw はプロンプト末尾にファイルパスを付加します(パス注入)。これは、通常のファイルパスからローカルファイルを自動ロードする CLI(Claude Code CLI 等の挙動)において有効です。
入出力
output: "json"(デフォルト): JSON をパースし、テキストとセッション ID を抽出します。output: "jsonl": JSONL ストリーム (Codex CLI の--json等) をパースし、最後のエージェントメッセージと、存在すればthread_idを抽出します。output: "text": 標準出力をそのまま最終回答として扱います。
input: "arg"(デフォルト): プロンプトを最後の CLI 引数として渡します。input: "stdin": プロンプトを標準入力 (stdin) 経由で送信します。- プロンプトが非常に長く、かつ
maxPromptArgCharsが設定されている場合、自動的に標準入力が使用されます。
組み込みのデフォルト設定
OpenClaw はclaude-cli 用のデフォルト設定を同梱しています:
command: "claude"args: ["-p", "--output-format", "json", "--permission-mode", "bypassPermissions"]resumeArgs: ["-p", "--output-format", "json", "--permission-mode", "bypassPermissions", "--resume", "{sessionId}"]modelArg: "--model"systemPromptArg: "--append-system-prompt"sessionArg: "--session-id"systemPromptWhen: "first"sessionMode: "always"
codex-cli 用のデフォルト設定も同梱されています:
command: "codex"args: ["exec","--json","--color","never","--sandbox","read-only","--skip-git-repo-check"]resumeArgs: ["exec","resume","{sessionId}","--color","never","--sandbox","read-only","--skip-git-repo-check"]output: "jsonl"resumeOutput: "text"modelArg: "--model"imageArg: "--image"sessionMode: "existing"
command 指定など、必要な場合にのみ上書きしてください。
制限事項
- OpenClaw ツールの利用不可: CLI バックエンド側で OpenClaw のツール呼び出しを受け取ることはありません(CLI 自体が独自のツール実行機能を備えている場合は、そちらが動作することがあります)。
- 非ストリーミング: CLI の出力をすべて収集した後に返信が行われます。
- 構造化出力: 抽出精度は CLI 側の JSON フォーマットに依存します。
- Codex CLI セッション: 再開時はテキスト出力 (JSONL ではない) となるため、初回の
--json実行時よりも構造化の度合いが低下します。OpenClaw のセッション管理自体は通常通り機能します。
トラブルシューティング
- CLI が見つからない:
commandに絶対パスを設定してください。 - モデル名が正しくない:
modelAliasesを使用してprovider/model→ CLI 用のモデル名へとマッピングしてください。 - セッションが継続しない:
sessionArgが正しく、かつsessionModeがnone以外であることを確認してください(なお、Codex CLI は現在 JSON 出力での再開に対応していません)。 - 画像が無視される:
imageArgを設定し、かつ CLI 側がファイルパスからの画像ロードに対応しているか確認してください。