@enderfga/claw-orchestrator 7.8.0 → 7.10.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 +84 -29
- package/dist/bin/cli.js +263 -0
- package/dist/bin/cli.js.map +1 -1
- 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/embedded-server.js +12 -2
- package/dist/src/embedded-server.js.map +1 -1
- package/dist/src/engine-spawn.js +8 -5
- package/dist/src/engine-spawn.js.map +1 -1
- package/dist/src/index.js +12 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel/exec.js +4 -1
- package/dist/src/kernel/exec.js.map +1 -1
- package/dist/src/kernel/nodes/agent.d.ts +9 -0
- package/dist/src/kernel/nodes/agent.js +35 -1
- package/dist/src/kernel/nodes/agent.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 +63 -20
- package/dist/src/persistent-grok-session.js.map +1 -1
- package/dist/src/persistent-opencode-session.d.ts +8 -0
- package/dist/src/persistent-opencode-session.js +16 -0
- package/dist/src/persistent-opencode-session.js.map +1 -1
- package/dist/src/session-manager.js +7 -7
- package/dist/src/session-manager.js.map +1 -1
- package/dist/src/verify/evidence.d.ts +6 -0
- package/dist/src/verify/evidence.js +19 -0
- package/dist/src/verify/evidence.js.map +1 -1
- package/package.json +1 -1
- package/skills/SKILL.md +1 -1
- package/skills/references/autoloop.md +5 -3
- package/skills/references/claude-cli-tracking.md +2 -1
- package/skills/references/cli.md +45 -2
- package/skills/references/multi-engine.md +19 -11
- package/skills/references/tools.md +72 -71
- package/skills/references/ultra.md +1 -1
- package/skills/references/workflow.md +5 -0
package/skills/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: claw-orchestrator
|
|
3
|
-
description: Manage persistent coding sessions across Claude Code, Codex, Antigravity (agy), Grok Build, and OpenCode engines. Use when orchestrating multi-engine coding agents, starting/sending/stopping sessions, running multi-agent council collaborations, cross-session messaging, ultraplan deep planning, ultrareview parallel code review, autoloop autonomous workspace iteration, ultraapp building deployable web apps from a structured Q&A interview, switching models/tools at runtime, exposing the orchestrator's 78 tools as an MCP server to Hermes Agent / Claude Desktop / Cursor / Cline / Continue / Zed / Windsurf / Goose, or running as an Agent Client Protocol (ACP) agent that Zed / JetBrains / Neovim / Emacs / VS Code / dsh can drive directly. Triggers on "start a session", "send to session", "run council", "ultraplan", "ultrareview", "autoloop", "ultraapp", "Forge tab", "build a web app", "one-click app", "AppSpec", "autonomous iteration", "iterate until goal", "auto research", "switch model", "hand off a session", "session handoff", "switch engine", "continue on codex", "continue on claude", "move this session to another engine", "multi-agent coding", "coding session", "session inbox", "grok session", "grok build", "opencode", "mcp server", "clawo-mcp", "hermes mcp", "model context protocol", "ultracode", "dynamic workflow", "fanout", "fan-out", "best-of-N", "steer turn", "interrupt turn", "fork thread", "rollback turns", "acp", "agent client protocol", "clawo acp", "zed agent", "jetbrains agent", "external agent", "dsh subagent", "deepseek harness", "clawo runs", "run ledger", "session cost", "coding-agent token usage", "spend cap", "budget limit", "maxBudgetUsd", "durable workflow", "resume a run", "verify a coding run", "acceptance contract", "evidence bundle", "did the agent's tests actually pass", "protected tests", "agent edited the tests", "human gate", "repair loop", "clawo workflow", "clawo verify".
|
|
3
|
+
description: Manage persistent coding sessions across Claude Code, Codex, Antigravity (agy), Grok Build, and OpenCode engines. Use when orchestrating multi-engine coding agents, starting/sending/stopping sessions, running multi-agent council collaborations, cross-session messaging, ultraplan deep planning, ultrareview parallel code review, autoloop autonomous workspace iteration, ultraapp building deployable web apps from a structured Q&A interview, switching models/tools at runtime, exposing the orchestrator's 78 tools as an MCP server to Hermes Agent / Claude Desktop / Cursor / Cline / Continue / Zed / Windsurf / Goose, or running as an Agent Client Protocol (ACP) agent that Zed / JetBrains / Neovim / Emacs / VS Code / dsh can drive directly. Triggers on "start a session", "send to session", "run council", "ultraplan", "ultrareview", "autoloop", "ultraapp", "Forge tab", "build a web app", "one-click app", "AppSpec", "autonomous iteration", "iterate until goal", "auto research", "switch model", "hand off a session", "session handoff", "switch engine", "continue on codex", "continue on claude", "move this session to another engine", "multi-agent coding", "coding session", "session inbox", "grok session", "grok build", "opencode", "mcp server", "clawo-mcp", "hermes mcp", "model context protocol", "ultracode", "dynamic workflow", "fanout", "fan-out", "best-of-N", "steer turn", "interrupt turn", "fork thread", "rollback turns", "acp", "agent client protocol", "clawo acp", "zed agent", "jetbrains agent", "external agent", "dsh subagent", "deepseek harness", "clawo runs", "run ledger", "session cost", "coding-agent token usage", "spend cap", "budget limit", "maxBudgetUsd", "durable workflow", "resume a run", "verify a coding run", "acceptance contract", "evidence bundle", "did the agent's tests actually pass", "protected tests", "agent edited the tests", "human gate", "repair loop", "clawo workflow", "clawo verify", "clawo solve", "clawo fanout", "fix and verify", "solve from the terminal".
|
|
4
4
|
metadata:
|
|
5
5
|
{
|
|
6
6
|
'openclaw':
|
|
@@ -460,9 +460,11 @@ Custom-engine configs are the one thing the spec does not carry (they can hold
|
|
|
460
460
|
secrets), so a resume must be given them again. Cancelling a run stops all three
|
|
461
461
|
agents, the same as `autoloop_stop`. If the highest committed Coder iteration
|
|
462
462
|
has ledger artifacts and no `verdict.json`, and `HEAD` still names that iter,
|
|
463
|
-
resume
|
|
464
|
-
|
|
465
|
-
|
|
463
|
+
resume starts and sends only the Reviewer: one `review_request` for that
|
|
464
|
+
checkpoint, and the dispatcher persists `verdict.json`. It does not create or
|
|
465
|
+
resume a Coder session, and a historical persisted Coder registry row is left
|
|
466
|
+
unchanged. An in-flight send is still not retried, and there is no message
|
|
467
|
+
outbox.
|
|
466
468
|
|
|
467
469
|
## Known limitations
|
|
468
470
|
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
This document tracks which Claude Code CLI version Claw Orchestrator is currently synced to, and which features have been integrated. Recent rows also record the other engines' versions checked in the same sync.
|
|
4
4
|
|
|
5
|
-
## Currently tracked: **Claude Code CLI 2.1.
|
|
5
|
+
## Currently tracked: **Claude Code CLI 2.1.295** (as of 2026-10-09, plugin v7.10.0)
|
|
6
6
|
|
|
7
7
|
## Sync history
|
|
8
8
|
|
|
9
9
|
| Plugin Version | Claude CLI Version | Date | Notable integrations |
|
|
10
10
|
| ------------------- | ------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
+
| v7.10.0 | 2.1.295 | 2026-10-09 | CC 2.1.292→2.1.295, Codex 0.160.1→0.162.0, agy 1.3.1→1.3.2, grok 1.0.46→1.0.50; OpenCode 1.18.35 unchanged. No flag the wrappers pass changed. Integrated: Claude Haiku 5.5 registered and the `haiku` alias moved to it (`--model haiku` resolves to `claude-haiku-5-5` in 2.1.295); Sonnet 5.5's cache-hit price corrected to 0.05× input. Integrated: grok 1.0.50's `--sandbox read-only` backs Grok's `sandboxMode: 'read-only'`, measured against direct, shell, subagent, resumed-turn and out-of-project writes; a profile grok cannot apply only warns, so the session kills the process on that warning. |
|
|
11
12
|
| v7.8.0 | 2.1.292 | 2026-10-07 | CC 2.1.291→2.1.292, agy 1.3.0→1.3.1, OpenCode 1.18.34→1.18.35; Codex 0.160.1 and grok 1.0.46 unchanged. No flag surface changed. Integrated: Codex image generation surfaced as `images` on the send result (`codex exec` from `$CODEX_HOME/generated_images/<thread>/`, `codex-app` from the `imageGeneration` item). Read, no change needed: CC 2.1.292 negotiates MCP protocol 2026-07-28 with local stdio servers by default — `clawo-mcp` answers with 2025-11-25 and connects with no delay (measured against `MCP_PROTOCOL_NEGOTIATION=legacy`). |
|
|
12
13
|
| v7.7.0 | 2.1.291 | 2026-10-07 | CC 2.1.289→2.1.291, Codex 0.160.0→0.160.1, agy 1.2.17→1.3.0; grok 1.0.46 and OpenCode 1.18.34 unchanged. No flag surface changed. Integrated: `--chrome` behind a `chrome` session option (2.1.290 stopped project settings from turning Claude in Chrome on, so the flag is the way in); `system/model_refusal_fallback` recorded per turn in the ledger. Read, no change needed: Codex's `computer_use` feature is the ChatGPT desktop app's Computer Use plugin, not a tool in `codex exec`, which reports none; agy 1.3.0 is interactive-view changes. |
|
|
13
14
|
| v7.6.2 | 2.1.289 | 2026-10-05 | CC 2.1.286→2.1.289, Codex 0.159.3→0.160.0, agy 1.2.14→1.2.17, grok 1.0.44→1.0.46; OpenCode 1.18.34 unchanged. No flag surface changed, no wrapper change. Read, no change needed: CC 2.1.288 limits background-command time only in unattended (`-p`) sessions, which these already are; agy 1.2.16 fixes `-p` runs exiting before the agent answers a finished background command, consistent with the 7.5.6 deadline handling. |
|
package/skills/references/cli.md
CHANGED
|
@@ -196,6 +196,48 @@ Tools without a CLI command are reachable through the OpenClaw plugin, the MCP
|
|
|
196
196
|
server (`clawo-mcp`, see [mcp.md](./mcp.md)), or the `SessionManager` API. See
|
|
197
197
|
[Tools Reference](./tools.md) for full parameter documentation.
|
|
198
198
|
|
|
199
|
+
## `clawo solve`
|
|
200
|
+
|
|
201
|
+
Start the built-in `solve` workflow — triage → implement → verify → repair until
|
|
202
|
+
green — and let the runtime decide whether it worked.
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
clawo solve "<task>" [--engine <engine[:model]>] [--check "<command>"]... [--contract <file>]
|
|
206
|
+
[--scouts <list>] [--reviewers <list>] [--max-repairs N] [--human-gate]
|
|
207
|
+
[--cwd <dir>] [--wait] [--json]
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
| Option | Default | Notes |
|
|
211
|
+
| --------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
212
|
+
| `-e, --engine` | `claude` | The implementer, `engine` or `engine:model` (`codex:gpt-6.1-sol`) |
|
|
213
|
+
| `-c, --check` | — | A command check, repeatable. Split on whitespace and run as argv, never through a shell; anything that needs quoting belongs in `--contract` |
|
|
214
|
+
| `--contract` | — | A contract JSON file ([verification.md](./verification.md)); `--check` entries are appended to it |
|
|
215
|
+
| `--scouts` | the implementer | Comma-separated triage agents, `engine[:model]` each |
|
|
216
|
+
| `--reviewers` | — | Comma-separated reviewers of the finished change |
|
|
217
|
+
| `--max-repairs` | `3` | Attempts the router allows while the checks are red; `0` keeps only the first attempt |
|
|
218
|
+
| `--human-gate` | off | Park before anything is written until `clawo workflow approve` |
|
|
219
|
+
| `--cwd` | current directory | Project directory |
|
|
220
|
+
| `-w, --wait` | off | Follow the run, printing each node transition, then the verdict |
|
|
221
|
+
| `--json` | off | Print `{ runId }`, or with `--wait` the final run record |
|
|
222
|
+
|
|
223
|
+
With `--wait` the exit code is the verdict: `0` when the run completed (verified,
|
|
224
|
+
or unverified because no check was given), `1` when it was refuted, failed or
|
|
225
|
+
cancelled. Unknown engine names are refused before anything starts.
|
|
226
|
+
|
|
227
|
+
## `clawo fanout`
|
|
228
|
+
|
|
229
|
+
Ask several engines the same thing in parallel, optionally merging the answers.
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
clawo fanout "<task>" [--engines <list>] [--synthesize] [--check "<command>"]...
|
|
233
|
+
[--contract <file>] [--cwd <dir>] [--wait] [--json]
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
`--engines` (default `claude,codex`) takes `engine[:model]` items; the same
|
|
237
|
+
engine may appear more than once. With `--wait` the run is followed to the end
|
|
238
|
+
and every answer is printed, followed by the synthesis when `--synthesize` was
|
|
239
|
+
given. Checks run after the fan-out, as for `solve`.
|
|
240
|
+
|
|
199
241
|
## `clawo workflow`
|
|
200
242
|
|
|
201
243
|
```bash
|
|
@@ -220,8 +262,9 @@ earlier sessions.
|
|
|
220
262
|
clawo verify <runId> [--evidence <id>] [--json]
|
|
221
263
|
```
|
|
222
264
|
|
|
223
|
-
Prints the evidence bundle: per-check pass/fail with the failing command and
|
|
224
|
-
output
|
|
265
|
+
Prints the evidence bundle: per-check pass/fail with the failing command and the
|
|
266
|
+
lines of its output that say why (an assertion message, an error line — the last
|
|
267
|
+
few lines when nothing stands out), the base and head commits, and the files the run changed (created
|
|
225
268
|
files included).
|
|
226
269
|
|
|
227
270
|
## `clawo engines`
|
|
@@ -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.295**.
|
|
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.0**.
|
|
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`.
|
|
@@ -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
|
|
|
@@ -822,18 +822,19 @@ Full semantics in [`workflow.md`](./workflow.md) and
|
|
|
822
822
|
Start a durable run. Every state transition is checkpointed to disk, so a run
|
|
823
823
|
survives a process restart and can be resumed.
|
|
824
824
|
|
|
825
|
-
| Param
|
|
826
|
-
|
|
|
827
|
-
| `spec`
|
|
828
|
-
| `template`
|
|
829
|
-
| `task`
|
|
830
|
-
| `agents`
|
|
831
|
-
| `reviewers`
|
|
832
|
-
| `
|
|
833
|
-
| `
|
|
834
|
-
| `
|
|
835
|
-
| `
|
|
836
|
-
| `
|
|
825
|
+
| Param | Type | Notes |
|
|
826
|
+
| ------------- | -------------------------------- | ------------------------------------------------------------------------- |
|
|
827
|
+
| `spec` | object | `WorkflowSpec`: `{ name, nodes[], cwd?, contract?, maxNodeVisits? }` |
|
|
828
|
+
| `template` | `solve` \| `council` \| `fanout` | Build a built-in instead of supplying `spec` |
|
|
829
|
+
| `task` | string | Required with `template` |
|
|
830
|
+
| `agents` | array | `{ name, engine?, model?, effort?, persona? }` |
|
|
831
|
+
| `reviewers` | array | `solve` only — same agent binding for final reviewers |
|
|
832
|
+
| `implementer` | object | `solve` only — `{ engine?, model? }` for the agent that writes the change |
|
|
833
|
+
| `humanGate` | boolean | `solve` only — park for approval before anything is written |
|
|
834
|
+
| `maxRepairs` | number | `solve` only, default 3 |
|
|
835
|
+
| `cwd` | string | Working directory |
|
|
836
|
+
| `runId` | string | Explicit id |
|
|
837
|
+
| `contract` | object | Acceptance contract — see below |
|
|
837
838
|
|
|
838
839
|
Returns `{ runId, workflow, state, nodes }` and runs in the background.
|
|
839
840
|
|
|
@@ -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.
|
|
@@ -240,6 +240,11 @@ with `visits_lt`.
|
|
|
240
240
|
}
|
|
241
241
|
```
|
|
242
242
|
|
|
243
|
+
When the router sends control back to `implement`, the agent is told what the
|
|
244
|
+
last verification found: each failing required check and the lines of its output
|
|
245
|
+
that say why, framed as data, ahead of the node's own prompt. This applies to any
|
|
246
|
+
`agent` node re-entered after a failed verifier, not only to `solve`.
|
|
247
|
+
|
|
243
248
|
The run leaves `completed` only if the last `verify` was green. There is no
|
|
244
249
|
second verifier at the end on purpose: re-running a contract that shells out to a
|
|
245
250
|
test suite would double the most expensive part of the run to learn nothing new.
|