@enderfga/claw-orchestrator 7.9.0 → 7.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -5
- package/dist/src/autoloop/dispatcher.d.ts +6 -0
- package/dist/src/autoloop/dispatcher.js +20 -0
- package/dist/src/autoloop/dispatcher.js.map +1 -1
- package/dist/src/index.js +3 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/models.js +17 -4
- package/dist/src/models.js.map +1 -1
- package/dist/src/persistent-grok-session.js +59 -20
- package/dist/src/persistent-grok-session.js.map +1 -1
- package/dist/src/persistent-opencode-session.d.ts +14 -0
- package/dist/src/persistent-opencode-session.js +43 -1
- package/dist/src/persistent-opencode-session.js.map +1 -1
- package/dist/src/session-manager.js +171 -7
- package/dist/src/session-manager.js.map +1 -1
- package/package.json +1 -1
- package/skills/references/autoloop.md +6 -4
- package/skills/references/claude-cli-tracking.md +3 -1
- package/skills/references/multi-engine.md +21 -11
- package/skills/references/tools.md +59 -59
- package/skills/references/ultra.md +1 -1
|
@@ -28,7 +28,7 @@ SessionManager
|
|
|
28
28
|
|
|
29
29
|
### Claude Code (`engine: 'claude'`)
|
|
30
30
|
|
|
31
|
-
Default engine. Long-running subprocess with streaming JSON I/O. Tested with Claude Code CLI **2.1.
|
|
31
|
+
Default engine. Long-running subprocess with streaming JSON I/O. Tested with Claude Code CLI **2.1.296**.
|
|
32
32
|
|
|
33
33
|
- Persistent multi-turn conversations
|
|
34
34
|
- Real-time streaming (text, tool_use, tool_result, system events)
|
|
@@ -62,7 +62,7 @@ await manager.startSession({
|
|
|
62
62
|
|
|
63
63
|
### OpenAI Codex (`engine: 'codex'`)
|
|
64
64
|
|
|
65
|
-
Wraps the `codex exec` subcommand. Each `send()` spawns a new process. Tested with `codex` CLI **0.
|
|
65
|
+
Wraps the `codex exec` subcommand. Each `send()` spawns a new process. Tested with `codex` CLI **0.162.1**.
|
|
66
66
|
|
|
67
67
|
- Non-interactive execution via `codex exec --sandbox workspace-write --skip-git-repo-check --json`
|
|
68
68
|
- Real `usage` from the `turn.completed` JSON event (input, output, cached, reasoning tokens). **These are cumulative over the thread, not per turn**, so they replace the session totals rather than being added to them; subtracting consecutive values gives one turn's prompt
|
|
@@ -133,7 +133,7 @@ await manager.startSession({
|
|
|
133
133
|
|
|
134
134
|
Wraps Google's **Antigravity CLI** (`agy`) — the successor to Gemini CLI (consumer
|
|
135
135
|
Gemini CLI tiers stopped serving 2026-06-18). Each `send()` spawns a new process
|
|
136
|
-
in print mode. Tested with `agy` **1.3.
|
|
136
|
+
in print mode. Tested with `agy` **1.3.2**.
|
|
137
137
|
|
|
138
138
|
- One-shot execution per message (no persistent subprocess)
|
|
139
139
|
- **Structured output and real usage** — `--output-format stream-json` emits an
|
|
@@ -218,7 +218,7 @@ await manager.startSession({
|
|
|
218
218
|
### Grok Build (`engine: 'grok'`)
|
|
219
219
|
|
|
220
220
|
Wraps xAI's **Grok Build** CLI. Each `send()` spawns `grok -p <msg> --output-format json`, which
|
|
221
|
-
prints a single JSON object and exits. Tested with `grok` **1.0.
|
|
221
|
+
prints a single JSON object and exits. Tested with `grok` **1.0.50**.
|
|
222
222
|
|
|
223
223
|
- **Cost comes from the engine, not from the price table.** The result object carries
|
|
224
224
|
`total_cost_usd`, and the wrapper writes it straight into the session's spend, so the run ledger
|
|
@@ -240,13 +240,21 @@ prints a single JSON object and exits. Tested with `grok` **1.0.46**.
|
|
|
240
240
|
`dangerouslySkipPermissions` → `--always-approve`, `customSessionId` → `--session-id`, `forkSession`
|
|
241
241
|
→ `--fork-session`. **grok validates neither tool list**: a name that does not exist is ignored
|
|
242
242
|
rather than rejected, so a typo in a denylist leaves the tool enabled. Prefer an allowlist.
|
|
243
|
-
- **`sandboxMode: 'read-only'`
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
243
|
+
- **`sandboxMode: 'read-only'` runs inside grok's `--sandbox read-only` profile**, which the OS
|
|
244
|
+
enforces (Seatbelt on macOS, Landlock on Linux) for the whole process tree: the session reads
|
|
245
|
+
anywhere and can write only to `~/.grok/` and the temp directory. Measured on 1.0.50 with
|
|
246
|
+
`bypassPermissions`: a direct write, a shell write, a delegated subagent, a write on a resumed turn
|
|
247
|
+
and a write outside the project all fail with `Operation not permitted`. A tool allowlist was not
|
|
248
|
+
enough — a delegated subagent does not inherit it. Three cases are refused rather than claimed:
|
|
249
|
+
- a project under the temp directory, which the profile leaves writable;
|
|
250
|
+
- a platform other than macOS or Linux;
|
|
251
|
+
- a sandbox grok reports it could not apply. grok itself would carry on unsandboxed; the session
|
|
252
|
+
kills the process on that warning, which grok prints at startup before any model call.
|
|
253
|
+
|
|
254
|
+
Child-process network access is not blocked on macOS (grok enforces that part on Linux only).
|
|
255
|
+
|
|
256
|
+
- **On an exhausted free tier grok answers with an error object** (`{"type":"error","message":...}`),
|
|
257
|
+
and the session reports that message as the turn's error.
|
|
250
258
|
- Binary: `grok` (set `GROK_BIN` to override). Not `agent`: xAI's installer claims that name too,
|
|
251
259
|
and so did Cursor's.
|
|
252
260
|
- Requires Grok Build: see `x.ai/cli`.
|
|
@@ -340,6 +348,7 @@ Wraps the [sst/opencode](https://github.com/sst/opencode) CLI with `run --format
|
|
|
340
348
|
- Event types: `text`, `reasoning`, `tool_use`, `step_start`, `step_finish`, `error`
|
|
341
349
|
- `text` and `tool_use` are **cumulative snapshots** keyed by `part.id` / `part.callID`; the wrapper diffs them to produce streaming deltas for `onText` callbacks and counts each tool invocation once
|
|
342
350
|
- Real token counts from `step_finish.part.tokens.{input,output,cache.{read,write}}`. **`input` is the uncached remainder only** — opencode's own `total` is `input + output + cache.read + cache.write` — so the cached part is billed on top of it, not carved out of it, and `contextPercent` is measured against the whole input side. On a resumed turn the uncached remainder is usually a small fraction of the cached part
|
|
351
|
+
- Cost is what opencode reports on each `step_finish` (`part.cost`), so a free model costs $0; the registry estimate applies only when no cost is reported. `opencode run --format json` does not name the model it ran
|
|
343
352
|
- Reasoning effort maps to `--variant`, opencode's provider-specific effort knob. opencode does not validate the value: a level the provider does not offer runs the turn at its default rather than failing
|
|
344
353
|
- `appendSystemPrompt`: opencode has no system-prompt flag, so it is placed at the top of the first message of each new conversation
|
|
345
354
|
- The wrapper closes the subprocess's stdin immediately after spawn (opencode otherwise reads stdin and blocks on EOF, hanging the call)
|
|
@@ -351,6 +360,7 @@ Wraps the [sst/opencode](https://github.com/sst/opencode) CLI with `run --format
|
|
|
351
360
|
- if the `clawo-readonly` agent fails to load, the turn is refused rather than run with write access
|
|
352
361
|
- to test a change to this config, use adversarial prompts that include asking the agent to delegate; `opencode agent list` shows compiled rules that look the same for a safe and an unsafe agent
|
|
353
362
|
- Requires opencode installed: `brew install sst/tap/opencode` or `npm install -g opencode-ai`. Auth via `opencode auth login` **or** any provider env var (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`, etc.) — opencode picks up either path
|
|
363
|
+
- **OpenCode 2 is refused at session start.** Its `run --format json` keeps the event envelope but drops `step_finish` (no tokens or cost) and the `--variant` flag, and the read-only agent could not be verified on it (measured on `0.0.0-beta-17823`, the build `opencode upgrade --major` installs as of October 2026). The session reads `opencode --version` once and refuses a 2.x or `0.0.0-beta` build with that reason; if the version cannot be read, it starts as before.
|
|
354
364
|
- Binary: `opencode` (set `OPENCODE_BIN` env var to override). The message is sent on stdin, never on the command line. **Windows:** the npm `.cmd` shim launches through `src/engine-spawn.ts` (cross-spawn), as for codex above.
|
|
355
365
|
|
|
356
366
|
```typescript
|
|
@@ -8,57 +8,57 @@ All 78 tools are registered as OpenClaw plugin tools and exposed over MCP by `cl
|
|
|
8
8
|
|
|
9
9
|
Start a persistent coding session with full CLI flag support.
|
|
10
10
|
|
|
11
|
-
| Parameter | Type | Description
|
|
12
|
-
| ------------------------------------ | --------------------------------------------------------------------------------------------- |
|
|
13
|
-
| `name` | string | Session name (auto-generated if omitted)
|
|
14
|
-
| `cwd` | string | Working directory
|
|
15
|
-
| `engine` | `'claude'` \| `'codex'` \| `'codex-app'` \| `'agy'` \| `'grok'` \| `'opencode'` \| `'custom'` | Engine to use (default: `claude`). `agy` wraps Google Antigravity CLI. `grok` wraps xAI Grok Build and reports its own per-turn cost. `opencode` wraps sst/opencode (pass model as `provider/model`). Use `custom` with `customEngine` for any CLI. (`'gemini'` and `'cursor'` are still accepted for existing callers but are legacy — not version-tracked; use `agy` for Google and `grok` in place of Cursor.)
|
|
16
|
-
| `model` | string | Model alias or full name
|
|
17
|
-
| `permissionMode` | string | `acceptEdits`, `bypassPermissions`, `plan`, `auto`, `manual`, `dontAsk` (`default` = legacy alias for `manual`)
|
|
18
|
-
| `sandboxMode` | `'read-only'` \| `'workspace-write'` \| `'danger-full-access'` | Sandbox policy. Codex supports all values. `read-only` is enforced on every other built-in engine too: Claude → plan mode; Antigravity → its plan mode; OpenCode → a generated `clawo-readonly` agent denying `edit`/`bash`.
|
|
19
|
-
| `allowedTools` | string[] | Tools to auto-approve
|
|
20
|
-
| `disallowedTools` | string[] | Tools to deny
|
|
21
|
-
| `maxTurns` | number | Max agent loop turns
|
|
22
|
-
| `maxBudgetUsd` | number | Max API spend (USD). Enforced by the runtime on every engine: once the session's cumulative cost reaches the cap, further sends are refused before the engine is spawned. See [observability.md](observability.md) for the accuracy caveat on engines that estimate token counts.
|
|
23
|
-
| `autoCompactPercent` | number | Compact the conversation before a send once `contextPercent` reaches this value (1–99). Off by default. For long-lived sessions, where cost grows with context size; survives a server restart. A failed compaction does not block the send.
|
|
24
|
-
| `systemPrompt` | string | Replace system prompt
|
|
25
|
-
| `appendSystemPrompt` | string | Append custom instructions to the system prompt. Claude Code and Grok take it natively; Codex, Antigravity and OpenCode have no such flag and receive it at the top of the first message of a conversation
|
|
26
|
-
| `agents` | object | Custom sub-agents JSON
|
|
27
|
-
| `agent` | string | Default agent to use
|
|
28
|
-
| `bare` | boolean | Skip hooks, LSP, auto-memory, CLAUDE.md
|
|
29
|
-
| `worktree` | string \| boolean | Run in git worktree
|
|
30
|
-
| `fallbackModel` | string \| string[] | Fallback model(s) when the primary is overloaded; an array is tried in order
|
|
31
|
-
| `resumeSessionId` | string | Resume existing session by ID
|
|
32
|
-
| `jsonSchema` | string | JSON Schema for structured output. Claude: `--json-schema` (inline). Codex: `--output-schema` (written to a temp file, requires Codex 0.132+). Other engines ignore it.
|
|
33
|
-
| `mcpConfig` | string \| string[] | MCP server config file(s)
|
|
34
|
-
| `settings` | string | Settings.json path or inline JSON
|
|
35
|
-
| `ultracode` | boolean | Claude only. Enable "ultracode" / dynamic workflows — Claude plans a JS orchestration script per substantive task and fans out to subagents. Injected as the `ultracode:true` settings key (merged into `settings`). The workflow runs in the background: `session_send` returns at launch, and the completion turn is not returned by a later send (see sessions.md).
|
|
36
|
-
| `noSessionPersistence` | boolean | Do not save session to disk — both the engine's own transcript and this orchestrator's resume registry, so a later start under the same name does not reattach
|
|
37
|
-
| `ignoreUserConfig` | boolean | Codex only. Run without loading `$CODEX_HOME/config.toml`, so an orchestrated run is decided by what the caller passed rather than by the machine's own Codex config — notably a `model = …` line in that file, which otherwise picks the model while the ledger records this engine's default. Auth still resolves from `CODEX_HOME`.
|
|
38
|
-
| `codexProfile` | string | Codex only. Named profile from `~/.codex/config.toml`, passed as `codex exec --profile`
|
|
39
|
-
| `restricted` | boolean | Claude Code only. Restricted mode (`--restricted`): the CLI removes the built-in tools that run commands or code — Bash, PowerShell, the REPL — plus `WebFetch` unless `tools` names them, and ignores user, project and local settings files. Separate from `sandboxMode: 'read-only'`: that maps to plan mode, which holds on its own, while this makes the shell absent rather than refused. It also drops the caller's CLAUDE.md and hooks, so it is never switched on implicitly.
|
|
40
|
-
| `betas` | string \| string[] | Custom beta headers
|
|
41
|
-
| `enableAgentTeams` | boolean | Enable experimental agent teams
|
|
42
|
-
| `enableAutoMode` | boolean | Enable auto permission mode
|
|
43
|
-
| `customEngine` | object | Custom engine config (required when `engine='custom'`). See [Multi-Engine: Custom Engine](./multi-engine.md#custom-engine-engine-custom).
|
|
44
|
-
| `crossSessionInbound` | string | `accept` / `hold` / `refuse` — policy for peer messages from other Claude Code sessions on this machine (Claude engine). Delivered as a settings key; there is no CLI flag. Without it the CLI holds messages whose two sides run different permission modes, which is the usual orchestrated-session-to-human-terminal case
|
|
45
|
-
| `includeHookEvents` | boolean | Stream hook lifecycle events (PreToolUse/PostToolUse) as `system` events
|
|
46
|
-
| `forwardSubagentText` | boolean | Forward subagent text and thinking into the output stream (Claude engine, CLI 2.1.211+). Without it the parent stream stays quiet while a subagent works
|
|
47
|
-
| `chrome` | boolean | Let the session use the user's Chrome through the Claude in Chrome extension, acting with that browser's sign-ins (Claude engine, `--chrome`). Off by default. Needs Chrome running with the extension and a claude.ai login; survives a server restart
|
|
48
|
-
| `permissionPromptTool` | string | MCP tool name to delegate permission prompts to (non-interactive use). When omitted, the session runs with `--permission-prompts none`: a prompt nobody could answer is denied rather than left waiting until the turn timeout.
|
|
49
|
-
| `excludeDynamicSystemPromptSections` | boolean | Move cwd/env/git context from system prompt to user message for better prompt cache hits; auto-enabled with `bare: true`
|
|
50
|
-
| `enablePromptCaching1H` | boolean | Enable 1-hour prompt cache TTL (vs default 5-min); auto-enabled with `bare: true`
|
|
51
|
-
| `debug` | string \| string[] | Debug categories to enable (e.g. `"api,mcp"` or `["api", "mcp"]`)
|
|
52
|
-
| `debugFile` | string | File path to write debug output to
|
|
53
|
-
| `fromPr` | string | Resume a session linked to a GitHub PR number or URL
|
|
54
|
-
| `channels` | string \| string[] | MCP channel subscription spec (research preview)
|
|
55
|
-
| `dangerouslyLoadDevelopmentChannels` | string \| string[] | Development MCP channel subscriptions (research preview)
|
|
56
|
-
| `forkSubagent` | boolean | Fork subagent for non-interactive sessions (sets `CLAUDE_CODE_FORK_SUBAGENT=1`)
|
|
57
|
-
| `enableToolSearch` | boolean | Enable Vertex AI tool search (sets `ENABLE_TOOL_SEARCH=1`)
|
|
58
|
-
| `otelLogUserPrompts` | boolean | OpenTelemetry: log user prompts (sets `OTEL_LOG_USER_PROMPTS=1`)
|
|
59
|
-
| `otelLogRawApiBodies` | boolean | OpenTelemetry: log raw API request/response bodies (sets `OTEL_LOG_RAW_API_BODIES=1`); debug only
|
|
60
|
-
| `bedrockServiceTier` | `'default'` \| `'flex'` \| `'priority'` | AWS Bedrock service tier (sets `ANTHROPIC_BEDROCK_SERVICE_TIER`); only effective when routing through Bedrock
|
|
61
|
-
| `effort` | `'low'` \| `'medium'` \| `'high'` \| `'xhigh'` \| `'max'` \| `'ultra'` \| `'auto'` | Reasoning effort level. Engines do not share one ladder: Claude Code takes up to `max`, Codex adds `ultra`, Grok stops at `xhigh`, Antigravity at `high`, and OpenCode forwards the level to its provider unvalidated. A level above an engine's ceiling clamps rather than being dropped. `high` and above trigger the `ultrathink` prefix on Claude user messages.
|
|
11
|
+
| Parameter | Type | Description |
|
|
12
|
+
| ------------------------------------ | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
13
|
+
| `name` | string | Session name (auto-generated if omitted) |
|
|
14
|
+
| `cwd` | string | Working directory |
|
|
15
|
+
| `engine` | `'claude'` \| `'codex'` \| `'codex-app'` \| `'agy'` \| `'grok'` \| `'opencode'` \| `'custom'` | Engine to use (default: `claude`). `agy` wraps Google Antigravity CLI. `grok` wraps xAI Grok Build and reports its own per-turn cost. `opencode` wraps sst/opencode (pass model as `provider/model`). Use `custom` with `customEngine` for any CLI. (`'gemini'` and `'cursor'` are still accepted for existing callers but are legacy — not version-tracked; use `agy` for Google and `grok` in place of Cursor.) |
|
|
16
|
+
| `model` | string | Model alias or full name |
|
|
17
|
+
| `permissionMode` | string | `acceptEdits`, `bypassPermissions`, `plan`, `auto`, `manual`, `dontAsk` (`default` = legacy alias for `manual`) |
|
|
18
|
+
| `sandboxMode` | `'read-only'` \| `'workspace-write'` \| `'danger-full-access'` | Sandbox policy. Codex supports all values. `read-only` is enforced on every other built-in engine too: Claude → plan mode; Antigravity → its plan mode; OpenCode → a generated `clawo-readonly` agent denying `edit`/`bash`. Grok → its OS-enforced `--sandbox read-only` profile (refused for a project under the temp directory, on platforms without Seatbelt or Landlock, and when grok cannot apply it). A `custom` engine must map it via `permissionModes`, or the session refuses to start. Persisted across session resume. |
|
|
19
|
+
| `allowedTools` | string[] | Tools to auto-approve |
|
|
20
|
+
| `disallowedTools` | string[] | Tools to deny |
|
|
21
|
+
| `maxTurns` | number | Max agent loop turns |
|
|
22
|
+
| `maxBudgetUsd` | number | Max API spend (USD). Enforced by the runtime on every engine: once the session's cumulative cost reaches the cap, further sends are refused before the engine is spawned. See [observability.md](observability.md) for the accuracy caveat on engines that estimate token counts. |
|
|
23
|
+
| `autoCompactPercent` | number | Compact the conversation before a send once `contextPercent` reaches this value (1–99). Off by default. For long-lived sessions, where cost grows with context size; survives a server restart. A failed compaction does not block the send. |
|
|
24
|
+
| `systemPrompt` | string | Replace system prompt |
|
|
25
|
+
| `appendSystemPrompt` | string | Append custom instructions to the system prompt. Claude Code and Grok take it natively; Codex, Antigravity and OpenCode have no such flag and receive it at the top of the first message of a conversation |
|
|
26
|
+
| `agents` | object | Custom sub-agents JSON |
|
|
27
|
+
| `agent` | string | Default agent to use |
|
|
28
|
+
| `bare` | boolean | Skip hooks, LSP, auto-memory, CLAUDE.md |
|
|
29
|
+
| `worktree` | string \| boolean | Run in git worktree |
|
|
30
|
+
| `fallbackModel` | string \| string[] | Fallback model(s) when the primary is overloaded; an array is tried in order |
|
|
31
|
+
| `resumeSessionId` | string | Resume existing session by ID |
|
|
32
|
+
| `jsonSchema` | string | JSON Schema for structured output. Claude: `--json-schema` (inline). Codex: `--output-schema` (written to a temp file, requires Codex 0.132+). Other engines ignore it. |
|
|
33
|
+
| `mcpConfig` | string \| string[] | MCP server config file(s) |
|
|
34
|
+
| `settings` | string | Settings.json path or inline JSON |
|
|
35
|
+
| `ultracode` | boolean | Claude only. Enable "ultracode" / dynamic workflows — Claude plans a JS orchestration script per substantive task and fans out to subagents. Injected as the `ultracode:true` settings key (merged into `settings`). The workflow runs in the background: `session_send` returns at launch, and the completion turn is not returned by a later send (see sessions.md). |
|
|
36
|
+
| `noSessionPersistence` | boolean | Do not save session to disk — both the engine's own transcript and this orchestrator's resume registry, so a later start under the same name does not reattach |
|
|
37
|
+
| `ignoreUserConfig` | boolean | Codex only. Run without loading `$CODEX_HOME/config.toml`, so an orchestrated run is decided by what the caller passed rather than by the machine's own Codex config — notably a `model = …` line in that file, which otherwise picks the model while the ledger records this engine's default. Auth still resolves from `CODEX_HOME`. |
|
|
38
|
+
| `codexProfile` | string | Codex only. Named profile from `~/.codex/config.toml`, passed as `codex exec --profile` |
|
|
39
|
+
| `restricted` | boolean | Claude Code only. Restricted mode (`--restricted`): the CLI removes the built-in tools that run commands or code — Bash, PowerShell, the REPL — plus `WebFetch` unless `tools` names them, and ignores user, project and local settings files. Separate from `sandboxMode: 'read-only'`: that maps to plan mode, which holds on its own, while this makes the shell absent rather than refused. It also drops the caller's CLAUDE.md and hooks, so it is never switched on implicitly. |
|
|
40
|
+
| `betas` | string \| string[] | Custom beta headers |
|
|
41
|
+
| `enableAgentTeams` | boolean | Enable experimental agent teams |
|
|
42
|
+
| `enableAutoMode` | boolean | Enable auto permission mode |
|
|
43
|
+
| `customEngine` | object | Custom engine config (required when `engine='custom'`). See [Multi-Engine: Custom Engine](./multi-engine.md#custom-engine-engine-custom). |
|
|
44
|
+
| `crossSessionInbound` | string | `accept` / `hold` / `refuse` — policy for peer messages from other Claude Code sessions on this machine (Claude engine). Delivered as a settings key; there is no CLI flag. Without it the CLI holds messages whose two sides run different permission modes, which is the usual orchestrated-session-to-human-terminal case |
|
|
45
|
+
| `includeHookEvents` | boolean | Stream hook lifecycle events (PreToolUse/PostToolUse) as `system` events |
|
|
46
|
+
| `forwardSubagentText` | boolean | Forward subagent text and thinking into the output stream (Claude engine, CLI 2.1.211+). Without it the parent stream stays quiet while a subagent works |
|
|
47
|
+
| `chrome` | boolean | Let the session use the user's Chrome through the Claude in Chrome extension, acting with that browser's sign-ins (Claude engine, `--chrome`). Off by default. Needs Chrome running with the extension and a claude.ai login; survives a server restart |
|
|
48
|
+
| `permissionPromptTool` | string | MCP tool name to delegate permission prompts to (non-interactive use). When omitted, the session runs with `--permission-prompts none`: a prompt nobody could answer is denied rather than left waiting until the turn timeout. |
|
|
49
|
+
| `excludeDynamicSystemPromptSections` | boolean | Move cwd/env/git context from system prompt to user message for better prompt cache hits; auto-enabled with `bare: true` |
|
|
50
|
+
| `enablePromptCaching1H` | boolean | Enable 1-hour prompt cache TTL (vs default 5-min); auto-enabled with `bare: true` |
|
|
51
|
+
| `debug` | string \| string[] | Debug categories to enable (e.g. `"api,mcp"` or `["api", "mcp"]`) |
|
|
52
|
+
| `debugFile` | string | File path to write debug output to |
|
|
53
|
+
| `fromPr` | string | Resume a session linked to a GitHub PR number or URL |
|
|
54
|
+
| `channels` | string \| string[] | MCP channel subscription spec (research preview) |
|
|
55
|
+
| `dangerouslyLoadDevelopmentChannels` | string \| string[] | Development MCP channel subscriptions (research preview) |
|
|
56
|
+
| `forkSubagent` | boolean | Fork subagent for non-interactive sessions (sets `CLAUDE_CODE_FORK_SUBAGENT=1`) |
|
|
57
|
+
| `enableToolSearch` | boolean | Enable Vertex AI tool search (sets `ENABLE_TOOL_SEARCH=1`) |
|
|
58
|
+
| `otelLogUserPrompts` | boolean | OpenTelemetry: log user prompts (sets `OTEL_LOG_USER_PROMPTS=1`) |
|
|
59
|
+
| `otelLogRawApiBodies` | boolean | OpenTelemetry: log raw API request/response bodies (sets `OTEL_LOG_RAW_API_BODIES=1`); debug only |
|
|
60
|
+
| `bedrockServiceTier` | `'default'` \| `'flex'` \| `'priority'` | AWS Bedrock service tier (sets `ANTHROPIC_BEDROCK_SERVICE_TIER`); only effective when routing through Bedrock |
|
|
61
|
+
| `effort` | `'low'` \| `'medium'` \| `'high'` \| `'xhigh'` \| `'max'` \| `'ultra'` \| `'auto'` | Reasoning effort level. Engines do not share one ladder: Claude Code takes up to `max`, Codex adds `ultra`, Grok stops at `xhigh`, Antigravity at `high`, and OpenCode forwards the level to its provider unvalidated. A level above an engine's ceiling clamps rather than being dropped. `high` and above trigger the `ultrathink` prefix on Claude user messages. |
|
|
62
62
|
|
|
63
63
|
### `session_send`
|
|
64
64
|
|
|
@@ -555,14 +555,14 @@ Get status and plan text when completed.
|
|
|
555
555
|
|
|
556
556
|
Start 1–20 reviewer agents that review the code in parallel, each from a different angle. Runs in background.
|
|
557
557
|
|
|
558
|
-
| Parameter | Type | Required | Description
|
|
559
|
-
| -------------------- | -------- | -------- |
|
|
560
|
-
| `cwd` | string | yes | Project directory
|
|
561
|
-
| `agentCount` | number | | Agents (1-20, default 5)
|
|
562
|
-
| `maxDurationMinutes` | number | | Duration (5-25 min, default 10)
|
|
563
|
-
| `model` | string | | Model for reviewers
|
|
564
|
-
| `focus` | string | | Review focus area
|
|
565
|
-
| `engines` | string[] | | Engines to spread reviewers across (default `["claude"]`). Every reviewer runs read-only, so `
|
|
558
|
+
| Parameter | Type | Required | Description |
|
|
559
|
+
| -------------------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
560
|
+
| `cwd` | string | yes | Project directory |
|
|
561
|
+
| `agentCount` | number | | Agents (1-20, default 5) |
|
|
562
|
+
| `maxDurationMinutes` | number | | Duration (5-25 min, default 10) |
|
|
563
|
+
| `model` | string | | Model for reviewers |
|
|
564
|
+
| `focus` | string | | Review focus area |
|
|
565
|
+
| `engines` | string[] | | Engines to spread reviewers across (default `["claude"]`). Every reviewer runs read-only, so `custom` is not allowed |
|
|
566
566
|
|
|
567
567
|
### `ultrareview_status`
|
|
568
568
|
|
|
@@ -122,6 +122,6 @@ if (status?.status === 'completed') {
|
|
|
122
122
|
| `maxDurationMinutes` | 10 | 5-25 | Per-agent timeout |
|
|
123
123
|
| `model` | session default | — | Model for all reviewers |
|
|
124
124
|
| `focus` | bugs + security + quality | — | Review focus description |
|
|
125
|
-
| `engines` | `['claude']` | — | Engines assigned to reviewers round-robin. Not `
|
|
125
|
+
| `engines` | `['claude']` | — | Engines assigned to reviewers round-robin. Not `custom`, which has no config to start a reviewer from |
|
|
126
126
|
|
|
127
127
|
Reviewers run once each (up to 20 turns); there is no cross-review round. Results are stored as a durable run and remain queryable after a restart.
|