@enderfga/claw-orchestrator 7.6.1 → 7.7.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 +4 -4
- package/dist/src/acp-server.d.ts +11 -1
- package/dist/src/acp-server.js +68 -14
- package/dist/src/acp-server.js.map +1 -1
- package/dist/src/autoloop/dispatcher.js +9 -1
- package/dist/src/autoloop/dispatcher.js.map +1 -1
- package/dist/src/base-oneshot-session.js +2 -25
- package/dist/src/base-oneshot-session.js.map +1 -1
- package/dist/src/engine-spawn.d.ts +38 -0
- package/dist/src/engine-spawn.js +223 -0
- package/dist/src/engine-spawn.js.map +1 -0
- package/dist/src/index.js +10 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/persistent-agy-session.js +2 -2
- package/dist/src/persistent-agy-session.js.map +1 -1
- package/dist/src/persistent-codex-app-session.js +2 -2
- package/dist/src/persistent-codex-app-session.js.map +1 -1
- package/dist/src/persistent-codex-session.js +14 -7
- package/dist/src/persistent-codex-session.js.map +1 -1
- package/dist/src/persistent-cursor-session.js +2 -2
- package/dist/src/persistent-cursor-session.js.map +1 -1
- package/dist/src/persistent-custom-session.js +3 -3
- package/dist/src/persistent-custom-session.js.map +1 -1
- package/dist/src/persistent-gemini-session.js +2 -2
- package/dist/src/persistent-gemini-session.js.map +1 -1
- package/dist/src/persistent-grok-session.js +2 -2
- package/dist/src/persistent-grok-session.js.map +1 -1
- package/dist/src/persistent-opencode-session.js +10 -8
- package/dist/src/persistent-opencode-session.js.map +1 -1
- package/dist/src/persistent-session.d.ts +2 -0
- package/dist/src/persistent-session.js +28 -3
- package/dist/src/persistent-session.js.map +1 -1
- package/dist/src/run-ledger.d.ts +6 -0
- package/dist/src/run-ledger.js.map +1 -1
- package/dist/src/session-manager.d.ts +7 -0
- package/dist/src/session-manager.js +106 -49
- package/dist/src/session-manager.js.map +1 -1
- package/dist/src/types.d.ts +24 -0
- package/package.json +3 -1
- package/skills/references/acp.md +29 -11
- package/skills/references/autoloop.md +5 -0
- package/skills/references/claude-cli-tracking.md +3 -1
- package/skills/references/mcp.md +19 -0
- package/skills/references/multi-engine.md +8 -6
- package/skills/references/observability.md +2 -1
- package/skills/references/sessions.md +11 -0
- package/skills/references/tools.md +2 -0
package/skills/references/acp.md
CHANGED
|
@@ -27,8 +27,9 @@ Built against **stable ACP v1** (`@agentclientprotocol/sdk`, pinned `1.3.0`).
|
|
|
27
27
|
ACP v2 exists but is a published draft whose README warns the wire protocol "may
|
|
28
28
|
change incompatibly in any SDK release", so it is deliberately not used.
|
|
29
29
|
|
|
30
|
-
Implemented: `initialize`, `authenticate`, `session/new`, `session/
|
|
31
|
-
`session/
|
|
30
|
+
Implemented: `initialize`, `authenticate`, `session/new`, `session/resume`,
|
|
31
|
+
`session/list`, `session/prompt`, `session/set_mode`, `session/set_config_option`,
|
|
32
|
+
`session/cancel`.
|
|
32
33
|
|
|
33
34
|
## Configuration
|
|
34
35
|
|
|
@@ -99,8 +100,9 @@ cancelling one abandons the poll rather than stopping the work.
|
|
|
99
100
|
`session/new` also returns a `category: "model"` config option whose values are
|
|
100
101
|
**grouped by engine**, built from the shared registry in `src/models.ts`. One
|
|
101
102
|
dropdown holds four engine groups at once: Claude Code, Codex, Antigravity and
|
|
102
|
-
Grok Build. Changing it restarts the underlying session
|
|
103
|
-
|
|
103
|
+
Grok Build. Changing it restarts the underlying session; the ACP session id is
|
|
104
|
+
unaffected. A model on the same engine continues the conversation; a model on
|
|
105
|
+
another engine starts a new one, since one engine cannot read another's.
|
|
104
106
|
|
|
105
107
|
Other engines are absent for different reasons:
|
|
106
108
|
|
|
@@ -112,6 +114,24 @@ Other engines are absent for different reasons:
|
|
|
112
114
|
straight through, so there is nothing in the registry to enumerate. An opencode
|
|
113
115
|
session is reachable by naming the model, just not by picking it from this list.
|
|
114
116
|
|
|
117
|
+
## Resuming sessions
|
|
118
|
+
|
|
119
|
+
Sessions outlive the agent process. `initialize` advertises
|
|
120
|
+
`sessionCapabilities.resume` and `sessionCapabilities.list`:
|
|
121
|
+
|
|
122
|
+
- **`session/list`** returns the sessions this agent created, newest first, with
|
|
123
|
+
`sessionId`, `cwd` and `updatedAt`; pass `cwd` to see one project's.
|
|
124
|
+
- **`session/resume`** reattaches a session by id after the editor or the agent
|
|
125
|
+
restarts, on the engine and model it was using, and the next prompt continues
|
|
126
|
+
its conversation. The `cwd` must be the one the session was created in — the
|
|
127
|
+
engines keep conversations per directory.
|
|
128
|
+
|
|
129
|
+
`session/load` is not offered (`loadSession: false`): it requires replaying the
|
|
130
|
+
earlier conversation to the client, and no engine returns its history in a form
|
|
131
|
+
that can be replayed. A resumed session therefore opens with an empty view in the
|
|
132
|
+
client while the engine still remembers it. Sessions are kept for 7 days after
|
|
133
|
+
their last use.
|
|
134
|
+
|
|
115
135
|
## Permission
|
|
116
136
|
|
|
117
137
|
ACP can ask the user mid-turn through `session/request_permission`. This agent does
|
|
@@ -125,13 +145,11 @@ saying so, so the choice is a session config option instead — which also suits
|
|
|
125
145
|
## Cancellation
|
|
126
146
|
|
|
127
147
|
`session/cancel` settles the in-flight prompt as `cancelled` immediately, then tears
|
|
128
|
-
the underlying session down and recreates it.
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
silently: the client keeps the same ACP session id while the next prompt opens a
|
|
134
|
-
fresh engine thread.
|
|
148
|
+
the underlying session down and recreates it. The recreated session resumes the
|
|
149
|
+
engine's conversation from the saved resume handle. Codex, codex-app, agy, cursor and
|
|
150
|
+
opencode report theirs during a turn, so a cancel in the very first turn of a session
|
|
151
|
+
can still start a fresh conversation. A cancel with **nothing in flight does
|
|
152
|
+
nothing**.
|
|
135
153
|
|
|
136
154
|
The session layer has **no mid-turn cancel** — `stopSession()` is the only lever and
|
|
137
155
|
it destroys the session rather than pausing the turn. So the ACP turn returns
|
|
@@ -171,6 +171,11 @@ autoloop_reset_agent({ "run_id": "my-run", "agent": "coder", "eager_restart": tr
|
|
|
171
171
|
autoloop_stop({ "run_id": "my-run", "reason": "done" })
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
+
Agent reset is fail-closed. If the old session cannot be stopped and its name is
|
|
175
|
+
still live (or liveness cannot be checked), the reset fails without clearing the
|
|
176
|
+
role's started state or attempting a replacement. If the manager confirms that
|
|
177
|
+
the old name is already absent, reset may continue and create the replacement.
|
|
178
|
+
|
|
174
179
|
## Plugin tools
|
|
175
180
|
|
|
176
181
|
| Tool | Args | What |
|
|
@@ -2,12 +2,14 @@
|
|
|
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.291** (as of 2026-10-07, plugin v7.7.0)
|
|
6
6
|
|
|
7
7
|
## Sync history
|
|
8
8
|
|
|
9
9
|
| Plugin Version | Claude CLI Version | Date | Notable integrations |
|
|
10
10
|
| ------------------- | ------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
+
| 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. |
|
|
12
|
+
| 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. |
|
|
11
13
|
| v7.6.1 | 2.1.286 | 2026-10-01 | CC 2.1.284→2.1.286, Codex 0.159.0→0.159.3, agy 1.2.13→1.2.14, OpenCode 1.18.33→1.18.34; grok 1.0.44 unchanged. No flag surface changed. Integrated: `gpt-6.1-sol` registered ($2/$10, cache reads at 5% of input); a Codex session with no model is priced as the model Codex reports it ran rather than `gpt-5.5`. Read, no change needed: CC 2.1.285 starts `-p` sessions on third-party providers or with telemetry off in auto mode when no permission mode is set (this wrapper always passes `--permission-mode`); CC 2.1.286 resume fixes after parallel tool calls. Gemini 4 is not yet released: no API id, price or `agy models` entry. |
|
|
12
14
|
| v7.6.0 | 2.1.284 | 2026-09-29 | CC 2.1.283→2.1.284, Codex 0.157.1→0.159.0, agy 1.2.11→1.2.13, grok 1.0.41→1.0.44, OpenCode 1.18.32→1.18.33. No flag surface changed. Integrated: Claude Sonnet 5.5 registered and the `sonnet` alias moved to `claude-sonnet-5-5` (the CLI resolves `--model sonnet` to it); priced at $2/$10 per Mtok with $0.20 cache reads, the same as Sonnet 5. Read, no change needed: CC 2.1.284 makes Ultracode its own `/effort` toggle that no longer forces xhigh (the `ultracode` settings key this wrapper passes already composes with a separate effort) and starts interactive sessions in auto mode (headless sessions are unaffected); Codex 0.158–0.159 TUI, sandbox and approval changes; agy 1.2.12–1.2.13 rate-limit handling; OpenCode 1.18.33 Gemini effort defaults. |
|
|
13
15
|
| v7.5.6 | 2.1.283 | 2026-09-26 | CC 2.1.280→2.1.283, Codex 0.156.1→0.157.1, agy 1.2.8→1.2.11; grok 1.0.41 and OpenCode 1.18.32 unchanged. No flag surface changed. Integrated: since agy 1.2.9 a headless run waits for the agent's background tasks until `--print-timeout` and prints its reply only on exit, so agy's deadline now falls just inside the send timeout, and a run that reaches it mid-turn (`SUCCESS` with a partial reply, flagged only on stderr) fails as a timeout. Effort-qualified agy slugs are priced as their base model. Codex `appendSystemPrompt` delivery verified live on `codex exec` and `codex app-server`. Read, no change needed: agy 1.2.10 exits 3 on a partial response ending in an error (already a failed turn); agy 1.2.11 effort handling (the tier rules measured unchanged); CC 2.1.281 accepts `--system-prompt` together with its `-file` form; Codex 0.157 background-server startup applies to interactive sessions only. |
|
package/skills/references/mcp.md
CHANGED
|
@@ -8,6 +8,7 @@ This document covers:
|
|
|
8
8
|
- [Host configuration](#host-configuration)
|
|
9
9
|
- [Hermes Agent](#hermes-agent)
|
|
10
10
|
- [Claude Desktop / Claude Code](#claude-desktop--claude-code)
|
|
11
|
+
- [Codex CLI](#codex-cli)
|
|
11
12
|
- [Cursor](#cursor)
|
|
12
13
|
- [Cline (VS Code)](#cline-vs-code)
|
|
13
14
|
- [Continue](#continue)
|
|
@@ -116,6 +117,24 @@ Hermes prefixes tool names with `mcp_<server>_`. The model sees the prefixed nam
|
|
|
116
117
|
|
|
117
118
|
For Claude Code (`~/.claude.json` or per-project `.mcp.json`), use the same shape under `mcpServers`.
|
|
118
119
|
|
|
120
|
+
### Codex CLI
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
codex mcp add clawo -- clawo-mcp
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
or in `~/.codex/config.toml`:
|
|
127
|
+
|
|
128
|
+
```toml
|
|
129
|
+
[mcp_servers.clawo]
|
|
130
|
+
command = "clawo-mcp"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Codex then offers the tools in every local session — `codex exec`, the TUI and `codex app-server`. For a
|
|
134
|
+
one-off run without touching the config, pass `-c 'mcp_servers.clawo.command="clawo-mcp"'`. Each Codex
|
|
135
|
+
session starts its own `clawo-mcp` process, so the sessions one Codex session starts through it are not
|
|
136
|
+
visible from another.
|
|
137
|
+
|
|
119
138
|
### Cursor
|
|
120
139
|
|
|
121
140
|
In Cursor settings → MCP, add a server. The config file is `~/.cursor/mcp.json`:
|
|
@@ -19,7 +19,7 @@ SessionManager
|
|
|
19
19
|
├── engine: 'cursor' → PersistentCursorSession (legacy)
|
|
20
20
|
│ └── Wraps: cursor-agent -p --trust --output-format stream-json (per-message spawning)
|
|
21
21
|
├── engine: 'opencode' → PersistentOpencodeSession
|
|
22
|
-
│ └── Wraps: opencode run --format json (per-message spawning)
|
|
22
|
+
│ └── Wraps: opencode run --format json, message on stdin (per-message spawning)
|
|
23
23
|
└── engine: 'custom' → PersistentCustomSession
|
|
24
24
|
└── Wraps: any CLI via user-provided CustomEngineConfig
|
|
25
25
|
```
|
|
@@ -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.291**.
|
|
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.160.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
|
|
@@ -81,6 +81,8 @@ Wraps the `codex exec` subcommand. Each `send()` spawns a new process. Tested wi
|
|
|
81
81
|
- Working directory passed via `-C` on the first turn
|
|
82
82
|
- Model: with no `model`, codex runs its own default — the `model` in `~/.codex/config.toml` if set. Cost is then priced as the model codex reports it ran (the rollout's `turn_context`; `thread/start` on `codex-app`), and as `gpt-5.5` only when that cannot be read
|
|
83
83
|
- Requires `codex` CLI >= 0.119 (for `exec resume`): `npm install -g @openai/codex`
|
|
84
|
+
- The prompt is sent on stdin (`codex exec … -`), never on the command line.
|
|
85
|
+
- **Windows:** the npm `.cmd` shim launches through `src/engine-spawn.ts` (cross-spawn), which escapes the remaining arguments for `cmd.exe`. Because the prompt is on stdin it arrives unchanged, newlines and quotes included. A timed-out turn ends the whole process tree (`taskkill /T /F`), not only `cmd.exe`.
|
|
84
86
|
- **Does not support `/goal`** — for that, use `engine: 'codex-app'` below
|
|
85
87
|
|
|
86
88
|
```typescript
|
|
@@ -126,7 +128,7 @@ await manager.startSession({
|
|
|
126
128
|
|
|
127
129
|
Wraps Google's **Antigravity CLI** (`agy`) — the successor to Gemini CLI (consumer
|
|
128
130
|
Gemini CLI tiers stopped serving 2026-06-18). Each `send()` spawns a new process
|
|
129
|
-
in print mode. Tested with `agy` **1.
|
|
131
|
+
in print mode. Tested with `agy` **1.3.0**.
|
|
130
132
|
|
|
131
133
|
- One-shot execution per message (no persistent subprocess)
|
|
132
134
|
- **Structured output and real usage** — `--output-format stream-json` emits an
|
|
@@ -211,7 +213,7 @@ await manager.startSession({
|
|
|
211
213
|
### Grok Build (`engine: 'grok'`)
|
|
212
214
|
|
|
213
215
|
Wraps xAI's **Grok Build** CLI. Each `send()` spawns `grok -p <msg> --output-format json`, which
|
|
214
|
-
prints a single JSON object and exits. Tested with `grok` **1.0.
|
|
216
|
+
prints a single JSON object and exits. Tested with `grok` **1.0.46**.
|
|
215
217
|
|
|
216
218
|
- **Cost comes from the engine, not from the price table.** The result object carries
|
|
217
219
|
`total_cost_usd`, and the wrapper writes it straight into the session's spend, so the run ledger
|
|
@@ -344,7 +346,7 @@ Wraps the [sst/opencode](https://github.com/sst/opencode) CLI with `run --format
|
|
|
344
346
|
- if the `clawo-readonly` agent fails to load, the turn is refused rather than run with write access
|
|
345
347
|
- 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
|
|
346
348
|
- 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
|
|
347
|
-
- Binary: `opencode` (set `OPENCODE_BIN` env var to override)
|
|
349
|
+
- 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.
|
|
348
350
|
|
|
349
351
|
```typescript
|
|
350
352
|
await manager.startSession({
|
|
@@ -30,7 +30,7 @@ every engine passes through, not only through Claude Code's `--max-budget-usd`.
|
|
|
30
30
|
| `ts` | ISO timestamp of turn completion |
|
|
31
31
|
| `session` | SessionManager session name |
|
|
32
32
|
| `engine` | `claude` / `codex` / `codex-app` / `grok` / `opencode` / `agy` / `cursor` (legacy) / `custom` |
|
|
33
|
-
| `model` | Configured model, or the engine's own reported model when none was set (Claude Code: the model named in its `init` event). Absent when neither is known
|
|
33
|
+
| `model` | Configured model, or the engine's own reported model when none was set (Claude Code: the model named in its `init` event). A configured alias such as `opus[1m]` is recorded as the model the engine reports it resolved to. Absent when neither is known |
|
|
34
34
|
| `cwd` | Working directory the turn ran in |
|
|
35
35
|
| `turn` | 1-based index of the send within the session, counted by the process that recorded it |
|
|
36
36
|
| `tokensIn` / `tokensOut` / `cachedTokens` | **Per-turn deltas**, not session totals |
|
|
@@ -40,6 +40,7 @@ every engine passes through, not only through Claude Code's `--max-budget-usd`.
|
|
|
40
40
|
| `toolCalls` / `toolErrors` | Per-turn deltas |
|
|
41
41
|
| `ok` | `false` for a turn that threw, or that the session's own `turnsSucceeded` counter did not count (see `sessions.md`). Falls back to "nothing was thrown" when the counter cannot be read |
|
|
42
42
|
| `error` | Failure text, truncated to 500 chars. Absent when the turn resolved but the engine did not count it as succeeded (an interrupted or non-SUCCESS turn), so a failed row does not always carry one |
|
|
43
|
+
| `refusalFallback` | `{ from, to, category? }` when the model refused and the engine re-ran the turn on another model (Claude Code’s refusal fallback, for example Opus 5.5 to an older Opus on a `cyber` refusal). Absent otherwise |
|
|
43
44
|
| `parent` | council / fanout / autoloop / workflow run id, when the turn belongs to one |
|
|
44
45
|
|
|
45
46
|
Deltas rather than totals means summing a query window gives that window's spend
|
|
@@ -190,6 +190,17 @@ tokens the session has been billed for in total, which only ever grows.
|
|
|
190
190
|
(`codex`, `agy`, `grok`, `opencode`); those sessions log a warning the first
|
|
191
191
|
time it is called.
|
|
192
192
|
|
|
193
|
+
A long-lived session can compact itself: start it with `autoCompactPercent`
|
|
194
|
+
(1–99, off by default) and, before each send, the session is compacted first
|
|
195
|
+
if `contextPercent` has reached that value. Every call in a turn re-reads the
|
|
196
|
+
whole context from cache, so cost grows with context size; compacting earlier
|
|
197
|
+
trades detail of older turns for cheaper ones. The setting survives a restart
|
|
198
|
+
of the server, and a failed compaction never costs the send.
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
await manager.startSession({ name: 'assistant', cwd: '/srv/bot', autoCompactPercent: 85 });
|
|
202
|
+
```
|
|
203
|
+
|
|
193
204
|
`stats.turns` and `stats.turnsSucceeded` are the same kind of distinction.
|
|
194
205
|
`turns` counts turns that reached the engine, whatever their outcome, including
|
|
195
206
|
the ones that then failed. `turnsSucceeded` counts only the ones the engine
|
|
@@ -20,6 +20,7 @@ Start a persistent coding session with full CLI flag support.
|
|
|
20
20
|
| `disallowedTools` | string[] | Tools to deny |
|
|
21
21
|
| `maxTurns` | number | Max agent loop turns |
|
|
22
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. |
|
|
23
24
|
| `systemPrompt` | string | Replace system prompt |
|
|
24
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 |
|
|
25
26
|
| `agents` | object | Custom sub-agents JSON |
|
|
@@ -43,6 +44,7 @@ Start a persistent coding session with full CLI flag support.
|
|
|
43
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 |
|
|
44
45
|
| `includeHookEvents` | boolean | Stream hook lifecycle events (PreToolUse/PostToolUse) as `system` events |
|
|
45
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 |
|
|
46
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. |
|
|
47
49
|
| `excludeDynamicSystemPromptSections` | boolean | Move cwd/env/git context from system prompt to user message for better prompt cache hits; auto-enabled with `bare: true` |
|
|
48
50
|
| `enablePromptCaching1H` | boolean | Enable 1-hour prompt cache TTL (vs default 5-min); auto-enabled with `bare: true` |
|