car-runtime 0.52.1 → 0.54.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/docs/ASSISTANT.md CHANGED
@@ -422,6 +422,7 @@ emitter that builds it:
422
422
  "network": "none",
423
423
  "tier": "sandbox_edit",
424
424
  "root": "/work",
425
+ "mount": null,
425
426
  "fallback_notice": null
426
427
  },
427
428
  "elapsed_seconds": 12.4
package/docs/CLI.md CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  > **Generated file — do not hand-edit below the task map.** Produced by
4
4
  > `scripts/gen-cli-docs.sh` from `car --help` / `car help <command>` on car
5
- > 0.52.1 (2026-09-04). Every subcommand the installed binary reports is
5
+ > 0.54.0 (2026-09-15). Every subcommand the installed binary reports is
6
6
  > below; a new subcommand cannot ship without appearing here the next time
7
7
  > this script runs. To regenerate: `bash scripts/gen-cli-docs.sh`.
8
8
  >
9
- > 68 top-level commands, 101 nested subcommands
9
+ > 73 top-level commands, 117 nested subcommands
10
10
  > (one level deep) — counted from the live binary at generation time, not
11
11
  > typed by hand.
12
12
 
13
13
  ## Finding your way around
14
14
 
15
- `car` is one binary with 68 subcommands spanning several different jobs:
15
+ `car` is one binary with 73 subcommands spanning several different jobs:
16
16
  running the built-in agent, coding, local model management, OS integrations,
17
17
  and installing other people's agents on your machine. This map groups the
18
18
  commands people actually reach for; the full alphabetical reference with every
@@ -162,7 +162,7 @@ commands on a cadence via launchd / cron / schtasks).
162
162
 
163
163
  | Command | Description |
164
164
  |---|---|
