@@ -287,8 +287,10 @@ load local files from plain paths.
287287## Inputs / outputs
288288
289289- ` output: "json" ` (default) tries to parse JSON and extract text + session id.
290- - For Gemini CLI JSON output, OpenClaw reads reply text from ` response ` and
291- usage from ` stats ` when ` usage ` is missing or empty.
290+ - For Gemini CLI JSON output, OpenClaw reads reply text from ` response ` and usage
291+ from ` stats ` when ` usage ` is missing or empty. The bundled Gemini CLI default
292+ uses ` stream-json ` , but old ` --output-format json ` overrides still use the
293+ JSON parser.
292294- ` output: "jsonl" ` parses JSONL streams and extracts the final agent message plus session
293295 identifiers when present.
294296- ` output: "text" ` treats stdout as the final response.
@@ -318,8 +320,11 @@ The bundled Anthropic plugin registers a default for `claude-cli`:
318320The bundled Google plugin also registers a default for ` google-gemini-cli ` :
319321
320322- ` command: "gemini" `
321- - ` args: ["--output-format", "json", "--prompt", "{prompt}"] `
322- - ` resumeArgs: ["--resume", "{sessionId}", "--output-format", "json", "--prompt", "{prompt}"] `
323+ - ` args: ["--skip-trust", "--output-format", "stream-json", "--prompt", "{prompt}"] `
324+ - ` resumeArgs: ["--skip-trust", "--resume", "{sessionId}", "--output-format", "stream-json", "--prompt", "{prompt}"] `
325+ - ` output: "jsonl" `
326+ - ` resumeOutput: "jsonl" `
327+ - ` jsonlDialect: "gemini-stream-json" `
323328- ` imageArg: "@" `
324329- ` imagePathScope: "workspace" `
325330- ` modelArg: "--model" `
@@ -330,9 +335,13 @@ Prerequisite: the local Gemini CLI must be installed and available as
330335` gemini ` on ` PATH ` (` brew install gemini-cli ` or
331336` npm install -g @google/gemini-cli ` ).
332337
333- Gemini CLI JSON notes:
338+ Gemini CLI output notes:
334339
335- - Reply text is read from the JSON ` response ` field.
340+ - The default ` stream-json ` parser reads assistant ` message ` events, tool events,
341+ final ` result ` usage, and fatal Gemini error events.
342+ - If you override Gemini args to ` --output-format json ` , OpenClaw normalizes that
343+ backend back to ` output: "json" ` and reads reply text from the JSON ` response `
344+ field.
336345- Usage falls back to ` stats ` when ` usage ` is absent or empty.
337346- ` stats.cached ` is normalized into OpenClaw ` cacheRead ` .
338347- If ` stats.input ` is missing, OpenClaw derives input tokens from
@@ -372,8 +381,10 @@ api.registerTextTransforms({
372381rewrites streamed assistant deltas and parsed final text before OpenClaw handles
373382its own control markers and channel delivery.
374383
375- For CLIs that emit Claude Code stream-json compatible JSONL, set
376- ` jsonlDialect: "claude-stream-json" ` on that backend's config.
384+ For CLIs that emit provider-specific JSONL events, set ` jsonlDialect ` on that
385+ backend's config. Supported dialects are ` claude-stream-json ` for Claude
386+ Code-compatible streams and ` gemini-stream-json ` for Gemini CLI ` stream-json `
387+ events.
377388
378389## Native compaction ownership
379390
0 commit comments