





















@@ -2,7 +2,7 @@
22summary: "CLI backends: local AI CLI fallback with optional MCP tool bridge"
33read_when:
44 - You want a reliable fallback when API providers fail
5- - You are running Codex CLI or other local AI CLIs and want to reuse them
5+ - You are running local AI CLIs and want to reuse them
66 - You want to understand the MCP loopback bridge for CLI backend tool access
77title: "CLI backends"
88---
@@ -31,11 +31,11 @@ thread/conversation binding, and persistent external coding sessions, use
31313232## Beginner-friendly quick start
333334-You can use Codex CLI **without any config** (the bundled OpenAI plugin
34+You can use Claude Code CLI **without any config** (the bundled Anthropic plugin
3535registers a default backend):
36363737```bash
38-openclaw agent --message "hi" --model codex-cli/gpt-5.5
38+openclaw agent --message "hi" --model claude-cli/claude-sonnet-4-6
3939```
40404141If your gateway runs under launchd/systemd and PATH is minimal, add just the
@@ -46,8 +46,8 @@ command path:
4646 agents: {
4747 defaults: {
4848 cliBackends: {
49-"codex-cli": {
50- command: "/opt/homebrew/bin/codex",
49+"claude-cli": {
50+ command: "/opt/homebrew/bin/claude",
5151 },
5252 },
5353 },
@@ -72,11 +72,11 @@ Add a CLI backend to your fallback list so it only runs when primary models fail
7272 defaults: {
7373 model: {
7474 primary: "anthropic/claude-opus-4-6",
75- fallbacks: ["codex-cli/gpt-5.5"],
75+ fallbacks: ["claude-cli/claude-sonnet-4-6"],
7676 },
7777 models: {
7878"anthropic/claude-opus-4-6": { alias: "Opus" },
79-"codex-cli/gpt-5.5": {},
79+"claude-cli/claude-sonnet-4-6": {},
8080 },
8181 },
8282 },
@@ -97,7 +97,7 @@ All CLI backends live under:
9797agents.defaults.cliBackends
9898```
9999100-Each entry is keyed by a **provider id** (e.g. `codex-cli`, `my-cli`).
100+Each entry is keyed by a **provider id** (e.g. `claude-cli`, `my-cli`).
101101The provider id becomes the left side of your model ref:
102102103103```
@@ -111,9 +111,6 @@ The provider id becomes the left side of your model ref:
111111 agents: {
112112 defaults: {
113113 cliBackends: {
114-"codex-cli": {
115- command: "/opt/homebrew/bin/codex",
116- },
117114"my-cli": {
118115 command: "my-cli",
119116 args: ["--json"],
@@ -149,7 +146,7 @@ The provider id becomes the left side of your model ref:
149146150147## How it works
151148152-1. **Selects a backend** based on the provider prefix (`codex-cli/...`).
149+1. **Selects a backend** based on the provider prefix (`claude-cli/...`).
1531502. **Builds a system prompt** using the same OpenClaw prompt + workspace context.
1541513. **Executes the CLI** with a session id (if supported) so history stays consistent.
155152 The bundled `claude-cli` backend keeps a Claude stdio process alive per
@@ -164,12 +161,6 @@ told us OpenClaw-style Claude CLI usage is allowed again, so OpenClaw treats
164161a new policy.
165162</Note>
166163167-The bundled OpenAI `codex-cli` backend passes OpenClaw's system prompt through
168-Codex's `model_instructions_file` config override (`-c
169-model_instructions_file="..."`). Codex does not expose a Claude-style
170-`--append-system-prompt` flag, so OpenClaw writes the assembled prompt to a
171-temporary file for each fresh Codex CLI session.
172-173164The bundled Anthropic `claude-cli` backend receives the OpenClaw skills snapshot
174165two ways: the compact OpenClaw skills catalog in the appended system prompt, and
175166a temporary Claude Code plugin passed with `--plugin-dir`. The plugin contains
@@ -292,7 +283,7 @@ load local files from plain paths.
292283- `output: "json"` (default) tries to parse JSON and extract text + session id.
293284- For Gemini CLI JSON output, OpenClaw reads reply text from `response` and
294285 usage from `stats` when `usage` is missing or empty.
295-- `output: "jsonl"` parses JSONL streams (for example Codex CLI `--json`) and extracts the final agent message plus session
286+- `output: "jsonl"` parses JSONL streams and extracts the final agent message plus session
296287 identifiers when present.
297288- `output: "text"` treats stdout as the final response.
298289@@ -304,16 +295,19 @@ Input modes:
304295305296## Defaults (plugin-owned)
306297307-The bundled OpenAI plugin also registers a default for `codex-cli`:
298+Bundled CLI backend defaults live with their owning plugin. For example,
299+Anthropic owns `claude-cli` and Google owns `google-gemini-cli`. OpenAI Codex
300+agent runs use the Codex app-server harness through `openai/*`; OpenClaw no
301+longer registers a bundled `codex-cli` backend.
308302309-- `command: "codex"`
310-- `args: ["exec","--json","--color","never","--sandbox","workspace-write","--skip-git-repo-check"]`
311-- `resumeArgs: ["exec","resume","{sessionId}","-c","sandbox_mode=\"workspace-write\"","--skip-git-repo-check"]`
303+The bundled Anthropic plugin registers a default for `claude-cli`:
304+305+- `command: "claude"`
306+- `args: ["-p","--output-format","stream-json","--include-partial-messages","--verbose", ...]`
312307- `output: "jsonl"`
313-- `resumeOutput: "text"`
308+- `input: "stdin"`
314309- `modelArg: "--model"`
315-- `imageArg: "--image"`
316-- `sessionMode: "existing"`
310+- `sessionMode: "always"`
317311318312The bundled Google plugin also registers a default for `google-gemini-cli`:
319313@@ -383,9 +377,6 @@ opt into a generated MCP config overlay with `bundleMcp: true`.
383377Current bundled behavior:
384378385379- `claude-cli`: generated strict MCP config file
386-- `codex-cli`: inline config overrides for `mcp_servers`; the generated
387- OpenClaw loopback server is marked with Codex's per-server tool approval mode
388- so MCP calls cannot stall on local approval prompts
389380- `google-gemini-cli`: generated Gemini system settings file
390381391382When bundle MCP is enabled, OpenClaw:
@@ -414,16 +405,13 @@ children and Streamable HTTP/SSE streams do not outlive the run.
414405- **Streaming is backend-specific.** Some backends stream JSONL; others buffer
415406 until exit.
416407- **Structured outputs** depend on the CLI's JSON format.
417-- **Codex CLI sessions** resume via text output (no JSONL), which is less
418- structured than the initial `--json` run. OpenClaw sessions still work
419- normally.
420408421409## Troubleshooting
422410423411- **CLI not found**: set `command` to a full path.
424412- **Wrong model name**: use `modelAliases` to map `provider/model` → CLI model.
425413- **No session continuity**: ensure `sessionArg` is set and `sessionMode` is not
426-`none` (Codex CLI currently cannot resume with JSON output).
414+`none`.
427415- **Images ignored**: set `imageArg` (and verify CLI supports file paths).
428416429417## Related
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。