165
- | [`car info`](#car-info) | Show runtime info |
165
+ | [`car info`](#car-info) | Show runtime and live machine state |
166
166
  | [`car capabilities`](#car-capabilities) | Print the deterministic CAR capability manifest |
167
167
  | [`car ui`](#car-ui) | Open the browser dashboard served by the daemon |
168
168
  | [`car verify`](#car-verify) | Statically verify a proposal |
@@ -171,9 +171,12 @@ commands on a cadence via launchd / cron / schtasks).
171
171
  | [`car replay`](#car-replay) | Replay an event journal and show reconstructed state |
172
172
  | [`car run-cancel`](#car-run-cancel) | Cancel one active CAR run and print its deterministic durable receipt |
173
173
  | [`car run-task`](#car-run-task) | Run a goal autonomously against stdio MCP tool servers, emitting a JSONL transcript. Headless entry point for external eval harnesses |
174
+ | [`car tools`](#car-tools) | Invoke CAR's built-in runtime tools directly, in-process and without a daemon |
174
175
  | [`car code-task`](#car-code-task) | Run a coder session headlessly and IN THIS PROCESS: derive or accept an outcome contract, work in a git worktree until the runtime's own re-run of that contract is green, then deliver the result as a pull request |
175
176
  | [`car coder-ab`](#car-coder-ab) | A/B-test CAR's coder against an external agent (Codex / Claude Code) over a corpus, and grow that corpus from git history — the productionized dogfooding loop (docs/proposals/coder-ab-dogfood.md) |
176
177
  | [`car keys`](#car-keys) | Store cloud-provider API keys in the OS keychain, so a native-app user never sets an environment variable (docs/proposals/native-secrets-no-env.md). The key is read env-first, keychain-fallback by the runtime |
178
+ | [`car heal`](#car-heal) | Inspect and operate the daemon's self-healing REPAIR loop: it reads a configured issue tracker, runs a coder session, gates the result on a multi-model panel, and opens a pull request. It never merges |
179
+ | [`car selfheal`](#car-selfheal) | Inspect and operate the daemon's deterministic self-healing detector |
177
180
  | [`car daemon`](#car-daemon) | Start the daemon server (delegates to car-server binary) |
178
181
  | [`car models`](#car-models) | Manage local inference models |
179
182
  | [`car setup`](#car-setup) | Set up the right model for this machine — detect hardware, recommend, and install. Run with no flags for an interactive walkthrough |
@@ -188,6 +191,7 @@ commands on a cadence via launchd / cron / schtasks).
188
191
  | [`car identity`](#car-identity) | Show or change the name your assistant answers to — in conversation, in the host apps, and as its voice wake word |
189
192
  | [`car init`](#car-init) | Initialize a .car/ project directory for team-shared configuration |
190
193
  | [`car doctor`](#car-doctor) | Diagnose (and optionally repair) a CAR install: corrupt model weights, unparseable `~/.car` state files, version skew, and leftover files from a previous install. Runs entirely against the local filesystem — no daemon required, so it works even when `car-server` won't start |
194
+ | [`car feedback`](#car-feedback) | Report a problem to Parslee. Captures a redacted diagnostic bundle (your description, the `car doctor` report, bounded log tails, and a version stamp) into the local outbox at `~/.car/feedback-outbox` — nothing is uploaded by this command; queued reports send when CAR can reach Parslee. Works with the daemon down, like `car doctor`. macOS-only in this release |
191
195
  | [`car update`](#car-update) | Update the locally-installed `car` CLI and its sibling `car-server` daemon to the latest release (or `--version <X.Y.Z>`), in place — regardless of how they were installed. Reconciles the drift that otherwise builds up when one channel updates and another doesn't (e.g. CarHost.app auto-updates its bundled daemon via Sparkle but leaves the `/usr/local/bin/car` CLI behind). The npm/PyPI `car-runtime` client packages are separate — this command never touches them; `car doctor` reports which of your agents have drifted, and prints the exact command per environment. Both remedies pin: `npm install car-runtime@<version>` (`npm update` CANNOT cross a 0.x minor — npm reads `^0.41.0` as `>=0.41.0 <0.42.0`, so it is a no-op) and `<venv>/bin/python -m pip install -U car-runtime==<version>` (a bare `-U` can be silently defeated by the consumer's own pin, and the wrong interpreter installs into an environment that does not hold the stale wheel) |
192
196
  | [`car purge`](#car-purge) | Remove this CAR install's own state under `~/.car` (config, logs, managed models, binaries) and reap any OS-level schedules CAR installed — for a clean slate before a reinstall. On macOS this also clears CarHost.app's user-level state and resets its privacy (TCC) permissions, so a reinstall really does re-run permission onboarding. NEVER touches the shared HuggingFace model cache (other tools use it); managed models are symlinks into it, so only the links are removed, not the multi-GB blobs. (To uninstall a single contributed agent instead, use `car uninstall <id>`.) |
193
197
  | [`car code`](#car-code) | Built-in coding agent: state an intent, confirm the verifiable outcome contract, and CAR delivers it in an isolated git worktree — natively or via an installed frontier CLI. Results land on a `car/coder/<id>` branch after your approval; your checkout is never touched |
@@ -228,6 +232,7 @@ commands on a cadence via launchd / cron / schtasks).
228
232
  | [`car uninstall`](#car-uninstall) | Uninstall a contributed agent (Parslee-ai/car#182 phase 4). Stops the running child if any, removes the manifest from `~/.car/agents/<id>/`, and reaps the legacy `agents.json` entry. Idempotent |
229
233
  | [`car schedule`](#car-schedule) | Schedule commands to run on a cadence (launchd / cron / schtasks) |
230
234
  | [`car registry`](#car-registry) | Registry tooling for the contributed-agents registry (Parslee-ai/car#182 phase 5): `digest` a manifest, or `validate` a registry directory (the CI gate run by Parslee-ai/car-agent-registry) |
235
+ | [`car fleet`](#car-fleet) | What every CAR instance you can reach can do — agents, capabilities and models across the fleet — and whether this machine takes coding subtasks farmed out by peers (`car fleet enroll`). Needs a running daemon |
231
236
  | [`car publish`](#car-publish) | Publish a contributed agent to the registry (Parslee-ai/car#182 phase 5). Reads a local agent's `manifest.toml`, signs it for `--audience public` (ed25519 key at `$CAR_PUBLISH_KEY_PATH`), stages it at the versioned `agents/<namespace>/<name>/<version>/` path, updates `index.json` + the README catalog, re-runs the EXACT `car registry validate` CI gate locally, and opens a PR against the registry repo. Aborts (no PR) on a missing signing key or a validation failure |
232
237
  | [`car help`](#car-help) | Print this message or the help of the given subcommand(s) |
233
238
 
@@ -240,11 +245,12 @@ Full `--help` output for every command, generated directly from the binary.
240
245
  ### car info
241
246
 
242
247
  ```text
243
- Show runtime info
248
+ Show runtime and live machine state
244
249
 
245
- Usage: car info
250
+ Usage: car info [OPTIONS]
246
251
 
247
252
  Options:
253
+ --json Emit machine-readable JSON
248
254
  -h, --help Print help
249
255
  ```
250
256
 
@@ -256,9 +262,11 @@ Print the deterministic CAR capability manifest
256
262
  Usage: car capabilities [OPTIONS]
257
263
 
258
264
  Options:
259
- --json Emit machine-readable JSON
260
- --md Emit generated Markdown (the default)
261
- -h, --help Print help
265
+ --json Emit machine-readable JSON
266
+ --md Emit generated Markdown (the default)
267
+ --role <ROLE> Print exactly the daemon method names assigned to this caller role [possible
268
+ values: agent, owner, operator, host]
269
+ -h, --help Print help
262
270
  ```
263
271
 
264
272
  ### car ui
@@ -372,6 +380,37 @@ Options:
372
380
  -h, --help Print help
373
381
  ```
374
382
 
383
+ ### car tools
384
+
385
+ ```text
386
+ Invoke CAR's built-in runtime tools directly, in-process and without a daemon
387
+
388
+ Usage: car tools <COMMAND>
389
+
390
+ Commands:
391
+ call Invoke one CAR built-in tool in this process; no daemon is contacted
392
+ help Print this message or the help of the given subcommand(s)
393
+
394
+ Options:
395
+ -h, --help Print help
396
+ ```
397
+
398
+ #### car tools call
399
+
400
+ ```text
401
+ Invoke one CAR built-in tool in this process; no daemon is contacted
402
+
403
+ Usage: car tools call [OPTIONS] <TOOL>
404
+
405
+ Arguments:
406
+ <TOOL> Built-in tool name (for example: calculate, read_file, or grep_files)
407
+
408
+ Options:
409
+ --params-file <PATH> Read the tool's JSON parameter object from this file
410
+ --params <JSON> Supply the tool's JSON parameter object inline
411
+ -h, --help Print help
412
+ ```
413
+
375
414
  ### car code-task
376
415
 
377
416
  ```text
@@ -403,6 +442,9 @@ Options:
403
442
  --pr-base <PR_BASE>
404
443
  PR base branch. Defaults to the repo's default branch
405
444
 
445
+ --body-prefix <BODY_PREFIX>
446
+ Trusted caller-supplied text placed at the start of the pull-request body
447
+
406
448
  --draft
407
449
  Open the pull request as a draft
408
450
 
@@ -420,6 +462,10 @@ Options:
420
462
  --max-iterations <MAX_ITERATIONS>
421
463
  Override the coder config's iteration ceiling (default 8)
422
464
 
465
+ --browser
466
+ Expose the assistant's browser tools for this run. Off by default; calls remain
467
+ policy-gated and appear in the JSONL event stream
468
+
423
469
  --max-session-wall-secs <MAX_SESSION_WALL_SECS>
424
470
  Override the coder config's session wall clock (default 3600). 0 = unlimited
425
471
 
@@ -647,6 +693,153 @@ Options:
647
693
  -h, --help Print help
648
694
  ```
649
695
 
696
+ ### car heal
697
+
698
+ ```text
699
+ Inspect and operate the daemon's self-healing REPAIR loop: it reads a configured issue tracker, runs
700
+ a coder session, gates the result on a multi-model panel, and opens a pull request. It never merges.
701
+
702
+ Configured in `<CAR_HOME>/heal.toml`; off by default, and an issue must carry an explicit opt-in
703
+ label. See `car selfheal` for the separate watch-only detector, which never writes.
704
+
705
+ Usage: car heal <COMMAND>
706
+
707
+ Commands:
708
+ status Show whether the loop is enabled — and if not, why — plus its targets, review panel, and
709
+ engine
710
+ run Run one sweep now instead of waiting for the cadence
711
+ help Print this message or the help of the given subcommand(s)
712
+
713
+ Options:
714
+ -h, --help
715
+ Print help (see a summary with '-h')
716
+ ```
717
+
718
+ #### car heal status
719
+
720
+ ```text
721
+ Show whether the loop is enabled — and if not, why — plus its targets, review panel, and engine
722
+
723
+ Usage: car heal status
724
+
725
+ Options:
726
+ -h, --help Print help
727
+ ```
728
+
729
+ #### car heal run
730
+
731
+ ```text
732
+ Run one sweep now instead of waiting for the cadence.
733
+
734
+ At most one item per configured target. This can run a real coder session and open a real pull
735
+ request. It never merges.
736
+
737
+ Usage: car heal run
738
+
739
+ Options:
740
+ -h, --help
741
+ Print help (see a summary with '-h')
742
+ ```
743
+
744
+ ### car selfheal
745
+
746
+ ```text
747
+ Inspect and operate the daemon's deterministic self-healing detector
748
+
749
+ Usage: car selfheal <COMMAND>
750
+
751
+ Commands:
752
+ status Show cadence, active counts, and the route resolved by the last tick
753
+ list List active detections, optionally filtered by kind, severity, or time
754
+ show Print the trusted local issue document for one detection
755
+ dismiss Dismiss one active detection by dedup key
756
+ fix Start one bounded coder round for an eligible recurring-tool key
757
+ run Run one deterministic detection tick and its auto-fix cadence hook now
758
+ help Print this message or the help of the given subcommand(s)
759
+
760
+ Options:
761
+ -h, --help Print help
762
+ ```
763
+
764
+ #### car selfheal status
765
+
766
+ ```text
767
+ Show cadence, active counts, and the route resolved by the last tick
768
+
769
+ Usage: car selfheal status
770
+
771
+ Options:
772
+ -h, --help Print help
773
+ ```
774
+
775
+ #### car selfheal list
776
+
777
+ ```text
778
+ List active detections, optionally filtered by kind, severity, or time
779
+
780
+ Usage: car selfheal list [OPTIONS]
781
+
782
+ Options:
783
+ --kind <KIND> Detection kind (metrics_alert, agent_gave_up, agent_log_error,
784
+ agent_silently_idle, recurring_tool_failure, capability_miss)
785
+ --severity <SEVERITY> Severity (warning or critical)
786
+ --since <SINCE> Only detections observed at or after this RFC3339 timestamp
787
+ -h, --help Print help
788
+ ```
789
+
790
+ #### car selfheal show
791
+
792
+ ```text
793
+ Print the trusted local issue document for one detection
794
+
795
+ Usage: car selfheal show <DEDUP_KEY>
796
+
797
+ Arguments:
798
+ <DEDUP_KEY> Detection SHA-256 dedup key
799
+
800
+ Options:
801
+ -h, --help Print help
802
+ ```
803
+
804
+ #### car selfheal dismiss
805
+
806
+ ```text
807
+ Dismiss one active detection by dedup key
808
+
809
+ Usage: car selfheal dismiss <DEDUP_KEY>
810
+
811
+ Arguments:
812
+ <DEDUP_KEY> Detection SHA-256 dedup key
813
+
814
+ Options:
815
+ -h, --help Print help
816
+ ```
817
+
818
+ #### car selfheal fix
819
+
820
+ ```text
821
+ Start one bounded coder round for an eligible recurring-tool key
822
+
823
+ Usage: car selfheal fix <DEDUP_KEY>
824
+
825
+ Arguments:
826
+ <DEDUP_KEY> Detection SHA-256 dedup key
827
+
828
+ Options:
829
+ -h, --help Print help
830
+ ```
831
+
832
+ #### car selfheal run
833
+
834
+ ```text
835
+ Run one deterministic detection tick and its auto-fix cadence hook now
836
+
837
+ Usage: car selfheal run
838
+
839
+ Options:
840
+ -h, --help Print help
841
+ ```
842
+
650
843
  ### car daemon
651
844
 
652
845
  ```text
@@ -703,6 +896,8 @@ Options:
703
896
  -c, --capability <CAPABILITY> Filter by capability (generate, embed, code, reasoning, etc.)
704
897
  --provider <PROVIDER> Filter by provider (e.g., openai, qwen, google, vllm-mlx)
705
898
  --local-only Only show local models
899
+ --all Show every row, including models that do not fit this machine and
900
+ deprecated ones (hidden by default), with a FIT column explaining why
706
901
  -h, --help Print help
707
902
  ```
708
903
 
@@ -1307,6 +1502,25 @@ Options:
1307
1502
  -h, --help Print help
1308
1503
  ```
1309
1504
 
1505
+ ### car feedback
1506
+
1507
+ ```text
1508
+ Report a problem to Parslee. Captures a redacted diagnostic bundle (your description, the `car
1509
+ doctor` report, bounded log tails, and a version stamp) into the local outbox at
1510
+ `~/.car/feedback-outbox` — nothing is uploaded by this command; queued reports send when CAR can
1511
+ reach Parslee. Works with the daemon down, like `car doctor`. macOS-only in this release
1512
+
1513
+ Usage: car feedback [OPTIONS]
1514
+
1515
+ Options:
1516
+ --description <DESCRIPTION> What went wrong (10–5000 characters). Prompts when omitted
1517
+ --list List your saved reports and their status in plain language
1518
+ --show <ID> Print exactly what a saved report will send (its redacted bundle)
1519
+ --export <ID|latest> <PATH> Save a report's redacted bundle to a file: `--export <ID|latest>
1520
+ <PATH>`
1521
+ -h, --help Print help
1522
+ ```
1523
+
1310
1524
  ### car update
1311
1525
 
1312
1526
  ```text
@@ -1364,26 +1578,49 @@ in an isolated git worktree — natively or via an installed frontier CLI. Resul
1364
1578
  Usage: car code [OPTIONS] [INTENT]...
1365
1579
 
1366
1580
  Arguments:
1367
- [INTENT]... What to build or fix, in plain English
1581
+ [INTENT]...
1582
+ What to build or fix, in plain English
1368
1583
 
1369
1584
  Options:
1370
1585
  --repo <REPO>
1371
1586
  Repository to work on. Relative paths (`.`, `../sibling`) resolve against your current
1372
1587
  directory (default: `.`)
1588
+
1373
1589
  --engine <ENGINE>
1374
- Engine: auto | native | external[:agent_id] | foreman[:agent_id]. Foreman farms subtasks
1375
- to the external CLI in parallel worktrees behind a merge-verify gate; auto prefers it for
1376
- broad tasks
1590
+ Engine: `auto` | `native` | `external[:agent_id]` | `foreman[:agent_id]`. Foreman farms
1591
+ subtasks to the external CLI in parallel worktrees behind a merge-verify gate; auto
1592
+ prefers it for broad tasks
1593
+
1594
+ --distributed
1595
+ Spread a foreman run's subtasks across reachable CAR instances instead of this machine
1596
+ alone.
1597
+
1598
+ **Spends agent quota — on other machines too.** The merge-verify gate and delivery stay
1599
+ here: a peer returns a patch, this host gates it, so the run still ends in a pull request
1600
+ you approve. Requires `--engine foreman[:agent_id]`; any other engine runs locally and
1601
+ says so. See `car fleet peers` for who is reachable.
1602
+
1603
+ --worker <WORKERS>
1604
+ Restrict a distributed run to these instances. Repeatable; default is every instance that
1605
+ can serve this repository
1606
+
1377
1607
  -y, --yes
1378
1608
  Skip the interactive contract and merge prompts
1609
+
1379
1610
  --max-iterations <MAX_ITERATIONS>
1380
1611
  Max plan→edit→verify iterations before giving up
1612
+
1381
1613
  --model <MODEL>
1382
1614
  Pin the native loop's inference model for this session (e.g. `parslee/reasoning` for
1383
1615
  gpt-5.5), overriding `~/.car/coder.toml`. Blank/omitted keeps the config default, then
1384
1616
  adaptive routing
1617
+
1618
+ --browser
1619
+ Expose the assistant's browser tools to this coder session. Off by default; calls remain
1620
+ policy-gated and recorded in coder events
1621
+
1385
1622
  -h, --help
1386
- Print help
1623
+ Print help (see a summary with '-h')
1387
1624
  ```
1388
1625
 
1389
1626
  ### car board
@@ -1641,6 +1878,7 @@ Commands:
1641
1878
  in-daemon
1642
1879
  run Run a registered agent on an input
1643
1880
  list List registered in-daemon agents
1881
+ where Show where a declarative or supervised agent's files live
1644
1882
  external Show installed external agentic CLIs (Claude Code, Codex, Gemini): which binary each
1645
1883
  resolved to, and whether it can actually run
1646
1884
  help Print this message or the help of the given subcommand(s)
@@ -1652,16 +1890,29 @@ Options:
1652
1890
  #### car agent new
1653
1891
 
1654
1892
  ```text
1655
- Describe an agent in plain language; CAR builds, verifies, and registers it to run in-daemon
1893
+ Describe an agent in plain language; CAR builds, verifies, and registers it to run in-daemon.
1894
+
1895
+ CAR uses the complete description to generate the agent's identity, standing goal, and scenarios.
1896
+ Long descriptions get a bounded project directory name without truncating that build input.
1897
+
1898
+ The project's agent.json is committed build output. After approval, the daemon runs the separately
1899
+ registered copy in declagents.json; editing agent.json alone does not update the active agent.
1656
1900
 
1657
1901
  Usage: car agent new [OPTIONS] [DESCRIPTION]...
1658
1902
 
1659
1903
  Arguments:
1660
- [DESCRIPTION]... What the agent should do
1904
+ [DESCRIPTION]...
1905
+ What the agent should do
1661
1906
 
1662
1907
  Options:
1663
- -y, --yes Skip the interactive confirm/approve prompts
1664
- -h, --help Print help
1908
+ -y, --yes
1909
+ Skip the interactive confirm/approve prompts
1910
+
1911
+ --json
1912
+ Emit one JSON object; requires --yes so prompts do not share stdout
1913
+
1914
+ -h, --help
1915
+ Print help (see a summary with '-h')
1665
1916
  ```
1666
1917
 
1667
1918
  #### car agent run
@@ -1690,6 +1941,21 @@ Options:
1690
1941
  -h, --help Print help
1691
1942
  ```
1692
1943
 
1944
+ #### car agent where
1945
+
1946
+ ```text
1947
+ Show where a declarative or supervised agent's files live
1948
+
1949
+ Usage: car agent where [OPTIONS] <ID>
1950
+
1951
+ Arguments:
1952
+ <ID> The declarative or supervised agent id
1953
+
1954
+ Options:
1955
+ --json Emit a JSON object instead of labeled lines
1956
+ -h, --help Print help
1957
+ ```
1958
+
1693
1959
  #### car agent external
1694
1960
 
1695
1961
  ```text
@@ -1725,7 +1991,7 @@ Arguments:
1725
1991
 
1726
1992
  Options:
1727
1993
  -o, --output <OUTPUT>
1728
- Where to write the workflow JSON (default: ~/.car/workflows/<id>.json)
1994
+ Where to write the workflow JSON (default: `~/.car/workflows/<id>.json`)
1729
1995
 
1730
1996
  -u, --update <UPDATE>
1731
1997
  Update this existing workflow file instead of creating a new one
@@ -2522,6 +2788,7 @@ Usage: car messages <COMMAND>
2522
2788
  Commands:
2523
2789
  services List Messages.app services/accounts
2524
2790
  chats List recent Messages.app chats
2791
+ read Read Messages.app conversation rows, newest first
2525
2792
  send Send a message. JSON payload on stdin matching Messages SendRequest
2526
2793
  help Print this message or the help of the given subcommand(s)
2527
2794
 
@@ -2552,6 +2819,21 @@ Options:
2552
2819
  -h, --help Print help
2553
2820
  ```
2554
2821
 
2822
+ #### car messages read
2823
+
2824
+ ```text
2825
+ Read Messages.app conversation rows, newest first
2826
+
2827
+ Usage: car messages read [OPTIONS]
2828
+
2829
+ Options:
2830
+ --chats <CHATS> Optional comma-separated chat GUIDs from `car messages chats`
2831
+ --since <SINCE> Only messages at or after this RFC3339 instant
2832
+ --limit <LIMIT> [default: 50]
2833
+ --include-body Include decoded message bodies inline (bounded per message)
2834
+ -h, --help Print help
2835
+ ```
2836
+
2555
2837
  #### car messages send
2556
2838
 
2557
2839
  ```text
@@ -3129,6 +3411,154 @@ Options:
3129
3411
  -h, --help Print help
3130
3412
  ```
3131
3413
 
3414
+ ### car fleet
3415
+
3416
+ ```text
3417
+ What every CAR instance you can reach can do — agents, capabilities and models across the fleet —
3418
+ and whether this machine takes coding subtasks farmed out by peers (`car fleet enroll`). Needs a
3419
+ running daemon
3420
+
3421
+ Usage: car fleet <COMMAND>
3422
+
3423
+ Commands:
3424
+ show Every agent, capability, and model across this daemon and every CAR instance it can
3425
+ reach
3426
+ worker Show whether this machine takes coding subtasks farmed out by peers
3427
+ enroll Enroll this machine as a fleet worker for the named repositories
3428
+ withdraw Stop taking work from peers. Keeps the repository list for next time
3429
+ run Run one coding goal across the fleet: decompose it, place the independent subtasks on
3430
+ the instances that have this repository, and gate the reassembly **here**
3431
+ help Print this message or the help of the given subcommand(s)
3432
+
3433
+ Options:
3434
+ -h, --help Print help
3435
+ ```
3436
+
3437
+ #### car fleet show
3438
+
3439
+ ```text
3440
+ Every agent, capability, and model across this daemon and every CAR instance it can reach
3441
+
3442
+ Usage: car fleet show [OPTIONS]
3443
+
3444
+ Options:
3445
+ --json Print the raw `FleetComposite` JSON instead of the summary
3446
+ --local Only this instance — skip the network entirely
3447
+ --timeout-ms <TIMEOUT_MS> Per-peer deadline in milliseconds (default 10000)
3448
+ -h, --help Print help
3449
+ ```
3450
+
3451
+ #### car fleet worker
3452
+
3453
+ ```text
3454
+ Show whether this machine takes coding subtasks farmed out by peers
3455
+
3456
+ Usage: car fleet worker
3457
+
3458
+ Options:
3459
+ -h, --help Print help
3460
+ ```
3461
+
3462
+ #### car fleet enroll
3463
+
3464
+ ```text
3465
+ Enroll this machine as a fleet worker for the named repositories.
3466
+
3467
+ A real grant: a trusted peer may then run a coding CLI against those checkouts. Peers are already
3468
+ limited to CAR daemons whose key this host trusts, every dispatch is audited in
3469
+ `~/.car/fleet-work.jsonl`, and a dispatch for any other repository is declined.
3470
+
3471
+ Usage: car fleet enroll [OPTIONS] --repo <REPOS>
3472
+
3473
+ Options:
3474
+ --repo <REPOS>
3475
+ Repository checkout to serve. Repeatable; replaces the current list
3476
+
3477
+ --max-parallel <MAX_PARALLEL>
3478
+ Subtasks peers may run here at once (default 2). Concurrency, not spend — see
3479
+ `--dispatches-per-hour` for the budget
3480
+
3481
+ --dispatches-per-hour <DISPATCHES_PER_HOUR>
3482
+ Subtasks ONE peer may start here per hour (default 60). A peer that dispatches serially
3483
+ never hits `--max-parallel` and can still drain this machine's coding-CLI quota; this is
3484
+ what stops that
3485
+
3486
+ --max-subtask-secs <MAX_SUBTASK_SECS>
3487
+ Longest a peer's subtask may occupy this machine (default 1800s). The sender proposes a
3488
+ timeout; this is the ceiling it is clamped to
3489
+
3490
+ --allow-tool <ALLOWED_TOOLS>
3491
+ Tools a peer's coding CLI may use here, intersected with whatever the dispatch asks for.
3492
+ Repeatable. Unset adds no restriction
3493
+
3494
+ --runner
3495
+ Enroll as a **runner**: a machine that is not a person's desk.
3496
+
3497
+ Instead of declining a base commit it does not hold, it fetches from its own remote and
3498
+ serves the subtask. That is what makes a pool useful — a runner tracking `origin` always
3499
+ has the commit, where a laptop on an unpushed branch declines every dispatch. Off for a
3500
+ laptop, where a peer should not cause a fetch in a repository someone is working in.
3501
+
3502
+ --fetch-remote <FETCH_REMOTE>
3503
+ Remote a runner fetches from. Defaults to `origin`
3504
+
3505
+ -h, --help
3506
+ Print help (see a summary with '-h')
3507
+ ```
3508
+
3509
+ #### car fleet withdraw
3510
+
3511
+ ```text
3512
+ Stop taking work from peers. Keeps the repository list for next time
3513
+
3514
+ Usage: car fleet withdraw
3515
+
3516
+ Options:
3517
+ -h, --help Print help
3518
+ ```
3519
+
3520
+ #### car fleet run
3521
+
3522
+ ```text
3523
+ Run one coding goal across the fleet: decompose it, place the independent subtasks on the instances
3524
+ that have this repository, and gate the reassembly **here**.
3525
+
3526
+ Peers edit their own worktrees and return patches; this machine applies them and runs the
3527
+ merge-verify gate, so a peer can never widen what gets accepted. This machine is always in the pool,
3528
+ so a run whose peers all decline still completes. **Spends agent quota — on other machines too.**
3529
+
3530
+ Usage: car fleet run [OPTIONS] <GOAL>
3531
+
3532
+ Arguments:
3533
+ <GOAL>
3534
+ What to build
3535
+
3536
+ Options:
3537
+ --repo <REPO>
3538
+ Repository to work in. Defaults to the daemon's working directory
3539
+
3540
+ --adapter <ADAPTER>
3541
+ Coding CLI to ask for (`claude-code`, `codex`, `gemini`)
3542
+
3543
+ --verify <VERIFY>
3544
+ Per-subtask regression check — "does this one change still build?". A goal-level test
3545
+ belongs on `--union-verify`, not here: a subtask implements only part of the goal, so a
3546
+ goal test would reject every one of them
3547
+
3548
+ --union-verify <UNION_VERIFY>
3549
+ Check the *integrated* result must pass. Falls back to `--verify`
3550
+
3551
+ --worker <WORKERS>
3552
+ Restrict placement to these instances. Repeatable; default is every instance that reports
3553
+ it can serve this repository
3554
+
3555
+ --json
3556
+ Print the raw run report JSON
3557
+
3558
+ -h, --help
3559
+ Print help (see a summary with '-h')
3560
+ ```
3561
+
3132
3562
  ### car publish
3133
3563
 
3134
3564
  ```text