car-runtime 0.51.0 → 0.52.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/CLI.md ADDED
@@ -0,0 +1,3051 @@
1
+ # CAR CLI reference
2
+
3
+ > **Generated file — do not hand-edit below the task map.** Produced by
4
+ > `scripts/gen-cli-docs.sh` from `car --help` / `car help <command>` on car
5
+ > 0.51.0 (2026-09-03). Every subcommand the installed binary reports is
6
+ > below; a new subcommand cannot ship without appearing here the next time
7
+ > this script runs. To regenerate: `bash scripts/gen-cli-docs.sh`.
8
+ >
9
+ > 66 top-level commands, 98 nested subcommands
10
+ > (one level deep) — counted from the live binary at generation time, not
11
+ > typed by hand.
12
+
13
+ ## Finding your way around
14
+
15
+ `car` is one binary with 66 subcommands spanning several different jobs:
16
+ running the built-in agent, coding, local model management, OS integrations,
17
+ and installing other people's agents on your machine. This map groups the
18
+ commands people actually reach for; the full alphabetical reference with every
19
+ flag follows below.
20
+
21
+ ### Run an agent
22
+
23
+ - [`car do`](#car-do) — the general-purpose CAR Assistant. No goal opens an
24
+ interactive REPL; with a goal it runs once and prints the result. Ships
25
+ wired with files, a real shell, web access, and durable memory; runs
26
+ sandbox-first (a hardened Docker container) unless you pass `--local`.
27
+ - [`car board`](#car-board) — fullscreen supervision board for coder
28
+ sessions: attach to a run's history, confirm its outcome contract, answer
29
+ its questions, approve its diff.
30
+ - [`car agent`](#car-agent) — build and run in-daemon agents from
31
+ plain-language descriptions; nothing extra to install.
32
+ - [`car build`](#car-build) — build a runnable workflow from a
33
+ natural-language goal.
34
+ - [`car run-task`](#car-run-task) — headless entry point for external eval
35
+ harnesses: run a goal autonomously against stdio MCP tool servers, emitting
36
+ a JSONL transcript.
37
+
38
+ ### Code
39
+
40
+ - [`car code`](#car-code) — built-in coding agent: state an intent, confirm
41
+ the verifiable outcome contract, and CAR delivers it in an isolated git
42
+ worktree (natively or via an installed frontier CLI). Results land on a
43
+ `car/coder/<id>` branch after your approval; your checkout is never
44
+ touched.
45
+ - [`car code-task`](#car-code-task) — run a coder session headlessly and in
46
+ this process, driving to a green outcome contract and delivering a PR.
47
+ - [`car coder-ab`](#car-coder-ab) — A/B-test CAR's coder against an external
48
+ agent (Codex / Claude Code) over a corpus, and grow that corpus from git
49
+ history.
50
+
51
+ ### Models and media
52
+
53
+ - [`car setup`](#car-setup) — detect hardware, recommend, and install the
54
+ right model for this machine. Interactive walkthrough with no flags.
55
+ - [`car models`](#car-models) — manage local inference models: list, pull,
56
+ remove, benchmark, route, and more (see the subcommand table below).
57
+ - [`car infer`](#car-infer) — run text generation with a local model.
58
+ - [`car image`](#car-image) / [`car video`](#car-video) — generate an
59
+ image or video with a local MLX model.
60
+ - [`car speech`](#car-speech) — manage the CAR speech runtime, health
61
+ checks, and smoke tests.
62
+ - [`car embed`](#car-embed) — generate embeddings for text.
63
+ - [`car reason`](#car-reason) — reason about code: diagnose, suggest fixes,
64
+ explain.
65
+
66
+ ### Memory and skills
67
+
68
+ - [`car skills`](#car-skills) — manage learned skills (SkillRL-inspired).
69
+ - [`car dream`](#car-dream) — run memory consolidation ("dream") — prune,
70
+ GC, embed, evolve.
71
+ - [`car eval`](#car-eval) — evaluate agent improvement from stored
72
+ trajectories.
73
+
74
+ ### Auth and accounts
75
+
76
+ - [`car auth`](#car-auth) — Parslee account authentication for CAR
77
+ cloud-backed features (`login`, `status`, `logout`, `orgs`,
78
+ `switch-org`, `accounts`, `switch-account`).
79
+ - [`car parslee`](#car-parslee) — Parslee platform capabilities for the
80
+ signed-in account (requires `car auth login`).
81
+ - [`car keys`](#car-keys) — store cloud-provider API keys in the OS
82
+ keychain, so a native-app user never sets an environment variable.
83
+ - [`car secrets`](#car-secrets) — OS-native secret store (Keychain /
84
+ Credential Manager / Secret Service); aliased `secret`.
85
+ - [`car keychain`](#car-keychain) — OS keychain integration.
86
+ - [`car identity`](#car-identity) — show or change the name your assistant
87
+ answers to, in conversation, in the host apps, and as its voice wake word.
88
+
89
+ ### Install and supervise contributed agents
90
+
91
+ - [`car install`](#car-install) — install a contributed agent, from a local
92
+ directory or a registry reference.
93
+ - [`car ls`](#car-ls) — list every installed contributed agent (long alias
94
+ `agents`).
95
+ - [`car inspect`](#car-inspect) — inspect a single installed agent: on-disk
96
+ manifest plus the supervisor's current status.
97
+ - [`car start`](#car-start) / [`car stop`](#car-stop) /
98
+ [`car restart`](#car-restart) — control a supervised, installed agent.
99
+ - [`car tail-log`](#car-tail-log) — tail an installed agent's captured
100
+ stdout/stderr (long alias `logs`).
101
+ - [`car uninstall`](#car-uninstall) — uninstall a contributed agent
102
+ (idempotent).
103
+ - [`car registry`](#car-registry) — registry tooling: `digest` a manifest,
104
+ `validate` a registry directory, or print the canonical `schema`.
105
+ - [`car publish`](#car-publish) — publish a contributed agent to the
106
+ registry (signs, stages, opens a PR).
107
+
108
+ ### OS integrations
109
+
110
+ `car` reaches into the OS for accounts, calendar, contacts, mail, messages,
111
+ notes, reminders, photos, bookmarks, files, wearable health data, and browser
112
+ bookmarks, plus the permission preflight that gates them and voiceprint
113
+ enrollment. Most of these are cross-platform (TCC on macOS, WAM/Credential
114
+ Manager on Windows, GOA/xdg-desktop-portal on Linux, per the command's own
115
+ `--help`); `car notes`, `car reminders`, and `car photos` are macOS-only —
116
+ each says so in its own description below:
117
+ [`car accounts`](#car-accounts), [`car cal`](#car-cal),
118
+ [`car contacts`](#car-contacts), [`car mail`](#car-mail),
119
+ [`car messages`](#car-messages), [`car notes`](#car-notes),
120
+ [`car reminders`](#car-reminders), [`car photos`](#car-photos),
121
+ [`car bookmarks`](#car-bookmarks), [`car files`](#car-files),
122
+ [`car health`](#car-health), [`car permissions`](#car-permissions),
123
+ [`car voice`](#car-voice).
124
+
125
+ ### Diagnose an install
126
+
127
+ - [`car doctor`](#car-doctor) — diagnose (and optionally repair) a CAR
128
+ install: corrupt model weights, unparseable `~/.car` state files, version
129
+ skew, leftover files from a previous install. Runs against the local
130
+ filesystem only — no daemon required.
131
+ - [`car update`](#car-update) — update the locally-installed `car` CLI and
132
+ its sibling `car-server` daemon to the latest release (or a pinned
133
+ version), in place, reconciling drift between update channels.
134
+ - [`car purge`](#car-purge) — remove this install's own state under
135
+ `~/.car` and reap OS-level schedules CAR installed, for a clean slate
136
+ before reinstalling.
137
+ - [`car onboard`](#car-onboard) — onboarding readiness: what's set up and
138
+ what's still pending (headless equivalent of the CarHost setup wizard).
139
+ - [`car approvals`](#car-approvals) — the default posture for what agents
140
+ may do without asking (CLI counterpart to CarHost's Approvals settings).
141
+ - [`car info`](#car-info) — show runtime info.
142
+
143
+ ### Runtime internals
144
+
145
+ Lower-level commands mostly useful when embedding CAR or debugging the
146
+ runtime itself: [`car daemon`](#car-daemon) (start the daemon server),
147
+ [`car verify`](#car-verify) / [`car simulate`](#car-simulate) /
148
+ [`car optimize`](#car-optimize) (static proposal verification — see
149
+ [SPEC.md](./SPEC.md)), [`car replay`](#car-replay) (replay an event journal
150
+ and show reconstructed state), [`car policy-check-hook`](#car-policy-check-hook)
151
+ (evaluate a host's proposed tool call against `.car/policies/` for that
152
+ host's hook decision envelope), [`car ui`](#car-ui) (open the browser
153
+ dashboard served by the daemon), [`car project`](#car-project) (manage
154
+ CAR-managed, git-backed workspaces), [`car init`](#car-init) (initialize a
155
+ `.car/` project directory), [`car browse`](#car-browse) (browser
156
+ automation through the runtime), [`car schedule`](#car-schedule) (schedule
157
+ commands on a cadence via launchd / cron / schtasks).
158
+
159
+ ---
160
+
161
+ ## All commands
162
+
163
+ | Command | Description |
164
+ |---|---|
165
+ | [`car info`](#car-info) | Show runtime info |
166
+ | [`car ui`](#car-ui) | Open the browser dashboard served by the daemon |
167
+ | [`car verify`](#car-verify) | Statically verify a proposal |
168
+ | [`car simulate`](#car-simulate) | Simulate a proposal's state effects without executing |
169
+ | [`car optimize`](#car-optimize) | Optimize a proposal (remove phantom dependencies) |
170
+ | [`car replay`](#car-replay) | Replay an event journal and show reconstructed state |
171
+ | [`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 |
172
+ | [`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 |
173
+ | [`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) |
174
+ | [`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 |
175
+ | [`car daemon`](#car-daemon) | Start the daemon server (delegates to car-server binary) |
176
+ | [`car models`](#car-models) | Manage local inference models |
177
+ | [`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 |
178
+ | [`car speech`](#car-speech) | Manage CAR speech runtime, health checks, and smoke tests |
179
+ | [`car infer`](#car-infer) | Run text generation with a local model |
180
+ | [`car image`](#car-image) | Generate an image with a local MLX model |
181
+ | [`car video`](#car-video) | Generate a video with a local MLX model |
182
+ | [`car embed`](#car-embed) | Generate embeddings for text |
183
+ | [`car skills`](#car-skills) | Manage learned skills (SkillRL-inspired) |
184
+ | [`car reason`](#car-reason) | Reason about code: diagnose, suggest fixes, explain |
185
+ | [`car eval`](#car-eval) | Evaluate agent improvement from stored trajectories |
186
+ | [`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 |
187
+ | [`car init`](#car-init) | Initialize a .car/ project directory for team-shared configuration |
188
+ | [`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 |
189
+ | [`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) |
190
+ | [`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>`.) |
191
+ | [`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 |
192
+ | [`car board`](#car-board) | Fullscreen supervision board for coder sessions — one screen for every run on this host, whoever started it (`car code`, CarHost, milo, another board). Attach to a run's full history, confirm its outcome contract, answer its questions, approve its diff, or scope work in a repo-grounded discussion first. Closing the board never stops a run |
193
+ | [`car do`](#car-do) | CAR Assistant: a general-purpose agent that works out of the box |
194
+ | [`car policy-check-hook`](#car-policy-check-hook) | Evaluate a host's proposed tool call against `.car/policies/` and answer on stdout with that host's hook decision envelope |
195
+ | [`car project`](#car-project) | Manage CAR-managed projects (a named, git-backed workspace CAR creates for you — no repo to pick) |
196
+ | [`car parslee`](#car-parslee) | Parslee platform capabilities for the signed-in account (requires `car auth login`) |
197
+ | [`car agent`](#car-agent) | Build and run in-daemon agents from plain-language descriptions. An agent runs inside CAR — nothing to install |
198
+ | [`car build`](#car-build) | Build a runnable workflow from a natural-language goal |
199
+ | [`car dream`](#car-dream) | Run memory consolidation ("dream") — prune, GC, embed, evolve |
200
+ | [`car browse`](#car-browse) | Browser automation — drive Chromium through the CAR runtime |
201
+ | [`car secrets`](#car-secrets) | OS-native secret store — Keychain / Credential Manager / Secret Service. Aliased as `secret` (singular) for backward compatibility |
202
+ | [`car auth`](#car-auth) | Parslee account authentication for CAR cloud-backed features |
203
+ | [`car permissions`](#car-permissions) | OS permission preflight — TCC / Windows Privacy / xdg-desktop-portal |
204
+ | [`car voice`](#car-voice) | Voiceprint enrollment — teach CAR your voice so it knows who's speaking (the owner drives commands; other voices are context). Proxies the daemon's `voice.*` surface |
205
+ | [`car onboard`](#car-onboard) | Onboarding readiness — what's set up and what's still pending (the headless equivalent of the CarHost setup wizard) |
206
+ | [`car approvals`](#car-approvals) | Agent approval policy — the default posture for what agents may do without asking. Proxies the daemon's `agent_permissions.*` surface (the CLI counterpart to the CarHost "Approvals" settings / onboarding step) |
207
+ | [`car accounts`](#car-accounts) | OS-native account discovery — Internet Accounts / WAM / GOA |
208
+ | [`car cal`](#car-cal) | OS-native Calendar integration |
209
+ | [`car contacts`](#car-contacts) | OS-native Contacts integration |
210
+ | [`car mail`](#car-mail) | OS-native Mail integration |
211
+ | [`car messages`](#car-messages) | OS-native Messages integration |
212
+ | [`car notes`](#car-notes) | macOS Notes integration |
213
+ | [`car reminders`](#car-reminders) | macOS Reminders integration |
214
+ | [`car photos`](#car-photos) | macOS Photos integration |
215
+ | [`car bookmarks`](#car-bookmarks) | Browser bookmark integration |
216
+ | [`car files`](#car-files) | Account-backed file locations |
217
+ | [`car keychain`](#car-keychain) | OS keychain integration |
218
+ | [`car health`](#car-health) | Wearable / activity data (HealthKit + Fitbit/Garmin/Oura/etc.) |
219
+ | [`car install`](#car-install) | Install a contributed agent — from a local directory OR a registry reference (Parslee-ai/car#182 phases 4 + 5) |
220
+ | [`car ls`](#car-ls) | List every installed contributed agent (Parslee-ai/car#182 phase 4). Calls the daemon's `agents.list` and renders the result. Long alias: `agents` |
221
+ | [`car inspect`](#car-inspect) | Inspect a single installed agent (Parslee-ai/car#182 phase 4). Shows the on-disk manifest plus the supervisor's current status. Resolves unqualified names to the highest installed semver per the contributed-agents proposal |
222
+ | [`car start`](#car-start) | Start an installed contributed agent |
223
+ | [`car stop`](#car-stop) | Stop an installed contributed agent |
224
+ | [`car restart`](#car-restart) | Restart an installed contributed agent |
225
+ | [`car tail-log`](#car-tail-log) | Tail the most recent stdout/stderr lines captured from a supervised agent (Parslee-ai/car#231 §5.2). Calls the daemon's `agents.tail_log`. Closes the DX gap where the daemon captured logs to `~/.car/logs/` (`%USERPROFILE%\.car\logs\` on Windows) but offered no CLI surface to read them. Long alias: `logs` |
226
+ | [`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 |
227
+ | [`car schedule`](#car-schedule) | Schedule commands to run on a cadence (launchd / cron / schtasks) |
228
+ | [`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) |
229
+ | [`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 |
230
+ | [`car help`](#car-help) | Print this message or the help of the given subcommand(s) |
231
+
232
+ ---
233
+
234
+ ## Command reference
235
+
236
+ Full `--help` output for every command, generated directly from the binary.
237
+
238
+ ### car info
239
+
240
+ ```text
241
+ Show runtime info
242
+
243
+ Usage: car info
244
+
245
+ Options:
246
+ -h, --help Print help
247
+ ```
248
+
249
+ ### car ui
250
+
251
+ ```text
252
+ Open the browser dashboard served by the daemon
253
+
254
+ Usage: car ui [OPTIONS]
255
+
256
+ Options:
257
+ -p, --port <PORT> Daemon WS port; the dashboard is served on this + 1 [default: 9100]
258
+ -h, --help Print help
259
+ ```
260
+
261
+ ### car verify
262
+
263
+ ```text
264
+ Statically verify a proposal
265
+
266
+ Usage: car verify [OPTIONS] <PROPOSAL>
267
+
268
+ Arguments:
269
+ <PROPOSAL> Path to proposal JSON file
270
+
271
+ Options:
272
+ --state <STATE> Path to initial state JSON file
273
+ --tools <TOOLS> Comma-separated tool names
274
+ -h, --help Print help
275
+ ```
276
+
277
+ ### car simulate
278
+
279
+ ```text
280
+ Simulate a proposal's state effects without executing
281
+
282
+ Usage: car simulate [OPTIONS] <PROPOSAL>
283
+
284
+ Arguments:
285
+ <PROPOSAL> Path to proposal JSON file
286
+
287
+ Options:
288
+ --state <STATE> Path to initial state JSON file
289
+ -h, --help Print help
290
+ ```
291
+
292
+ ### car optimize
293
+
294
+ ```text
295
+ Optimize a proposal (remove phantom dependencies)
296
+
297
+ Usage: car optimize <PROPOSAL>
298
+
299
+ Arguments:
300
+ <PROPOSAL> Path to proposal JSON file
301
+
302
+ Options:
303
+ -h, --help Print help
304
+ ```
305
+
306
+ ### car replay
307
+
308
+ ```text
309
+ Replay an event journal and show reconstructed state
310
+
311
+ Usage: car replay <JOURNAL>
312
+
313
+ Arguments:
314
+ <JOURNAL> Path to JSONL journal file
315
+
316
+ Options:
317
+ -h, --help Print help
318
+ ```
319
+
320
+ ### car run-task
321
+
322
+ ```text
323
+ Run a goal autonomously against stdio MCP tool servers, emitting a JSONL transcript. Headless entry
324
+ point for external eval harnesses
325
+
326
+ Usage: car run-task [OPTIONS] --goal-file <GOAL_FILE> --mcp-config <MCP_CONFIG> --transcript
327
+ <TRANSCRIPT> --model <MODEL>
328
+
329
+ Options:
330
+ --goal-file <GOAL_FILE> File whose contents are the task instruction
331
+ --mcp-config <MCP_CONFIG> JSON file listing the stdio MCP servers to expose as tools
332
+ --transcript <TRANSCRIPT> Where to write the JSONL transcript
333
+ --eventlog <EVENTLOG> Where to write the engine event journal (optional)
334
+ --max-turns <MAX_TURNS> Hard cap on agent loop turns [default: 100]
335
+ --model <MODEL> Inference model id (resolved by CAR's registry/router)
336
+ --resume Resume from a checkpoint next to the transcript if one exists
337
+ (survives a crash / SIGKILL / VM-host restart mid-run)
338
+ --gui-subagent Route GUI (mcp_cua_*) tools through a delegate_gui sub-agent
339
+ instead of exposing them to the main model (also via CAR_RUNTASK_GUI_SUBAGENT=1)
340
+ -h, --help Print help
341
+ ```
342
+
343
+ ### car code-task
344
+
345
+ ```text
346
+ Run a coder session headlessly and IN THIS PROCESS: derive or accept an outcome contract, work in a
347
+ git worktree until the runtime's own re-run of that contract is green, then deliver the result as a
348
+ pull request.
349
+
350
+ No daemon is contacted and none needs to be running — this drives `car_server_core::coder` as a
351
+ library. `car code` is the interactive twin, and it does go through the daemon.
352
+
353
+ Usage: car code-task [OPTIONS] --repo <REPO>
354
+
355
+ Options:
356
+ --repo <REPO>
357
+ Repository to work in (must be a git repo)
358
+
359
+ --intent-file <INTENT_FILE>
360
+ File whose contents are the intent. Exactly one of --intent-file/--intent
361
+
362
+ --intent <INTENT>
363
+ Inline intent. Exactly one of --intent-file/--intent
364
+
365
+ --contract-file <CONTRACT_FILE>
366
+ JSON `OutcomeContract`. When present, contract derivation does not run
367
+
368
+ --target-branch <TARGET_BRANCH>
369
+ Stable delivery branch. Required for `--deliver pr`
370
+
371
+ --pr-base <PR_BASE>
372
+ PR base branch. Defaults to the repo's default branch
373
+
374
+ --draft
375
+ Open the pull request as a draft
376
+
377
+ --deliver <DELIVER>
378
+ pr | branch | none. Defaults to `pr` when --target-branch is given, else `branch`
379
+
380
+ Possible values:
381
+ - pr: Push the delivery branch and reconcile exactly one pull request for it
382
+ - branch: Create a local `car/coder/<id>` branch in the repo and stop there
383
+ - none: Verify only. Nothing leaves the worktree
384
+
385
+ --model <MODEL>
386
+ Pin the inference model for this session
387
+
388
+ --max-iterations <MAX_ITERATIONS>
389
+ Override the coder config's iteration ceiling (default 8)
390
+
391
+ --max-session-wall-secs <MAX_SESSION_WALL_SECS>
392
+ Override the coder config's session wall clock (default 3600). 0 = unlimited
393
+
394
+ --max-check-timeout-secs <MAX_CHECK_TIMEOUT_SECS>
395
+ Ceiling for ONE contract check's command (default 600). Raise it for a verification gate
396
+ that legitimately runs longer than ten minutes; the model's own `shell` tool keeps the
397
+ 600s ceiling regardless
398
+
399
+ --workspace-dir <WORKSPACE_DIR>
400
+ Explicit workspace location. Reused when it is already a valid worktree
401
+
402
+ --keep-workspace
403
+ Keep the workspace on any non-zero exit (and on a green `--deliver none` run, where the
404
+ worktree is the only copy), for the next round to reuse
405
+
406
+ --transcript <TRANSCRIPT>
407
+ Also mirror the JSONL event stream to this file
408
+
409
+ --json
410
+ Emit the JSONL event stream on stdout, one compact object per line
411
+
412
+ -h, --help
413
+ Print help (see a summary with '-h')
414
+ ```
415
+
416
+ ### car coder-ab
417
+
418
+ ```text
419
+ A/B-test CAR's coder against an external agent (Codex / Claude Code) over a corpus, and grow that
420
+ corpus from git history — the productionized dogfooding loop (docs/proposals/coder-ab-dogfood.md)
421
+
422
+ Usage: car coder-ab <COMMAND>
423
+
424
+ Commands:
425
+ run Run the paired A/B over a corpus manifest, verify each arm against the task's own
426
+ contract, and write a JSON report. Exits non-zero when CAR is significantly *behind* the external
427
+ arm (McNemar), so it doubles as a CI regression gate. Needs a running daemon (`car code` routes to
428
+ it)
429
+ extract Grow the corpus from a git repo's history: for each recent commit that fixes code AND
430
+ touches a test, materialize the pre-fix (failing) state as a task (parent's source + the commit's
431
+ test), keep only tasks whose test actually fails at that state, and append them to a corpus.
432
+ Best-effort candidate generation for human review
433
+ help Print this message or the help of the given subcommand(s)
434
+
435
+ Options:
436
+ -h, --help Print help
437
+ ```
438
+
439
+ #### car coder-ab run
440
+
441
+ ```text
442
+ Run the paired A/B over a corpus manifest, verify each arm against the task's own contract, and
443
+ write a JSON report. Exits non-zero when CAR is significantly *behind* the external arm (McNemar),
444
+ so it doubles as a CI regression gate. Needs a running daemon (`car code` routes to it)
445
+
446
+ Usage: car coder-ab run [OPTIONS] --corpus <CORPUS>
447
+
448
+ Options:
449
+ --corpus <CORPUS>
450
+ Corpus manifest (JSONL of tasks; see bench/coder-ab/README.md)
451
+ --external <EXTERNAL>
452
+ External comparison engine (codex | claude-code | gemini). Omit to run native-only
453
+ --model <MODEL>
454
+ Pin CAR's arm to a backbone, as a CAR model id (e.g. parslee/reasoning). Backbone choice
455
+ is ~3x the harness spread, so an unpinned run measures the model, not the runtime. NOT
456
+ forwarded to an external arm — a CAR id means nothing to another CLI; use --external-model
457
+ for that arm
458
+ --external-model <EXTERNAL_MODEL>
459
+ Pin the external arm's backbone, in THAT CLI's own id namespace (e.g. gpt-5.5 for `codex
460
+ -m`). Omit and the CLI uses its own configured default — the report then says UNPINNED,
461
+ since the backbone is unverified. For a fair same-backbone A/B pass both flags naming the
462
+ same model (--model parslee/reasoning --external-model gpt-5.5); to measure the cross-tier
463
+ diagonal name different tiers (--model openai/gpt-5.4 --external-model gpt-5.5). Differing
464
+ pins are reported as DIFFERENT PINS and are NOT a harness delta
465
+ --iters <ITERS>
466
+ Native arm's repair-iteration cap per task. Defaults to the coder's OWN shipping default,
467
+ so the A/B measures the coder users actually get — it used to hardcode 4, i.e. half of it.
468
+ Raise it when the cap binds: a weaker backbone needs more rounds, and a run whose losses
469
+ all end at `iteration N/N` is measuring this number, not the harness (at gpt-5.4, 4 → 45%
470
+ and 20 → 75%, every loss cap-bound at both). The external arm is not capped by this — it
471
+ gets its CLI's own turn budget (`max_turns: 50` per invocation), so setting this low is a
472
+ silent handicap [default: 8]
473
+ --out-dir <OUT_DIR>
474
+ Directory for the timestamped JSON report [default: bench/results/coder-ab]
475
+ --timeout-secs <TIMEOUT_SECS>
476
+ Per-task wall bound (seconds) for the NATIVE arm before it's infra. The native reasoning
477
+ loop can legitimately take many minutes [default: 900]
478
+ --external-timeout-secs <EXTERNAL_TIMEOUT_SECS>
479
+ Per-task wall bound (seconds) for the EXTERNAL arm (Codex/Claude Code). An external CLI
480
+ finishes fast or is stuck, so keep this well below `--timeout-secs` — a stuck external run
481
+ otherwise burns the native budget and drags the whole suite [default: 300]
482
+ --limit <LIMIT>
483
+ Run at most this many not-yet-scored tasks, then stop (the rest resume on the next run).
484
+ Omit to run all remaining. `--limit 1` runs one task so you can inspect it and fix what it
485
+ surfaces before continuing
486
+ --fresh
487
+ Ignore any existing checkpoint for this corpus and re-score from scratch
488
+ --report-issues
489
+ File each durable-fix proposal that clears the reporting bar as an issue on --report-repo,
490
+ skipping signatures already open there. Off by default: a measurement run must not open
491
+ issues on a shared tracker as a side effect
492
+ --report-repo <REPORT_REPO>
493
+ Where --report-issues files. The releases repo by default, not the source repo — filing a
494
+ defect report needs no source checkout [default: Parslee-ai/car-releases]
495
+ -h, --help
496
+ Print help
497
+ ```
498
+
499
+ #### car coder-ab extract
500
+
501
+ ```text
502
+ Grow the corpus from a git repo's history: for each recent commit that fixes code AND touches a
503
+ test, materialize the pre-fix (failing) state as a task (parent's source + the commit's test), keep
504
+ only tasks whose test actually fails at that state, and append them to a corpus. Best-effort
505
+ candidate generation for human review
506
+
507
+ Usage: car coder-ab extract [OPTIONS] --out <OUT>
508
+
509
+ Options:
510
+ --repo <REPO>
511
+ Repo to mine (default: current dir)
512
+
513
+ [default: .]
514
+
515
+ --out <OUT>
516
+ Corpus directory to write (`manifest.jsonl` + `tasks/<id>/`)
517
+
518
+ --test-cmd <TEST_CMD>
519
+ Command that verifies a task (the contract check), run in each task dir. `pytest -q`
520
+ rather than `python3 -m pytest -q`: `python3` does not exist on a standard Windows
521
+ python.org install, and `python` is often absent on macOS/Linux — pytest's console script
522
+ is the portable spelling
523
+
524
+ [default: "pytest -q"]
525
+
526
+ --path <PATH>
527
+ Only mine commits touching paths under this prefix
528
+
529
+ --max <MAX>
530
+ Limit to this many recent commits scanned
531
+
532
+ [default: 50]
533
+
534
+ --max-files <MAX_FILES>
535
+ Skip a commit whose changed-file count exceeds this (keep tasks small)
536
+
537
+ [default: 6]
538
+
539
+ --full-tree
540
+ Materialize the FULL pre-fix source tree into each task (not just the changed files), so a
541
+ package-structured repo's sibling imports resolve and the test fails on the real bug — not
542
+ a `ModuleNotFoundError`. Recommended for any repo whose modules import each other
543
+
544
+ --subject-filter <SUBJECT_FILTER>
545
+ Keep only commits whose subject contains this substring (e.g. `fix(`).
546
+
547
+ On a Rust repo this is close to required: a `feat` commit's test imports a symbol the
548
+ commit itself adds, so it cannot compile at the pre-fix parent. Such tasks are rejected
549
+ anyway, but only after a full tree materialize + build, which costs 30-200s each.
550
+
551
+ -h, --help
552
+ Print help (see a summary with '-h')
553
+ ```
554
+
555
+ ### car keys
556
+
557
+ ```text
558
+ Store cloud-provider API keys in the OS keychain, so a native-app user never sets an environment
559
+ variable (docs/proposals/native-secrets-no-env.md). The key is read env-first, keychain-fallback by
560
+ the runtime
561
+
562
+ Usage: car keys <COMMAND>
563
+
564
+ Commands:
565
+ set Store a provider key in the keychain. `<name>` is a provider
566
+ (openai/anthropic/gemini/elevenlabs/github/aws) or a raw env-var name. Omit `<value>` to read it
567
+ from stdin (keeps it out of shell history)
568
+ list Show which provider keys are configured (keychain or env); values hidden
569
+ remove Remove a stored provider key from the keychain
570
+ help Print this message or the help of the given subcommand(s)
571
+
572
+ Options:
573
+ -h, --help Print help
574
+ ```
575
+
576
+ #### car keys set
577
+
578
+ ```text
579
+ Store a provider key in the keychain. `<name>` is a provider
580
+ (openai/anthropic/gemini/elevenlabs/github/aws) or a raw env-var name. Omit `<value>` to read it
581
+ from stdin (keeps it out of shell history)
582
+
583
+ Usage: car keys set <NAME> [VALUE]
584
+
585
+ Arguments:
586
+ <NAME>
587
+ [VALUE]
588
+
589
+ Options:
590
+ -h, --help Print help
591
+ ```
592
+
593
+ #### car keys list
594
+
595
+ ```text
596
+ Show which provider keys are configured (keychain or env); values hidden
597
+
598
+ Usage: car keys list
599
+
600
+ Options:
601
+ -h, --help Print help
602
+ ```
603
+
604
+ #### car keys remove
605
+
606
+ ```text
607
+ Remove a stored provider key from the keychain
608
+
609
+ Usage: car keys remove <NAME>
610
+
611
+ Arguments:
612
+ <NAME>
613
+
614
+ Options:
615
+ -h, --help Print help
616
+ ```
617
+
618
+ ### car daemon
619
+
620
+ ```text
621
+ Start the daemon server (delegates to car-server binary)
622
+
623
+ Usage: car daemon [OPTIONS]
624
+
625
+ Options:
626
+ -p, --port <PORT> Port to listen on [default: 9100]
627
+ -h, --help Print help
628
+ ```
629
+
630
+ ### car models
631
+
632
+ ```text
633
+ Manage local inference models
634
+
635
+ Usage: car models <COMMAND>
636
+
637
+ Commands:
638
+ list List available models and download status
639
+ discover Discover models exposed by a running vLLM-MLX server
640
+ pull Download a model
641
+ resource-policy Inspect or update the local-model RAM policy
642
+ preflight Evaluate one local model without downloading or loading it
643
+ adopt Adopt an already-usable local artifact into CAR ownership
644
+ recommend Recommend the best model for this machine and what you want to do
645
+ remove Remove a downloaded model
646
+ upgrades Show installed models that have curated newer replacements
647
+ upgrade Upgrade installed models to curated newer replacements when CAR can do so
648
+ serve Start an external MLX runtime for a cataloged local-server model
649
+ add Add any HuggingFace model by repo id, deriving its schema automatically
650
+ register Register a custom model from a JSON schema file
651
+ unregister Unregister a model by ID
652
+ stats Show performance stats for models based on observed outcomes
653
+ benchmark Benchmark curated models and write benchmark priors for cold-start routing
654
+ doctor Report configured defaults, provider health, and modality coverage
655
+ smoke Run representative live model checks across text, code, tool, vision, and speech
656
+ route Route a prompt and show which model would be selected (dry run)
657
+ help Print this message or the help of the given subcommand(s)
658
+
659
+ Options:
660
+ -h, --help Print help
661
+ ```
662
+
663
+ #### car models list
664
+
665
+ ```text
666
+ List available models and download status
667
+
668
+ Usage: car models list [OPTIONS]
669
+
670
+ Options:
671
+ -c, --capability <CAPABILITY> Filter by capability (generate, embed, code, reasoning, etc.)
672
+ --provider <PROVIDER> Filter by provider (e.g., openai, qwen, google, vllm-mlx)
673
+ --local-only Only show local models
674
+ -h, --help Print help
675
+ ```
676
+
677
+ #### car models discover
678
+
679
+ ```text
680
+ Discover models exposed by a running vLLM-MLX server
681
+
682
+ Usage: car models discover [OPTIONS]
683
+
684
+ Options:
685
+ --json Output as JSON
686
+ -h, --help Print help
687
+ ```
688
+
689
+ #### car models pull
690
+
691
+ ```text
692
+ Download a model
693
+
694
+ Usage: car models pull <NAME>
695
+
696
+ Arguments:
697
+ <NAME> Model name (e.g., Qwen3-0.6B, Qwen3-1.7B)
698
+
699
+ Options:
700
+ -h, --help Print help
701
+ ```
702
+
703
+ #### car models resource-policy
704
+
705
+ ```text
706
+ Inspect or update the local-model RAM policy
707
+
708
+ Usage: car models resource-policy <COMMAND>
709
+
710
+ Commands:
711
+ get Show the saved policy and its evaluated machine budget
712
+ set Persist a policy. Custom values are exact MB in 512 MB increments
713
+ help Print this message or the help of the given subcommand(s)
714
+
715
+ Options:
716
+ -h, --help Print help
717
+ ```
718
+
719
+ #### car models preflight
720
+
721
+ ```text
722
+ Evaluate one local model without downloading or loading it
723
+
724
+ Usage: car models preflight [OPTIONS] <MODEL_ID>
725
+
726
+ Arguments:
727
+ <MODEL_ID>
728
+
729
+ Options:
730
+ --context-tokens <CONTEXT_TOKENS> [default: 0]
731
+ -h, --help Print help
732
+ ```
733
+
734
+ #### car models adopt
735
+
736
+ ```text
737
+ Adopt an already-usable local artifact into CAR ownership
738
+
739
+ Usage: car models adopt <MODEL_ID>
740
+
741
+ Arguments:
742
+ <MODEL_ID>
743
+
744
+ Options:
745
+ -h, --help Print help
746
+ ```
747
+
748
+ #### car models recommend
749
+
750
+ ```text
751
+ Recommend the best model for this machine and what you want to do
752
+
753
+ Usage: car models recommend [OPTIONS]
754
+
755
+ Options:
756
+ --for <USE_CASE> What you'll use it for: assistant, coding, search, vision, transcription,
757
+ summarize [default: assistant]
758
+ --tier <TIER> Speed/quality: fastest, balanced, most-capable [default: balanced]
759
+ --cloud-ok Allow cloud models to compete (default: on-device only)
760
+ -h, --help Print help
761
+ ```
762
+
763
+ #### car models remove
764
+
765
+ ```text
766
+ Remove a downloaded model
767
+
768
+ Usage: car models remove <NAME>
769
+
770
+ Arguments:
771
+ <NAME> Model name
772
+
773
+ Options:
774
+ -h, --help Print help
775
+ ```
776
+
777
+ #### car models upgrades
778
+
779
+ ```text
780
+ Show installed models that have curated newer replacements
781
+
782
+ Usage: car models upgrades [OPTIONS]
783
+
784
+ Options:
785
+ --json Output as JSON
786
+ -h, --help Print help
787
+ ```
788
+
789
+ #### car models upgrade
790
+
791
+ ```text
792
+ Upgrade installed models to curated newer replacements when CAR can do so
793
+
794
+ Usage: car models upgrade [OPTIONS]
795
+
796
+ Options:
797
+ --apply Actually perform supported downloads/removals. Without this, print a plan
798
+ --remove-old Remove the older local model after a replacement is available
799
+ --json Output as JSON
800
+ -h, --help Print help
801
+ ```
802
+
803
+ #### car models serve
804
+
805
+ ```text
806
+ Start an external MLX runtime for a cataloged local-server model
807
+
808
+ Usage: car models serve [OPTIONS] <MODEL>
809
+
810
+ Arguments:
811
+ <MODEL> Model id, short alias, or Hugging Face repo to serve
812
+
813
+ Options:
814
+ --port <PORT> Port for the OpenAI-compatible local server [default: 8000]
815
+ --dry-run Print the command without starting the server
816
+ --json Output as JSON
817
+ -h, --help Print help
818
+ ```
819
+
820
+ #### car models add
821
+
822
+ ```text
823
+ Add any HuggingFace model by repo id, deriving its schema automatically
824
+
825
+ Reads the repo's `config.json` and picks the right backend for you: architectures with an in-process
826
+ Rust MLX backend register as native, everything else routes to the supervised vLLM-MLX runtime. This
827
+ is the path that does NOT require a CAR release to adopt a new model.
828
+
829
+ Usage: car models add [OPTIONS] <REPO>
830
+
831
+ Arguments:
832
+ <REPO>
833
+ HuggingFace repo id, e.g. `mlx-community/Qwen3.8-27B-4bit`
834
+
835
+ Options:
836
+ --dry-run
837
+ Show the derived schema without registering it
838
+
839
+ --pull
840
+ Download the weights now instead of on first use
841
+
842
+ -h, --help
843
+ Print help (see a summary with '-h')
844
+ ```
845
+
846
+ #### car models register
847
+
848
+ ```text
849
+ Register a custom model from a JSON schema file
850
+
851
+ Usage: car models register <SCHEMA>
852
+
853
+ Arguments:
854
+ <SCHEMA> Path to model schema JSON file
855
+
856
+ Options:
857
+ -h, --help Print help
858
+ ```
859
+
860
+ #### car models unregister
861
+
862
+ ```text
863
+ Unregister a model by ID
864
+
865
+ Usage: car models unregister <ID>
866
+
867
+ Arguments:
868
+ <ID> Model ID (e.g., "anthropic/claude-sonnet-4-6:latest")
869
+
870
+ Options:
871
+ -h, --help Print help
872
+ ```
873
+
874
+ #### car models stats
875
+
876
+ ```text
877
+ Show performance stats for models based on observed outcomes
878
+
879
+ Usage: car models stats [ID]
880
+
881
+ Arguments:
882
+ [ID] Model ID (omit for all models)
883
+
884
+ Options:
885
+ -h, --help Print help
886
+ ```
887
+
888
+ #### car models benchmark
889
+
890
+ ```text
891
+ Benchmark curated models and write benchmark priors for cold-start routing
892
+
893
+ Usage: car models benchmark [OPTIONS]
894
+
895
+ Options:
896
+ --json Output as JSON
897
+ --models <MODELS> Optional comma-separated model names to benchmark
898
+ --cases <CASES> Optional comma-separated benchmark case ids
899
+ --judge-model <JUDGE_MODEL> Optional judge model override
900
+ -h, --help Print help
901
+ ```
902
+
903
+ #### car models doctor
904
+
905
+ ```text
906
+ Report configured defaults, provider health, and modality coverage
907
+
908
+ Usage: car models doctor [OPTIONS]
909
+
910
+ Options:
911
+ --json Output as JSON
912
+ --mlx Only report MLX runtime/tooling diagnostics
913
+ -h, --help Print help
914
+ ```
915
+
916
+ #### car models smoke
917
+
918
+ ```text
919
+ Run representative live model checks across text, code, tool, vision, and speech
920
+
921
+ Usage: car models smoke [OPTIONS]
922
+
923
+ Options:
924
+ --json Output as JSON
925
+ --dry-run Only validate routing/orchestration without making live model calls
926
+ -h, --help Print help
927
+ ```
928
+
929
+ #### car models route
930
+
931
+ ```text
932
+ Route a prompt and show which model would be selected (dry run)
933
+
934
+ Usage: car models route <PROMPT>
935
+
936
+ Arguments:
937
+ <PROMPT> Prompt to route
938
+
939
+ Options:
940
+ -h, --help Print help
941
+ ```
942
+
943
+ ### car setup
944
+
945
+ ```text
946
+ Set up the right model for this machine — detect hardware, recommend, and install. Run with no flags
947
+ for an interactive walkthrough
948
+
949
+ Usage: car setup [OPTIONS]
950
+
951
+ Options:
952
+ --use-case <USE_CASE> What you'll mainly do: assistant, coding, search, vision,
953
+ transcription, summarize. Prompted if omitted
954
+ --tier <TIER> Speed/quality preference: fastest, balanced, most-capable [default:
955
+ balanced]
956
+ --cloud-ok Allow cloud models to compete (default: on-device only)
957
+ --yes Don't prompt — accept the top recommendation. For scripts/CI
958
+ -h, --help Print help
959
+ ```
960
+
961
+ ### car speech
962
+
963
+ ```text
964
+ Manage CAR speech runtime, health checks, and smoke tests
965
+
966
+ Usage: car speech <COMMAND>
967
+
968
+ Commands:
969
+ install Install the managed speech runtime and curated local speech models
970
+ doctor Report managed speech runtime, local model cache, and remote-provider health
971
+ smoke Run end-to-end speech smoke tests through CAR
972
+ help Print this message or the help of the given subcommand(s)
973
+
974
+ Options:
975
+ -h, --help Print help
976
+ ```
977
+
978
+ #### car speech install
979
+
980
+ ```text
981
+ Install the managed speech runtime and curated local speech models
982
+
983
+ Usage: car speech install [OPTIONS]
984
+
985
+ Options:
986
+ --json Output as JSON
987
+ -h, --help Print help
988
+ ```
989
+
990
+ #### car speech doctor
991
+
992
+ ```text
993
+ Report managed speech runtime, local model cache, and remote-provider health
994
+
995
+ Usage: car speech doctor [OPTIONS]
996
+
997
+ Options:
998
+ --json Output as JSON
999
+ -h, --help Print help
1000
+ ```
1001
+
1002
+ #### car speech smoke
1003
+
1004
+ ```text
1005
+ Run end-to-end speech smoke tests through CAR
1006
+
1007
+ Usage: car speech smoke [OPTIONS]
1008
+
1009
+ Options:
1010
+ --local-only Only run the local speech path
1011
+ --remote-only Only run the remote speech path
1012
+ --json Output as JSON
1013
+ -h, --help Print help
1014
+ ```
1015
+
1016
+ ### car infer
1017
+
1018
+ ```text
1019
+ Run text generation with a local model
1020
+
1021
+ Usage: car infer [OPTIONS] <PROMPT>
1022
+
1023
+ Arguments:
1024
+ <PROMPT> Prompt text
1025
+
1026
+ Options:
1027
+ -m, --model <MODEL> Model name (default: Qwen3-1.7B)
1028
+ --image <IMAGE> Local image path to include for vision-language inference. May be
1029
+ repeated
1030
+ --workload <WORKLOAD> Workload class for routing: interactive, batch, or background
1031
+ [default: interactive]
1032
+ --max-tokens <MAX_TOKENS> Max tokens to generate [default: 512]
1033
+ --temperature <TEMPERATURE> Temperature (0.0 = greedy) [default: 0.7]
1034
+ --thinking <THINKING> Qwen3 thinking mode: `off` injects `/no_think` and prefills a
1035
+ closed `<think></think>` block (direct answer, no reasoning); `on` injects `/think` (force
1036
+ reasoning); `auto` trusts the model's trained default. CLI defaults to `off` because Qwen3's
1037
+ trained default is reasoning-on, which chews through small `--max-tokens` budgets inside an
1038
+ unclosed `<think>` block and makes the post-strip text empty (issue #168). Set `auto` or `on`
1039
+ for tasks that actually want reasoning, and pair with a larger `--max-tokens` so the model can
1040
+ both think and answer [default: off]
1041
+ -h, --help Print help
1042
+ ```
1043
+
1044
+ ### car image
1045
+
1046
+ ```text
1047
+ Generate an image with a local MLX model
1048
+
1049
+ Usage: car image [OPTIONS] <PROMPT>
1050
+
1051
+ Arguments:
1052
+ <PROMPT> Prompt text
1053
+
1054
+ Options:
1055
+ -m, --model <MODEL> Model name
1056
+ -o, --output <OUTPUT> Output path
1057
+ --width <WIDTH> Image width
1058
+ --height <HEIGHT> Image height
1059
+ --steps <STEPS> Sampling steps
1060
+ --guidance <GUIDANCE> CFG / guidance scale
1061
+ --seed <SEED> Random seed
1062
+ -h, --help Print help
1063
+ ```
1064
+
1065
+ ### car video
1066
+
1067
+ ```text
1068
+ Generate a video with a local MLX model
1069
+
1070
+ Usage: car video [OPTIONS] <PROMPT>
1071
+
1072
+ Arguments:
1073
+ <PROMPT> Prompt text
1074
+
1075
+ Options:
1076
+ -m, --model <MODEL> Model name
1077
+ -o, --output <OUTPUT> Output path
1078
+ --width <WIDTH> Video width
1079
+ --height <HEIGHT> Video height
1080
+ --frames <FRAMES> Number of frames
1081
+ --steps <STEPS> Sampling steps
1082
+ --guidance <GUIDANCE> CFG / guidance scale
1083
+ --fps <FPS> Frames per second
1084
+ --seed <SEED> Random seed
1085
+ --image <IMAGE> Reference image for image-to-video (first frame anchor)
1086
+ --audio-video Enable joint audio+video synthesis (text-to-(video+audio))
1087
+ --audio <AUDIO> Audio-reference conditioning (#113) — drives video timing off the
1088
+ audio bytes using the LTX audio-to-video path. Mutually exclusive with `--audio-video` and
1089
+ `--audio-mux`
1090
+ --audio-mux <AUDIO_MUX> Audio path for downstream muxing. The generated video is text-only
1091
+ (no audio conditioning); the path is recorded on the request so downstream tooling (e.g.
1092
+ Musicart) can find it and mux a final track. The path-records-only behavior previously hid
1093
+ behind `--audio` and silently produced text-only video; `--audio-mux` makes the intent
1094
+ explicit (Parslee-ai/car#183). Mutually exclusive with `--audio` and `--audio-video`
1095
+ -h, --help Print help
1096
+ ```
1097
+
1098
+ ### car embed
1099
+
1100
+ ```text
1101
+ Generate embeddings for text
1102
+
1103
+ Usage: car embed [OPTIONS] <TEXT>
1104
+
1105
+ Arguments:
1106
+ <TEXT> Text to embed
1107
+
1108
+ Options:
1109
+ -m, --model <MODEL> Model name (default: Qwen3-0.6B)
1110
+ -h, --help Print help
1111
+ ```
1112
+
1113
+ ### car skills
1114
+
1115
+ ```text
1116
+ Manage learned skills (SkillRL-inspired)
1117
+
1118
+ Usage: car skills <COMMAND>
1119
+
1120
+ Commands:
1121
+ distill Distill skills from an event log journal
1122
+ list List skills in a memory file
1123
+ help Print this message or the help of the given subcommand(s)
1124
+
1125
+ Options:
1126
+ -h, --help Print help
1127
+ ```
1128
+
1129
+ #### car skills distill
1130
+
1131
+ ```text
1132
+ Distill skills from an event log journal
1133
+
1134
+ Usage: car skills distill [OPTIONS] <JOURNAL>
1135
+
1136
+ Arguments:
1137
+ <JOURNAL> Path to JSONL journal file
1138
+
1139
+ Options:
1140
+ -o, --output <OUTPUT> Output skills to this JSON file (default: print to stdout)
1141
+ -h, --help Print help
1142
+ ```
1143
+
1144
+ #### car skills list
1145
+
1146
+ ```text
1147
+ List skills in a memory file
1148
+
1149
+ Usage: car skills list [OPTIONS] <MEMORY>
1150
+
1151
+ Arguments:
1152
+ <MEMORY> Path to memory JSON file
1153
+
1154
+ Options:
1155
+ -d, --domain <DOMAIN> Filter by domain
1156
+ -h, --help Print help
1157
+ ```
1158
+
1159
+ ### car reason
1160
+
1161
+ ```text
1162
+ Reason about code: diagnose, suggest fixes, explain
1163
+
1164
+ Usage: car reason [OPTIONS] <PROBLEM>
1165
+
1166
+ Arguments:
1167
+ <PROBLEM> Problem description or question
1168
+
1169
+ Options:
1170
+ --format <FORMAT> Output format: text (default) or json [default: text]
1171
+ -h, --help Print help
1172
+ ```
1173
+
1174
+ ### car eval
1175
+
1176
+ ```text
1177
+ Evaluate agent improvement from stored trajectories
1178
+
1179
+ Usage: car eval [OPTIONS]
1180
+
1181
+ Options:
1182
+ -t, --trajectories <TRAJECTORIES> Path to trajectory store directory (default:
1183
+ ~/.car/trajectories/)
1184
+ --json Output as JSON instead of human-readable
1185
+ -h, --help Print help
1186
+ ```
1187
+
1188
+ ### car identity
1189
+
1190
+ ```text
1191
+ Show or change the name your assistant answers to — in conversation, in the host apps, and as its
1192
+ voice wake word
1193
+
1194
+ Usage: car identity [COMMAND]
1195
+
1196
+ Commands:
1197
+ show Show the current name, the spoken forms it wakes on, and where the record lives
1198
+ set Name the assistant. Takes effect for its system prompt, the host apps, and its voice
1199
+ wake word
1200
+ set-user Tell the assistant what to call YOU
1201
+ help Print this message or the help of the given subcommand(s)
1202
+
1203
+ Options:
1204
+ -h, --help Print help
1205
+ ```
1206
+
1207
+ #### car identity show
1208
+
1209
+ ```text
1210
+ Show the current name, the spoken forms it wakes on, and where the record lives
1211
+
1212
+ Usage: car identity show
1213
+
1214
+ Options:
1215
+ -h, --help Print help
1216
+ ```
1217
+
1218
+ #### car identity set
1219
+
1220
+ ```text
1221
+ Name the assistant. Takes effect for its system prompt, the host apps, and its voice wake word
1222
+
1223
+ Usage: car identity set [OPTIONS] <NAME>
1224
+
1225
+ Arguments:
1226
+ <NAME> What to call it, e.g. `Jarvis`
1227
+
1228
+ Options:
1229
+ --also-hear <SPELLING> Another way speech-to-text might hear the name, e.g. `jervis`.
1230
+ Repeatable. Only useful for voice
1231
+ -h, --help Print help
1232
+ ```
1233
+
1234
+ #### car identity set-user
1235
+
1236
+ ```text
1237
+ Tell the assistant what to call YOU
1238
+
1239
+ Usage: car identity set-user <NAME>
1240
+
1241
+ Arguments:
1242
+ <NAME> Your name, or `-` to clear it
1243
+
1244
+ Options:
1245
+ -h, --help Print help
1246
+ ```
1247
+
1248
+ ### car init
1249
+
1250
+ ```text
1251
+ Initialize a .car/ project directory for team-shared configuration
1252
+
1253
+ Usage: car init [OPTIONS]
1254
+
1255
+ Options:
1256
+ -d, --dir <DIR> Directory to create .car/ in (default: current directory)
1257
+ -h, --help Print help
1258
+ ```
1259
+
1260
+ ### car doctor
1261
+
1262
+ ```text
1263
+ Diagnose (and optionally repair) a CAR install: corrupt model weights, unparseable `~/.car` state
1264
+ files, version skew, and leftover files from a previous install. Runs entirely against the local
1265
+ filesystem — no daemon required, so it works even when `car-server` won't start
1266
+
1267
+ Usage: car doctor [OPTIONS]
1268
+
1269
+ Options:
1270
+ --repair Apply safe repairs: purge corrupt cache files (re-pull afterward), back up
1271
+ unparseable state files, refresh the version stamp. Never deletes unrecognized entries or
1272
+ anything not provably corrupt
1273
+ --deep Deep-verify model weights (recompute sha256 vs the HuggingFace etag) instead of the
1274
+ cheap presence/non-empty check. Slower but catches truncated-but-non-empty corruption
1275
+ -h, --help Print help
1276
+ ```
1277
+
1278
+ ### car update
1279
+
1280
+ ```text
1281
+ Update the locally-installed `car` CLI and its sibling `car-server` daemon to the latest release (or
1282
+ `--version <X.Y.Z>`), in place — regardless of how they were installed. Reconciles the drift that
1283
+ otherwise builds up when one channel updates and another doesn't (e.g. CarHost.app auto-updates its
1284
+ bundled daemon via Sparkle but leaves the `/usr/local/bin/car` CLI behind). The npm/PyPI
1285
+ `car-runtime` client packages are separate — this command never touches them; `car doctor` reports
1286
+ which of your agents have drifted, and prints the exact command per environment. Both remedies pin:
1287
+ `npm install car-runtime@<version>` (`npm update` CANNOT cross a 0.x minor — npm reads `^0.41.0` as
1288
+ `>=0.41.0 <0.42.0`, so it is a no-op) and `<venv>/bin/python -m pip install -U
1289
+ car-runtime==<version>` (a bare `-U` can be silently defeated by the consumer's own pin, and the
1290
+ wrong interpreter installs into an environment that does not hold the stale wheel)
1291
+
1292
+ Usage: car update [OPTIONS]
1293
+
1294
+ Options:
1295
+ --check Report whether a newer version exists without downloading anything
1296
+ --version <VERSION> Install a specific version (e.g. `0.34.0`) instead of the latest
1297
+ --force Re-install even if already on the target version (repair a partial or
1298
+ corrupt install)
1299
+ -h, --help Print help
1300
+ ```
1301
+
1302
+ ### car purge
1303
+
1304
+ ```text
1305
+ Remove this CAR install's own state under `~/.car` (config, logs, managed models, binaries) and reap
1306
+ any OS-level schedules CAR installed — for a clean slate before a reinstall. On macOS this also
1307
+ clears CarHost.app's user-level state and resets its privacy (TCC) permissions, so a reinstall
1308
+ really does re-run permission onboarding. NEVER touches the shared HuggingFace model cache (other
1309
+ tools use it); managed models are symlinks into it, so only the links are removed, not the multi-GB
1310
+ blobs. (To uninstall a single contributed agent instead, use `car uninstall <id>`.)
1311
+
1312
+ Usage: car purge [OPTIONS]
1313
+
1314
+ Options:
1315
+ --dry-run Show what would be removed and exit without deleting anything
1316
+ -y, --yes Skip the confirmation prompt
1317
+ --keep-secrets Keep `~/.car/env` (the dotenv secrets file) so a reinstall doesn't need
1318
+ API keys re-entered
1319
+ --keep-permissions macOS: keep CarHost.app's privacy (TCC) grants — Accessibility, Screen
1320
+ Recording, Automation, … — instead of resetting them. For using `car purge` as a state reset
1321
+ rather than an uninstall
1322
+ -h, --help Print help
1323
+ ```
1324
+
1325
+ ### car code
1326
+
1327
+ ```text
1328
+ Built-in coding agent: state an intent, confirm the verifiable outcome contract, and CAR delivers it
1329
+ in an isolated git worktree — natively or via an installed frontier CLI. Results land on a
1330
+ `car/coder/<id>` branch after your approval; your checkout is never touched
1331
+
1332
+ Usage: car code [OPTIONS] [INTENT]...
1333
+
1334
+ Arguments:
1335
+ [INTENT]... What to build or fix, in plain English
1336
+
1337
+ Options:
1338
+ --repo <REPO>
1339
+ Repository to work on. Relative paths (`.`, `../sibling`) resolve against your current
1340
+ directory (default: `.`)
1341
+ --engine <ENGINE>
1342
+ Engine: auto | native | external[:agent_id] | foreman[:agent_id]. Foreman farms subtasks
1343
+ to the external CLI in parallel worktrees behind a merge-verify gate; auto prefers it for
1344
+ broad tasks
1345
+ -y, --yes
1346
+ Skip the interactive contract and merge prompts
1347
+ --max-iterations <MAX_ITERATIONS>
1348
+ Max plan→edit→verify iterations before giving up
1349
+ --model <MODEL>
1350
+ Pin the native loop's inference model for this session (e.g. `parslee/reasoning` for
1351
+ gpt-5.5), overriding `~/.car/coder.toml`. Blank/omitted keeps the config default, then
1352
+ adaptive routing
1353
+ -h, --help
1354
+ Print help
1355
+ ```
1356
+
1357
+ ### car board
1358
+
1359
+ ```text
1360
+ Fullscreen supervision board for coder sessions — one screen for every run on this host, whoever
1361
+ started it (`car code`, CarHost, milo, another board). Attach to a run's full history, confirm its
1362
+ outcome contract, answer its questions, approve its diff, or scope work in a repo-grounded
1363
+ discussion first. Closing the board never stops a run
1364
+
1365
+ Usage: car board [OPTIONS]
1366
+
1367
+ Options:
1368
+ --repo <REPO> Repository the board opens against — pre-fills new runs and grounds
1369
+ discussions. Relative paths (`.`, `../sibling`) resolve against your current directory
1370
+ (default: `.`)
1371
+ -h, --help Print help
1372
+ ```
1373
+
1374
+ ### car do
1375
+
1376
+ ```text
1377
+ CAR Assistant: a general-purpose agent that works out of the box.
1378
+
1379
+ With a goal it runs once and prints the result; with no goal it opens an interactive REPL. It comes
1380
+ wired with files, a real shell, web access, and durable memory, and runs sandbox-first (a hardened
1381
+ Docker container) so edits are isolated. `--local` runs on the host; `--serve` runs it as a
1382
+ supervised, conversational agent for CarHost.
1383
+
1384
+ Usage: car do [OPTIONS] [GOAL]...
1385
+
1386
+ Arguments:
1387
+ [GOAL]...
1388
+ What you want done, in plain English. Omit for an interactive REPL
1389
+
1390
+ Options:
1391
+ --local
1392
+ Run on the LOCAL host instead of the default Docker sandbox. Writes and shell then require
1393
+ --full-access
1394
+
1395
+ -y, --full-access
1396
+ Allow file writes and shell on the local host without prompting. (No effect in the
1397
+ sandbox, which is already isolated.)
1398
+
1399
+ --dir <DIR>
1400
+ Working directory (default: current directory)
1401
+
1402
+ --model <MODEL>
1403
+ Inference model id (default: a tool-capable model chosen for you)
1404
+
1405
+ --image <IMAGE>
1406
+ Docker image for the sandbox (default: python:3.11, which bundles git/gcc/curl). Ignored
1407
+ with --local
1408
+
1409
+ --max-turns <MAX_TURNS>
1410
+ Safety cap on agent turns. This is a backstop, not the expected stop: the loop ends on its
1411
+ own when the model finishes (stops calling tools). 12 was too low for whole-project builds
1412
+ — it cut real work off mid-task; raise it further for large jobs
1413
+
1414
+ [default: 50]
1415
+
1416
+ --until <SHELL>
1417
+ Goal mode: keep working until this shell command exits 0 (a DETERMINISTIC completion check
1418
+ the runtime runs itself — unlike `/goal`, which asks a model to judge the transcript).
1419
+ Re-drives the agent each round with the failure as guidance. E.g. `--until 'cargo test
1420
+ -q'`
1421
+
1422
+ --infer-until
1423
+ Infer a deterministic --until check from the prompt and working directory, then run goal
1424
+ mode. Refuses to run if no concrete check can be inferred
1425
+
1426
+ --goal-max-iterations <GOAL_MAX_ITERATIONS>
1427
+ In goal mode, the hard cap on re-drive iterations (the governor's turn budget). A hard
1428
+ bound, not a soft prose clause
1429
+
1430
+ [default: 10]
1431
+
1432
+ --serve
1433
+ Run as a supervised, conversational agent (for CarHost / agents.chat)
1434
+
1435
+ --governed-host
1436
+ Run the supervised assistant on the real host with repository, approval, and
1437
+ durable-action governance. Requires an explicit `--dir` naming a Git repository; rejects
1438
+ `/` and the home directory
1439
+
1440
+ --json
1441
+ Machine-readable output for a calling agent or script: exactly one JSON document on
1442
+ stdout, JSONL progress events on stderr, and no human progress rendering. Needs a goal —
1443
+ there is no JSON shape for an interactive REPL. See docs/car-do-json.md
1444
+
1445
+ -h, --help
1446
+ Print help (see a summary with '-h')
1447
+ ```
1448
+
1449
+ ### car policy-check-hook
1450
+
1451
+ ```text
1452
+ Evaluate a host's proposed tool call against `.car/policies/` and answer on stdout with that host's
1453
+ hook decision envelope.
1454
+
1455
+ Reads a Claude Code / Codex `PreToolUse` payload on stdin. Wire it into a plugin as a `PreToolUse`
1456
+ command hook and the operator's policy rules govern the agent in their editor, not just CAR's own
1457
+ loop.
1458
+
1459
+ Fails OPEN on anything it cannot evaluate (and says why on stderr), and CLOSED on a genuine deny —
1460
+ including a policy file that will not parse.
1461
+
1462
+ Usage: car policy-check-hook
1463
+
1464
+ Options:
1465
+ -h, --help
1466
+ Print help (see a summary with '-h')
1467
+ ```
1468
+
1469
+ ### car project
1470
+
1471
+ ```text
1472
+ Manage CAR-managed projects (a named, git-backed workspace CAR creates for you — no repo to pick)
1473
+
1474
+ Usage: car project <COMMAND>
1475
+
1476
+ Commands:
1477
+ new Create a managed project (idempotent — re-running loads it)
1478
+ list List your managed projects
1479
+ help Print this message or the help of the given subcommand(s)
1480
+
1481
+ Options:
1482
+ -h, --help Print help
1483
+ ```
1484
+
1485
+ #### car project new
1486
+
1487
+ ```text
1488
+ Create a managed project (idempotent — re-running loads it)
1489
+
1490
+ Usage: car project new [OPTIONS] [NAME]...
1491
+
1492
+ Arguments:
1493
+ [NAME]... A friendly name (CAR derives a slug)
1494
+
1495
+ Options:
1496
+ --kind <KIND> `app` (code) or `agent` (an in-daemon agent) [default: app]
1497
+ -h, --help Print help
1498
+ ```
1499
+
1500
+ #### car project list
1501
+
1502
+ ```text
1503
+ List your managed projects
1504
+
1505
+ Usage: car project list
1506
+
1507
+ Options:
1508
+ -h, --help Print help
1509
+ ```
1510
+
1511
+ ### car parslee
1512
+
1513
+ ```text
1514
+ Parslee platform capabilities for the signed-in account (requires `car auth login`)
1515
+
1516
+ Usage: car parslee <COMMAND>
1517
+
1518
+ Commands:
1519
+ capabilities Discover what your Parslee account can do — identity, product entitlements, and
1520
+ Studio reachability. Read-only
1521
+ generate-document Generate a Word document from a natural-language brief and save it to your
1522
+ connected drive (OneDrive/Google Drive). Requires the `aie` product
1523
+ help Print this message or the help of the given subcommand(s)
1524
+
1525
+ Options:
1526
+ -h, --help Print help
1527
+ ```
1528
+
1529
+ #### car parslee capabilities
1530
+
1531
+ ```text
1532
+ Discover what your Parslee account can do — identity, product entitlements, and Studio reachability.
1533
+ Read-only
1534
+
1535
+ Usage: car parslee capabilities [OPTIONS]
1536
+
1537
+ Options:
1538
+ --json Print the raw JSON response instead of a summary
1539
+ -h, --help Print help
1540
+ ```
1541
+
1542
+ #### car parslee generate-document
1543
+
1544
+ ```text
1545
+ Generate a Word document from a natural-language brief and save it to your connected drive
1546
+ (OneDrive/Google Drive). Requires the `aie` product
1547
+
1548
+ Usage: car parslee generate-document [OPTIONS] --brief <BRIEF> --out <OUT>
1549
+
1550
+ Options:
1551
+ --brief <BRIEF> What the document should contain (20–2000 chars)
1552
+ --out <OUT> Output path in your drive, e.g. "Generated/report.docx"
1553
+ --type <DOC_TYPE> Report | Proposal | Memo | Letter | Contract | ExecutiveSummary |
1554
+ MeetingMinutes | ProjectPlan [default: Report]
1555
+ --title <TITLE> Optional title override
1556
+ --author <AUTHOR> Optional author name for document metadata
1557
+ -h, --help Print help
1558
+ ```
1559
+
1560
+ ### car agent
1561
+
1562
+ ```text
1563
+ Build and run in-daemon agents from plain-language descriptions. An agent runs inside CAR — nothing
1564
+ to install
1565
+
1566
+ Usage: car agent <COMMAND>
1567
+
1568
+ Commands:
1569
+ new Describe an agent in plain language; CAR builds, verifies, and registers it to run
1570
+ in-daemon
1571
+ run Run a registered agent on an input
1572
+ list List registered in-daemon agents
1573
+ external Show installed external agentic CLIs (Claude Code, Codex, Gemini): which binary each
1574
+ resolved to, and whether it can actually run
1575
+ help Print this message or the help of the given subcommand(s)
1576
+
1577
+ Options:
1578
+ -h, --help Print help
1579
+ ```
1580
+
1581
+ #### car agent new
1582
+
1583
+ ```text
1584
+ Describe an agent in plain language; CAR builds, verifies, and registers it to run in-daemon
1585
+
1586
+ Usage: car agent new [OPTIONS] [DESCRIPTION]...
1587
+
1588
+ Arguments:
1589
+ [DESCRIPTION]... What the agent should do
1590
+
1591
+ Options:
1592
+ -y, --yes Skip the interactive confirm/approve prompts
1593
+ -h, --help Print help
1594
+ ```
1595
+
1596
+ #### car agent run
1597
+
1598
+ ```text
1599
+ Run a registered agent on an input
1600
+
1601
+ Usage: car agent run <ID> [INPUT]...
1602
+
1603
+ Arguments:
1604
+ <ID> The agent id (its project slug)
1605
+ [INPUT]... The input to give it
1606
+
1607
+ Options:
1608
+ -h, --help Print help
1609
+ ```
1610
+
1611
+ #### car agent list
1612
+
1613
+ ```text
1614
+ List registered in-daemon agents
1615
+
1616
+ Usage: car agent list
1617
+
1618
+ Options:
1619
+ -h, --help Print help
1620
+ ```
1621
+
1622
+ #### car agent external
1623
+
1624
+ ```text
1625
+ Show installed external agentic CLIs (Claude Code, Codex, Gemini): which binary each resolved to,
1626
+ and whether it can actually run.
1627
+
1628
+ Runs detection in-process, so it works with the daemon stopped — diagnosing a CLI that won't start
1629
+ should not require a healthy daemon. Exits non-zero if any detected CLI cannot be executed.
1630
+
1631
+ Usage: car agent external [OPTIONS]
1632
+
1633
+ Options:
1634
+ --json
1635
+ Emit the raw `[ExternalAgentSpec]` JSON instead of a table
1636
+
1637
+ -h, --help
1638
+ Print help (see a summary with '-h')
1639
+ ```
1640
+
1641
+ ### car build
1642
+
1643
+ ```text
1644
+ Build a runnable workflow from a natural-language goal.
1645
+
1646
+ Generates a car-workflow manifest with a model, validates it with the runtime verifier (repairing on
1647
+ failure), shows it for approval, and saves it. Use --update to edit an existing workflow file.
1648
+
1649
+ Usage: car build [OPTIONS] [GOAL]...
1650
+
1651
+ Arguments:
1652
+ [GOAL]...
1653
+ What the workflow should do, in plain English
1654
+
1655
+ Options:
1656
+ -o, --output <OUTPUT>
1657
+ Where to write the workflow JSON (default: ~/.car/workflows/<id>.json)
1658
+
1659
+ -u, --update <UPDATE>
1660
+ Update this existing workflow file instead of creating a new one
1661
+
1662
+ -y, --yes
1663
+ Save without the interactive approval prompt
1664
+
1665
+ --max-attempts <MAX_ATTEMPTS>
1666
+ Max generate→validate→repair attempts per round
1667
+
1668
+ [default: 3]
1669
+
1670
+ -h, --help
1671
+ Print help (see a summary with '-h')
1672
+ ```
1673
+
1674
+ ### car dream
1675
+
1676
+ ```text
1677
+ Run memory consolidation ("dream") — prune, GC, embed, evolve
1678
+
1679
+ Usage: car dream [OPTIONS]
1680
+
1681
+ Options:
1682
+ -m, --memory <MEMORY> Path to memory graph JSON file (default: ~/.car/memory.json)
1683
+ -e, --embeddings <EMBEDDINGS> Path to embeddings cache file (default: ~/.car/embeddings.bin)
1684
+ --json Output as JSON instead of human-readable
1685
+ -h, --help Print help
1686
+ ```
1687
+
1688
+ ### car browse
1689
+
1690
+ ```text
1691
+ Browser automation — drive Chromium through the CAR runtime
1692
+
1693
+ Usage: car browse <COMMAND>
1694
+
1695
+ Commands:
1696
+ run Execute a script of browser operations in order. See docs for the script JSON schema (see
1697
+ crates/car-cli/BROWSE.md once published)
1698
+ schema Print the script schema and the list of supported operations
1699
+ help Print this message or the help of the given subcommand(s)
1700
+
1701
+ Options:
1702
+ -h, --help Print help
1703
+ ```
1704
+
1705
+ #### car browse run
1706
+
1707
+ ```text
1708
+ Execute a script of browser operations in order. See docs for the script JSON schema (see
1709
+ crates/car-cli/BROWSE.md once published)
1710
+
1711
+ Usage: car browse run [OPTIONS] <SCRIPT>
1712
+
1713
+ Arguments:
1714
+ <SCRIPT> Path to the script JSON file. Use `-` for stdin
1715
+
1716
+ Options:
1717
+ --width <WIDTH> Viewport width in pixels [default: 1280]
1718
+ --height <HEIGHT> Viewport height in pixels [default: 720]
1719
+ --headed Launch a visible Chromium window instead of headless. Intended for
1720
+ interactive flows (first-time auth, 2FA, captcha) where a human completes a step mid-script
1721
+ before the automation runs headless against the captured session
1722
+ --pretty Output trace as pretty JSON instead of compact
1723
+ -h, --help Print help
1724
+ ```
1725
+
1726
+ #### car browse schema
1727
+
1728
+ ```text
1729
+ Print the script schema and the list of supported operations
1730
+
1731
+ Usage: car browse schema
1732
+
1733
+ Options:
1734
+ -h, --help Print help
1735
+ ```
1736
+
1737
+ ### car secrets
1738
+
1739
+ ```text
1740
+ OS-native secret store — Keychain / Credential Manager / Secret Service. Aliased as `secret`
1741
+ (singular) for backward compatibility
1742
+
1743
+ Usage: car secrets <COMMAND>
1744
+
1745
+ Commands:
1746
+ put Store a secret. Value is read from --value or piped stdin
1747
+ get Retrieve a secret — prints the value on stdout
1748
+ delete Delete a secret (idempotent)
1749
+ status Check whether a secret exists, without returning the value
1750
+ available Probe whether the OS secret store is reachable on this host
1751
+ migrate-from-env Walk known remote-model env vars and copy any non-empty values from process env
1752
+ into the OS keychain. Idempotent — running again only rewrites entries when the env value differs
1753
+ from what's stored
1754
+ help Print this message or the help of the given subcommand(s)
1755
+
1756
+ Options:
1757
+ -h, --help Print help
1758
+ ```
1759
+
1760
+ #### car secrets put
1761
+
1762
+ ```text
1763
+ Store a secret. Value is read from --value or piped stdin
1764
+
1765
+ Usage: car secrets put [OPTIONS] <KEY>
1766
+
1767
+ Arguments:
1768
+ <KEY>
1769
+
1770
+ Options:
1771
+ --service <SERVICE>
1772
+ --value <VALUE>
1773
+ -h, --help Print help
1774
+ ```
1775
+
1776
+ #### car secrets get
1777
+
1778
+ ```text
1779
+ Retrieve a secret — prints the value on stdout
1780
+
1781
+ Usage: car secrets get [OPTIONS] <KEY>
1782
+
1783
+ Arguments:
1784
+ <KEY>
1785
+
1786
+ Options:
1787
+ --service <SERVICE>
1788
+ -h, --help Print help
1789
+ ```
1790
+
1791
+ #### car secrets delete
1792
+
1793
+ ```text
1794
+ Delete a secret (idempotent)
1795
+
1796
+ Usage: car secrets delete [OPTIONS] <KEY>
1797
+
1798
+ Arguments:
1799
+ <KEY>
1800
+
1801
+ Options:
1802
+ --service <SERVICE>
1803
+ -h, --help Print help
1804
+ ```
1805
+
1806
+ #### car secrets status
1807
+
1808
+ ```text
1809
+ Check whether a secret exists, without returning the value
1810
+
1811
+ Usage: car secrets status [OPTIONS] <KEY>
1812
+
1813
+ Arguments:
1814
+ <KEY>
1815
+
1816
+ Options:
1817
+ --service <SERVICE>
1818
+ -h, --help Print help
1819
+ ```
1820
+
1821
+ #### car secrets available
1822
+
1823
+ ```text
1824
+ Probe whether the OS secret store is reachable on this host
1825
+
1826
+ Usage: car secrets available
1827
+
1828
+ Options:
1829
+ -h, --help Print help
1830
+ ```
1831
+
1832
+ #### car secrets migrate-from-env
1833
+
1834
+ ```text
1835
+ Walk known remote-model env vars and copy any non-empty values from process env into the OS
1836
+ keychain. Idempotent — running again only rewrites entries when the env value differs from what's
1837
+ stored.
1838
+
1839
+ One-time setup for users moving away from `~/.car/env`. After migration, you can `unset
1840
+ OPENAI_API_KEY` (etc.) in your shell rc and the keychain entries will be picked up at runtime by
1841
+ car-inference.
1842
+
1843
+ Usage: car secrets migrate-from-env [OPTIONS]
1844
+
1845
+ Options:
1846
+ --dry-run
1847
+ Print what would be migrated without writing anything
1848
+
1849
+ --service <SERVICE>
1850
+ Service to write entries under. Defaults to "car" (the per-app namespace; same one
1851
+ car-inference reads at runtime)
1852
+
1853
+ --include <ENV_VAR>
1854
+ Additional env-var names to migrate beyond the built-in remote-model defaults
1855
+ (ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY). Repeatable
1856
+
1857
+ -h, --help
1858
+ Print help (see a summary with '-h')
1859
+ ```
1860
+
1861
+ ### car auth
1862
+
1863
+ ```text
1864
+ Parslee account authentication for CAR cloud-backed features
1865
+
1866
+ Usage: car auth <COMMAND>
1867
+
1868
+ Commands:
1869
+ login Sign in with a Parslee account using browser-based OAuth + PKCE
1870
+ status Show whether CAR has a usable Parslee account token
1871
+ logout Remove stored Parslee account tokens from the OS keychain
1872
+ orgs List the organizations the signed-in account belongs to (active marked)
1873
+ switch-org Switch the account's active organization by id (e.g. `org_parslee`)
1874
+ accounts List all stored Parslee logins (active marked)
1875
+ switch-account Switch the active Parslee login by account id
1876
+ help Print this message or the help of the given subcommand(s)
1877
+
1878
+ Options:
1879
+ -h, --help Print help
1880
+ ```
1881
+
1882
+ #### car auth login
1883
+
1884
+ ```text
1885
+ Sign in with a Parslee account using browser-based OAuth + PKCE
1886
+
1887
+ Usage: car auth login [OPTIONS]
1888
+
1889
+ Options:
1890
+ --api-base <API_BASE> Parslee API base URL [default: https://api.parslee.ai]
1891
+ --client-id <CLIENT_ID> OAuth client id registered in the Parslee backend [default:
1892
+ parslee-car]
1893
+ --callback-port <CALLBACK_PORT> Local callback port. The backend must allow this exact
1894
+ redirect URI [default: 53682]
1895
+ --provider <PROVIDER> Provider hint forwarded to Parslee authorize (`microsoft` or
1896
+ `google`)
1897
+ --add Add a second Parslee login alongside the current one (forces
1898
+ the account chooser) instead of replacing it
1899
+ -h, --help Print help
1900
+ ```
1901
+
1902
+ #### car auth status
1903
+
1904
+ ```text
1905
+ Show whether CAR has a usable Parslee account token
1906
+
1907
+ Usage: car auth status [OPTIONS]
1908
+
1909
+ Options:
1910
+ --api-base <API_BASE> Parslee API base URL override
1911
+ --json Print the raw session object from the Parslee API instead of a summary.
1912
+ The shape is the upstream API's and is not a CAR contract
1913
+ -h, --help Print help
1914
+ ```
1915
+
1916
+ #### car auth logout
1917
+
1918
+ ```text
1919
+ Remove stored Parslee account tokens from the OS keychain
1920
+
1921
+ Usage: car auth logout
1922
+
1923
+ Options:
1924
+ -h, --help Print help
1925
+ ```
1926
+
1927
+ #### car auth orgs
1928
+
1929
+ ```text
1930
+ List the organizations the signed-in account belongs to (active marked)
1931
+
1932
+ Usage: car auth orgs [OPTIONS]
1933
+
1934
+ Options:
1935
+ --api-base <API_BASE> Parslee API base URL override
1936
+ -h, --help Print help
1937
+ ```
1938
+
1939
+ #### car auth switch-org
1940
+
1941
+ ```text
1942
+ Switch the account's active organization by id (e.g. `org_parslee`)
1943
+
1944
+ Usage: car auth switch-org [OPTIONS] <ORGANIZATION_ID>
1945
+
1946
+ Arguments:
1947
+ <ORGANIZATION_ID> Target organization id
1948
+
1949
+ Options:
1950
+ --api-base <API_BASE> Parslee API base URL override
1951
+ -h, --help Print help
1952
+ ```
1953
+
1954
+ #### car auth accounts
1955
+
1956
+ ```text
1957
+ List all stored Parslee logins (active marked)
1958
+
1959
+ Usage: car auth accounts [OPTIONS]
1960
+
1961
+ Options:
1962
+ --api-base <API_BASE> Parslee API base URL override
1963
+ -h, --help Print help
1964
+ ```
1965
+
1966
+ #### car auth switch-account
1967
+
1968
+ ```text
1969
+ Switch the active Parslee login by account id
1970
+
1971
+ Usage: car auth switch-account [OPTIONS] <ACCOUNT_ID>
1972
+
1973
+ Arguments:
1974
+ <ACCOUNT_ID> Target account id (from `car auth accounts`)
1975
+
1976
+ Options:
1977
+ --api-base <API_BASE> Parslee API base URL override
1978
+ -h, --help Print help
1979
+ ```
1980
+
1981
+ ### car permissions
1982
+
1983
+ ```text
1984
+ OS permission preflight — TCC / Windows Privacy / xdg-desktop-portal
1985
+
1986
+ Usage: car permissions <COMMAND>
1987
+
1988
+ Commands:
1989
+ status Report current grant state for a domain
1990
+ request Trigger a native prompt if the OS supports one
1991
+ explain Human-readable explanation and fix suggestion
1992
+ domains List all known domains
1993
+ help Print this message or the help of the given subcommand(s)
1994
+
1995
+ Options:
1996
+ -h, --help Print help
1997
+ ```
1998
+
1999
+ #### car permissions status
2000
+
2001
+ ```text
2002
+ Report current grant state for a domain
2003
+
2004
+ Usage: car permissions status [OPTIONS] <DOMAIN>
2005
+
2006
+ Arguments:
2007
+ <DOMAIN>
2008
+
2009
+ Options:
2010
+ --target <TARGET> macOS Automation only: bundle ID of the target app to control. Ignored for
2011
+ other domains
2012
+ -h, --help Print help
2013
+ ```
2014
+
2015
+ #### car permissions request
2016
+
2017
+ ```text
2018
+ Trigger a native prompt if the OS supports one
2019
+
2020
+ Usage: car permissions request [OPTIONS] <DOMAIN>
2021
+
2022
+ Arguments:
2023
+ <DOMAIN>
2024
+
2025
+ Options:
2026
+ --target <TARGET>
2027
+ -h, --help Print help
2028
+ ```
2029
+
2030
+ #### car permissions explain
2031
+
2032
+ ```text
2033
+ Human-readable explanation and fix suggestion
2034
+
2035
+ Usage: car permissions explain [OPTIONS] <DOMAIN>
2036
+
2037
+ Arguments:
2038
+ <DOMAIN>
2039
+
2040
+ Options:
2041
+ --target <TARGET>
2042
+ -h, --help Print help
2043
+ ```
2044
+
2045
+ #### car permissions domains
2046
+
2047
+ ```text
2048
+ List all known domains
2049
+
2050
+ Usage: car permissions domains
2051
+
2052
+ Options:
2053
+ -h, --help Print help
2054
+ ```
2055
+
2056
+ ### car voice
2057
+
2058
+ ```text
2059
+ Voiceprint enrollment — teach CAR your voice so it knows who's speaking (the owner drives commands;
2060
+ other voices are context). Proxies the daemon's `voice.*` surface
2061
+
2062
+ Usage: car voice <COMMAND>
2063
+
2064
+ Commands:
2065
+ enroll Enroll a voiceprint from a WAV recording. The daemon decodes the file and saves a
2066
+ voiceprint under `~/.car/voiceprints/<label>.toml`
2067
+ list List enrolled voiceprints
2068
+ remove Remove an enrolled voiceprint by label
2069
+ help Print this message or the help of the given subcommand(s)
2070
+
2071
+ Options:
2072
+ -h, --help Print help
2073
+ ```
2074
+
2075
+ #### car voice enroll
2076
+
2077
+ ```text
2078
+ Enroll a voiceprint from a WAV recording. The daemon decodes the file and saves a voiceprint under
2079
+ `~/.car/voiceprints/<label>.toml`
2080
+
2081
+ Usage: car voice enroll --label <LABEL> --wav <WAV>
2082
+
2083
+ Options:
2084
+ --label <LABEL> A name for this voice, e.g. your first name
2085
+ --wav <WAV> Path to a WAV recording of the speaker (a few seconds is enough)
2086
+ -h, --help Print help
2087
+ ```
2088
+
2089
+ #### car voice list
2090
+
2091
+ ```text
2092
+ List enrolled voiceprints
2093
+
2094
+ Usage: car voice list
2095
+
2096
+ Options:
2097
+ -h, --help Print help
2098
+ ```
2099
+
2100
+ #### car voice remove
2101
+
2102
+ ```text
2103
+ Remove an enrolled voiceprint by label
2104
+
2105
+ Usage: car voice remove --label <LABEL>
2106
+
2107
+ Options:
2108
+ --label <LABEL>
2109
+ -h, --help Print help
2110
+ ```
2111
+
2112
+ ### car onboard
2113
+
2114
+ ```text
2115
+ Onboarding readiness — what's set up and what's still pending (the headless equivalent of the
2116
+ CarHost setup wizard)
2117
+
2118
+ Usage: car onboard
2119
+
2120
+ Options:
2121
+ -h, --help Print help
2122
+ ```
2123
+
2124
+ ### car approvals
2125
+
2126
+ ```text
2127
+ Agent approval policy — the default posture for what agents may do without asking. Proxies the
2128
+ daemon's `agent_permissions.*` surface (the CLI counterpart to the CarHost "Approvals" settings /
2129
+ onboarding step)
2130
+
2131
+ Usage: car approvals <COMMAND>
2132
+
2133
+ Commands:
2134
+ default Set the default approval preset for all agents (`cautious` asks before any
2135
+ edit/full-access, `balanced` allows sandboxed edits, `trusting` allows everything without asking)
2136
+ get Show the current default approval posture
2137
+ help Print this message or the help of the given subcommand(s)
2138
+
2139
+ Options:
2140
+ -h, --help Print help
2141
+ ```
2142
+
2143
+ #### car approvals default
2144
+
2145
+ ```text
2146
+ Set the default approval preset for all agents (`cautious` asks before any edit/full-access,
2147
+ `balanced` allows sandboxed edits, `trusting` allows everything without asking)
2148
+
2149
+ Usage: car approvals default <PRESET>
2150
+
2151
+ Arguments:
2152
+ <PRESET> One of: cautious | balanced | trusting
2153
+
2154
+ Options:
2155
+ -h, --help Print help
2156
+ ```
2157
+
2158
+ #### car approvals get
2159
+
2160
+ ```text
2161
+ Show the current default approval posture
2162
+
2163
+ Usage: car approvals get
2164
+
2165
+ Options:
2166
+ -h, --help Print help
2167
+ ```
2168
+
2169
+ ### car accounts
2170
+
2171
+ ```text
2172
+ OS-native account discovery — Internet Accounts / WAM / GOA
2173
+
2174
+ Usage: car accounts <COMMAND>
2175
+
2176
+ Commands:
2177
+ list List accounts visible to the OS
2178
+ open Open the native account-management UI
2179
+ help Print this message or the help of the given subcommand(s)
2180
+
2181
+ Options:
2182
+ -h, --help Print help
2183
+ ```
2184
+
2185
+ #### car accounts list
2186
+
2187
+ ```text
2188
+ List accounts visible to the OS
2189
+
2190
+ Usage: car accounts list
2191
+
2192
+ Options:
2193
+ -h, --help Print help
2194
+ ```
2195
+
2196
+ #### car accounts open
2197
+
2198
+ ```text
2199
+ Open the native account-management UI
2200
+
2201
+ Usage: car accounts open [OPTIONS]
2202
+
2203
+ Options:
2204
+ --account-id <ACCOUNT_ID>
2205
+ -h, --help Print help
2206
+ ```
2207
+
2208
+ ### car cal
2209
+
2210
+ ```text
2211
+ OS-native Calendar integration
2212
+
2213
+ Usage: car cal <COMMAND>
2214
+
2215
+ Commands:
2216
+ list List visible calendars across all sources
2217
+ events List events in an ISO-8601 time range
2218
+ help Print this message or the help of the given subcommand(s)
2219
+
2220
+ Options:
2221
+ -h, --help Print help
2222
+ ```
2223
+
2224
+ #### car cal list
2225
+
2226
+ ```text
2227
+ List visible calendars across all sources
2228
+
2229
+ Usage: car cal list
2230
+
2231
+ Options:
2232
+ -h, --help Print help
2233
+ ```
2234
+
2235
+ #### car cal events
2236
+
2237
+ ```text
2238
+ List events in an ISO-8601 time range
2239
+
2240
+ Usage: car cal events [OPTIONS] --start <START> --end <END>
2241
+
2242
+ Options:
2243
+ --start <START> RFC3339 / ISO-8601 start time
2244
+ --end <END> RFC3339 / ISO-8601 end time
2245
+ --calendars <CALENDARS> Optional comma-separated list of calendar IDs
2246
+ -h, --help Print help
2247
+ ```
2248
+
2249
+ ### car contacts
2250
+
2251
+ ```text
2252
+ OS-native Contacts integration
2253
+
2254
+ Usage: car contacts <COMMAND>
2255
+
2256
+ Commands:
2257
+ containers List containers (a.k.a. sources / accounts within Contacts)
2258
+ find Free-text contact search
2259
+ help Print this message or the help of the given subcommand(s)
2260
+
2261
+ Options:
2262
+ -h, --help Print help
2263
+ ```
2264
+
2265
+ #### car contacts containers
2266
+
2267
+ ```text
2268
+ List containers (a.k.a. sources / accounts within Contacts)
2269
+
2270
+ Usage: car contacts containers
2271
+
2272
+ Options:
2273
+ -h, --help Print help
2274
+ ```
2275
+
2276
+ #### car contacts find
2277
+
2278
+ ```text
2279
+ Free-text contact search
2280
+
2281
+ Usage: car contacts find [OPTIONS] <QUERY>
2282
+
2283
+ Arguments:
2284
+ <QUERY>
2285
+
2286
+ Options:
2287
+ --limit <LIMIT> [default: 50]
2288
+ --containers <CONTAINERS>
2289
+ -h, --help Print help
2290
+ ```
2291
+
2292
+ ### car mail
2293
+
2294
+ ```text
2295
+ OS-native Mail integration
2296
+
2297
+ Usage: car mail <COMMAND>
2298
+
2299
+ Commands:
2300
+ accounts List mail accounts known to the backend
2301
+ inbox Inbox summaries per account
2302
+ mailboxes List every mailbox (folder) per account, nested ones included (on Microsoft Graph the
2303
+ nested walk is bounded: depth 8, 64 requests)
2304
+ messages Read message rows from one mailbox, newest first across all matched accounts (not
2305
+ newest-first per account, then concatenated)
2306
+ body Fetch one message body by the `id` from `car mail messages`
2307
+ send Send (or draft) a message. JSON payload on stdin matching SendRequest
2308
+ help Print this message or the help of the given subcommand(s)
2309
+
2310
+ Options:
2311
+ -h, --help Print help
2312
+ ```
2313
+
2314
+ #### car mail accounts
2315
+
2316
+ ```text
2317
+ List mail accounts known to the backend
2318
+
2319
+ Usage: car mail accounts
2320
+
2321
+ Options:
2322
+ -h, --help Print help
2323
+ ```
2324
+
2325
+ #### car mail inbox
2326
+
2327
+ ```text
2328
+ Inbox summaries per account
2329
+
2330
+ Usage: car mail inbox [OPTIONS]
2331
+
2332
+ Options:
2333
+ --accounts <ACCOUNTS>
2334
+ -h, --help Print help
2335
+ ```
2336
+
2337
+ #### car mail mailboxes
2338
+
2339
+ ```text
2340
+ List every mailbox (folder) per account, nested ones included (on Microsoft Graph the nested walk is
2341
+ bounded: depth 8, 64 requests)
2342
+
2343
+ Usage: car mail mailboxes [OPTIONS]
2344
+
2345
+ Options:
2346
+ --accounts <ACCOUNTS>
2347
+ -h, --help Print help
2348
+ ```
2349
+
2350
+ #### car mail messages
2351
+
2352
+ ```text
2353
+ Read message rows from one mailbox, newest first across all matched accounts (not newest-first per
2354
+ account, then concatenated)
2355
+
2356
+ Usage: car mail messages [OPTIONS]
2357
+
2358
+ Options:
2359
+ --accounts <ACCOUNTS>
2360
+ --mailbox <MAILBOX> Mailbox selector — a `full_name` from `car mail mailboxes`, or a bare
2361
+ leaf name like "Travel". Defaults to INBOX
2362
+ --limit <LIMIT> [default: 50]
2363
+ --since <SINCE> Only messages received at or after this RFC3339 instant
2364
+ --include-body Include each message's body inline (bounded per message)
2365
+ -h, --help Print help
2366
+ ```
2367
+
2368
+ #### car mail body
2369
+
2370
+ ```text
2371
+ Fetch one message body by the `id` from `car mail messages`
2372
+
2373
+ Usage: car mail body <ID>
2374
+
2375
+ Arguments:
2376
+ <ID>
2377
+
2378
+ Options:
2379
+ -h, --help Print help
2380
+ ```
2381
+
2382
+ #### car mail send
2383
+
2384
+ ```text
2385
+ Send (or draft) a message. JSON payload on stdin matching SendRequest
2386
+
2387
+ Usage: car mail send
2388
+
2389
+ Options:
2390
+ -h, --help Print help
2391
+ ```
2392
+
2393
+ ### car messages
2394
+
2395
+ ```text
2396
+ OS-native Messages integration
2397
+
2398
+ Usage: car messages <COMMAND>
2399
+
2400
+ Commands:
2401
+ services List Messages.app services/accounts
2402
+ chats List recent Messages.app chats
2403
+ send Send a message. JSON payload on stdin matching Messages SendRequest
2404
+ help Print this message or the help of the given subcommand(s)
2405
+
2406
+ Options:
2407
+ -h, --help Print help
2408
+ ```
2409
+
2410
+ #### car messages services
2411
+
2412
+ ```text
2413
+ List Messages.app services/accounts
2414
+
2415
+ Usage: car messages services
2416
+
2417
+ Options:
2418
+ -h, --help Print help
2419
+ ```
2420
+
2421
+ #### car messages chats
2422
+
2423
+ ```text
2424
+ List recent Messages.app chats
2425
+
2426
+ Usage: car messages chats [OPTIONS]
2427
+
2428
+ Options:
2429
+ --limit <LIMIT> [default: 50]
2430
+ -h, --help Print help
2431
+ ```
2432
+
2433
+ #### car messages send
2434
+
2435
+ ```text
2436
+ Send a message. JSON payload on stdin matching Messages SendRequest
2437
+
2438
+ Usage: car messages send
2439
+
2440
+ Options:
2441
+ -h, --help Print help
2442
+ ```
2443
+
2444
+ ### car notes
2445
+
2446
+ ```text
2447
+ macOS Notes integration
2448
+
2449
+ Usage: car notes <COMMAND>
2450
+
2451
+ Commands:
2452
+ accounts List Notes.app accounts
2453
+ find Free-text note search
2454
+ help Print this message or the help of the given subcommand(s)
2455
+
2456
+ Options:
2457
+ -h, --help Print help
2458
+ ```
2459
+
2460
+ #### car notes accounts
2461
+
2462
+ ```text
2463
+ List Notes.app accounts
2464
+
2465
+ Usage: car notes accounts
2466
+
2467
+ Options:
2468
+ -h, --help Print help
2469
+ ```
2470
+
2471
+ #### car notes find
2472
+
2473
+ ```text
2474
+ Free-text note search
2475
+
2476
+ Usage: car notes find [OPTIONS] <QUERY>
2477
+
2478
+ Arguments:
2479
+ <QUERY>
2480
+
2481
+ Options:
2482
+ --limit <LIMIT> [default: 50]
2483
+ -h, --help Print help
2484
+ ```
2485
+
2486
+ ### car reminders
2487
+
2488
+ ```text
2489
+ macOS Reminders integration
2490
+
2491
+ Usage: car reminders <COMMAND>
2492
+
2493
+ Commands:
2494
+ lists List Reminders.app lists
2495
+ items List incomplete reminders
2496
+ help Print this message or the help of the given subcommand(s)
2497
+
2498
+ Options:
2499
+ -h, --help Print help
2500
+ ```
2501
+
2502
+ #### car reminders lists
2503
+
2504
+ ```text
2505
+ List Reminders.app lists
2506
+
2507
+ Usage: car reminders lists
2508
+
2509
+ Options:
2510
+ -h, --help Print help
2511
+ ```
2512
+
2513
+ #### car reminders items
2514
+
2515
+ ```text
2516
+ List incomplete reminders
2517
+
2518
+ Usage: car reminders items [OPTIONS]
2519
+
2520
+ Options:
2521
+ --limit <LIMIT> [default: 50]
2522
+ -h, --help Print help
2523
+ ```
2524
+
2525
+ ### car photos
2526
+
2527
+ ```text
2528
+ macOS Photos integration
2529
+
2530
+ Usage: car photos <COMMAND>
2531
+
2532
+ Commands:
2533
+ albums List Photos.app albums
2534
+ help Print this message or the help of the given subcommand(s)
2535
+
2536
+ Options:
2537
+ -h, --help Print help
2538
+ ```
2539
+
2540
+ #### car photos albums
2541
+
2542
+ ```text
2543
+ List Photos.app albums
2544
+
2545
+ Usage: car photos albums
2546
+
2547
+ Options:
2548
+ -h, --help Print help
2549
+ ```
2550
+
2551
+ ### car bookmarks
2552
+
2553
+ ```text
2554
+ Browser bookmark integration
2555
+
2556
+ Usage: car bookmarks <COMMAND>
2557
+
2558
+ Commands:
2559
+ list List Safari bookmarks
2560
+ help Print this message or the help of the given subcommand(s)
2561
+
2562
+ Options:
2563
+ -h, --help Print help
2564
+ ```
2565
+
2566
+ #### car bookmarks list
2567
+
2568
+ ```text
2569
+ List Safari bookmarks
2570
+
2571
+ Usage: car bookmarks list [OPTIONS]
2572
+
2573
+ Options:
2574
+ --limit <LIMIT> [default: 100]
2575
+ -h, --help Print help
2576
+ ```
2577
+
2578
+ ### car files
2579
+
2580
+ ```text
2581
+ Account-backed file locations
2582
+
2583
+ Usage: car files <COMMAND>
2584
+
2585
+ Commands:
2586
+ locations List standard account-backed file locations
2587
+ help Print this message or the help of the given subcommand(s)
2588
+
2589
+ Options:
2590
+ -h, --help Print help
2591
+ ```
2592
+
2593
+ #### car files locations
2594
+
2595
+ ```text
2596
+ List standard account-backed file locations
2597
+
2598
+ Usage: car files locations
2599
+
2600
+ Options:
2601
+ -h, --help Print help
2602
+ ```
2603
+
2604
+ ### car keychain
2605
+
2606
+ ```text
2607
+ OS keychain integration
2608
+
2609
+ Usage: car keychain <COMMAND>
2610
+
2611
+ Commands:
2612
+ status Backend availability status
2613
+ help Print this message or the help of the given subcommand(s)
2614
+
2615
+ Options:
2616
+ -h, --help Print help
2617
+ ```
2618
+
2619
+ #### car keychain status
2620
+
2621
+ ```text
2622
+ Backend availability status
2623
+
2624
+ Usage: car keychain status
2625
+
2626
+ Options:
2627
+ -h, --help Print help
2628
+ ```
2629
+
2630
+ ### car health
2631
+
2632
+ ```text
2633
+ Wearable / activity data (HealthKit + Fitbit/Garmin/Oura/etc.)
2634
+
2635
+ Usage: car health <COMMAND>
2636
+
2637
+ Commands:
2638
+ status Backend availability + guidance
2639
+ sleep Sleep windows in an ISO-8601 time range
2640
+ workouts Workouts in an ISO-8601 time range
2641
+ activity Daily activity summaries across a date range (YYYY-MM-DD)
2642
+ help Print this message or the help of the given subcommand(s)
2643
+
2644
+ Options:
2645
+ -h, --help Print help
2646
+ ```
2647
+
2648
+ #### car health status
2649
+
2650
+ ```text
2651
+ Backend availability + guidance
2652
+
2653
+ Usage: car health status
2654
+
2655
+ Options:
2656
+ -h, --help Print help
2657
+ ```
2658
+
2659
+ #### car health sleep
2660
+
2661
+ ```text
2662
+ Sleep windows in an ISO-8601 time range
2663
+
2664
+ Usage: car health sleep --start <START> --end <END>
2665
+
2666
+ Options:
2667
+ --start <START>
2668
+ --end <END>
2669
+ -h, --help Print help
2670
+ ```
2671
+
2672
+ #### car health workouts
2673
+
2674
+ ```text
2675
+ Workouts in an ISO-8601 time range
2676
+
2677
+ Usage: car health workouts --start <START> --end <END>
2678
+
2679
+ Options:
2680
+ --start <START>
2681
+ --end <END>
2682
+ -h, --help Print help
2683
+ ```
2684
+
2685
+ #### car health activity
2686
+
2687
+ ```text
2688
+ Daily activity summaries across a date range (YYYY-MM-DD)
2689
+
2690
+ Usage: car health activity --start <START> --end <END>
2691
+
2692
+ Options:
2693
+ --start <START>
2694
+ --end <END>
2695
+ -h, --help Print help
2696
+ ```
2697
+
2698
+ ### car install
2699
+
2700
+ ```text
2701
+ Install a contributed agent — from a local directory OR a registry reference (Parslee-ai/car#182
2702
+ phases 4 + 5).
2703
+
2704
+ A local directory MUST contain a `manifest.toml` per the bundle spec. A registry reference is
2705
+ `<namespace>/<name>[@<version>]` (e.g. `parslee/ui-improver` or `parslee/ui-improver@1.2.3`); it is
2706
+ resolved against the catalog at `--registry` and then handed to the SAME local-install path. Either
2707
+ way, install-time validation runs against the daemon's host capability advertisement before the
2708
+ agent is adopted.
2709
+
2710
+ Usage: car install [OPTIONS] <PATH>
2711
+
2712
+ Arguments:
2713
+ <PATH>
2714
+ Either a local path to a directory containing `manifest.toml` (or the file itself), OR a
2715
+ registry reference `<namespace>/<name>[@<version>]`. An existing filesystem path wins;
2716
+ otherwise a `namespace/name` shape is resolved via the registry
2717
+
2718
+ Options:
2719
+ --registry <REGISTRY>
2720
+ Registry source for `<namespace>/<name>` references: an `http(s)://…/index.json` URL or a
2721
+ LOCAL registry directory (or `file://` URL). Defaults to the public mirror. The private
2722
+ source needs a token — set `CAR_REGISTRY_TOKEN`
2723
+
2724
+ [default: https://raw.githubusercontent.com/Parslee-ai/car-releases/main/index.json]
2725
+
2726
+ --url <URL>
2727
+ WebSocket URL of the running car-server daemon
2728
+
2729
+ [default: ws://127.0.0.1:9100/]
2730
+
2731
+ --json
2732
+ Output as JSON instead of human-readable
2733
+
2734
+ -h, --help
2735
+ Print help (see a summary with '-h')
2736
+ ```
2737
+
2738
+ ### car ls
2739
+
2740
+ ```text
2741
+ List every installed contributed agent (Parslee-ai/car#182 phase 4). Calls the daemon's
2742
+ `agents.list` and renders the result. Long alias: `agents`
2743
+
2744
+ Usage: car ls [OPTIONS]
2745
+
2746
+ Options:
2747
+ --url <URL> WebSocket URL of the running car-server daemon [default: ws://127.0.0.1:9100/]
2748
+ --json Output as JSON instead of a human table
2749
+ -h, --help Print help
2750
+ ```
2751
+
2752
+ ### car inspect
2753
+
2754
+ ```text
2755
+ Inspect a single installed agent (Parslee-ai/car#182 phase 4). Shows the on-disk manifest plus the
2756
+ supervisor's current status. Resolves unqualified names to the highest installed semver per the
2757
+ contributed-agents proposal
2758
+
2759
+ Usage: car inspect [OPTIONS] <ID>
2760
+
2761
+ Arguments:
2762
+ <ID> Agent id, or `<namespace>/<name>[@<version>]`
2763
+
2764
+ Options:
2765
+ --url <URL> WebSocket URL of the running car-server daemon [default: ws://127.0.0.1:9100/]
2766
+ --json Output as JSON
2767
+ -h, --help Print help
2768
+ ```
2769
+
2770
+ ### car start
2771
+
2772
+ ```text
2773
+ Start an installed contributed agent
2774
+
2775
+ Usage: car start [OPTIONS] <ID>
2776
+
2777
+ Arguments:
2778
+ <ID> Agent id, or `<namespace>/<name>[@<version>]`
2779
+
2780
+ Options:
2781
+ --url <URL> WebSocket URL of the running car-server daemon [default: ws://127.0.0.1:9100/]
2782
+ -h, --help Print help
2783
+ ```
2784
+
2785
+ ### car stop
2786
+
2787
+ ```text
2788
+ Stop an installed contributed agent
2789
+
2790
+ Usage: car stop [OPTIONS] <ID>
2791
+
2792
+ Arguments:
2793
+ <ID> Agent id, or `<namespace>/<name>[@<version>]`
2794
+
2795
+ Options:
2796
+ --url <URL> WebSocket URL of the running car-server daemon [default: ws://127.0.0.1:9100/]
2797
+ -h, --help Print help
2798
+ ```
2799
+
2800
+ ### car restart
2801
+
2802
+ ```text
2803
+ Restart an installed contributed agent
2804
+
2805
+ Usage: car restart [OPTIONS] <ID>
2806
+
2807
+ Arguments:
2808
+ <ID> Agent id, or `<namespace>/<name>[@<version>]`
2809
+
2810
+ Options:
2811
+ --url <URL> WebSocket URL of the running car-server daemon [default: ws://127.0.0.1:9100/]
2812
+ -h, --help Print help
2813
+ ```
2814
+
2815
+ ### car tail-log
2816
+
2817
+ ```text
2818
+ Tail the most recent stdout/stderr lines captured from a supervised agent (Parslee-ai/car#231 §5.2).
2819
+ Calls the daemon's `agents.tail_log`. Closes the DX gap where the daemon captured logs to
2820
+ `~/.car/logs/` (`%USERPROFILE%\.car\logs\` on Windows) but offered no CLI surface to read them. Long
2821
+ alias: `logs`
2822
+
2823
+ Usage: car tail-log [OPTIONS] <ID>
2824
+
2825
+ Arguments:
2826
+ <ID> Agent id, or `<namespace>/<name>[@<version>]`
2827
+
2828
+ Options:
2829
+ -n, --lines <LINES> Number of trailing lines to show [default: 100]
2830
+ --url <URL> WebSocket URL of the running car-server daemon [default:
2831
+ ws://127.0.0.1:9100/]
2832
+ --json Output as JSON (`{ "lines": [...] }`)
2833
+ -h, --help Print help
2834
+ ```
2835
+
2836
+ ### car uninstall
2837
+
2838
+ ```text
2839
+ Uninstall a contributed agent (Parslee-ai/car#182 phase 4). Stops the running child if any, removes
2840
+ the manifest from `~/.car/agents/<id>/`, and reaps the legacy `agents.json` entry. Idempotent
2841
+
2842
+ Usage: car uninstall [OPTIONS] <ID>
2843
+
2844
+ Arguments:
2845
+ <ID> Agent id, or `<namespace>/<name>[@<version>]`
2846
+
2847
+ Options:
2848
+ --url <URL> WebSocket URL of the running car-server daemon [default: ws://127.0.0.1:9100/]
2849
+ -h, --help Print help
2850
+ ```
2851
+
2852
+ ### car schedule
2853
+
2854
+ ```text
2855
+ Schedule commands to run on a cadence (launchd / cron / schtasks)
2856
+
2857
+ Usage: car schedule <COMMAND>
2858
+
2859
+ Commands:
2860
+ add Schedule a command to run on a cadence
2861
+ list List scheduled commands and whether each is OS-durable
2862
+ remove Remove a scheduled command: drops any OS schedule and deletes the task
2863
+ reconcile Reconcile OS schedules against the task store, reaping orphans
2864
+ help Print this message or the help of the given subcommand(s)
2865
+
2866
+ Options:
2867
+ -h, --help Print help
2868
+ ```
2869
+
2870
+ #### car schedule add
2871
+
2872
+ ```text
2873
+ Schedule a command to run on a cadence.
2874
+
2875
+ The cadence is expressed once and CAR picks the backend: durable schedules install to the OS
2876
+ (launchd / cron / schtasks) so they fire even when car-server is down.
2877
+
2878
+ Usage: car schedule add [OPTIONS] --name <NAME> -- <COMMAND>...
2879
+
2880
+ Arguments:
2881
+ <COMMAND>...
2882
+ The program to run, then its arguments. Put it after `--`, e.g. `car schedule add --name
2883
+ backup --cron "0 3 * * *" -- /usr/bin/rsync -a src dst`
2884
+
2885
+ Options:
2886
+ --name <NAME>
2887
+ Human-readable name for the task
2888
+
2889
+ --cron <CRON>
2890
+ Cron expression, e.g. "0 9 * * *" for 9am daily. `*/N` forms are normalized so the same
2891
+ input works on macOS and Linux
2892
+
2893
+ --every <EVERY>
2894
+ Interval between runs, in seconds
2895
+
2896
+ --no-durable
2897
+ Run via the in-daemon timer instead of the OS scheduler. Fires only while car-server is
2898
+ up, and misses anything scheduled while it is down. Interval cadences only
2899
+
2900
+ --working-dir <WORKING_DIR>
2901
+ Working directory for the command
2902
+
2903
+ -h, --help
2904
+ Print help (see a summary with '-h')
2905
+ ```
2906
+
2907
+ #### car schedule list
2908
+
2909
+ ```text
2910
+ List scheduled commands and whether each is OS-durable
2911
+
2912
+ Usage: car schedule list [OPTIONS]
2913
+
2914
+ Options:
2915
+ --json Emit raw JSON instead of a table
2916
+ -h, --help Print help
2917
+ ```
2918
+
2919
+ #### car schedule remove
2920
+
2921
+ ```text
2922
+ Remove a scheduled command: drops any OS schedule and deletes the task
2923
+
2924
+ Usage: car schedule remove <ID>
2925
+
2926
+ Arguments:
2927
+ <ID> Task id, or the full OS label
2928
+
2929
+ Options:
2930
+ -h, --help Print help
2931
+ ```
2932
+
2933
+ #### car schedule reconcile
2934
+
2935
+ ```text
2936
+ Reconcile OS schedules against the task store, reaping orphans.
2937
+
2938
+ Run this if schedules were left behind by an interrupted uninstall, or after editing `~/.car/tasks/`
2939
+ by hand.
2940
+
2941
+ Usage: car schedule reconcile
2942
+
2943
+ Options:
2944
+ -h, --help
2945
+ Print help (see a summary with '-h')
2946
+ ```
2947
+
2948
+ ### car registry
2949
+
2950
+ ```text
2951
+ Registry tooling for the contributed-agents registry (Parslee-ai/car#182 phase 5): `digest` a
2952
+ manifest, or `validate` a registry directory (the CI gate run by Parslee-ai/car-agent-registry)
2953
+
2954
+ Usage: car registry <COMMAND>
2955
+
2956
+ Commands:
2957
+ digest Print the canonical SHA-256 hex digest of a manifest.toml
2958
+ validate Validate a registry directory (index.json + manifests + schema). This is the registry CI
2959
+ gate
2960
+ schema Print the canonical registry index JSON Schema (the single source of truth, embedded in
2961
+ this binary) to stdout. Regenerate the registry repo's copy with: `car registry schema >
2962
+ schema/index.schema.json`
2963
+ help Print this message or the help of the given subcommand(s)
2964
+
2965
+ Options:
2966
+ -h, --help Print help
2967
+ ```
2968
+
2969
+ #### car registry digest
2970
+
2971
+ ```text
2972
+ Print the canonical SHA-256 hex digest of a manifest.toml
2973
+
2974
+ Usage: car registry digest <MANIFEST>
2975
+
2976
+ Arguments:
2977
+ <MANIFEST> Path to the agent's manifest.toml
2978
+
2979
+ Options:
2980
+ -h, --help Print help
2981
+ ```
2982
+
2983
+ #### car registry validate
2984
+
2985
+ ```text
2986
+ Validate a registry directory (index.json + manifests + schema). This is the registry CI gate
2987
+
2988
+ Usage: car registry validate <DIR>
2989
+
2990
+ Arguments:
2991
+ <DIR> Path to the registry directory containing `index.json` and `schema/index.schema.json`
2992
+
2993
+ Options:
2994
+ -h, --help Print help
2995
+ ```
2996
+
2997
+ #### car registry schema
2998
+
2999
+ ```text
3000
+ Print the canonical registry index JSON Schema (the single source of truth, embedded in this binary)
3001
+ to stdout. Regenerate the registry repo's copy with: `car registry schema >
3002
+ schema/index.schema.json`
3003
+
3004
+ Usage: car registry schema
3005
+
3006
+ Options:
3007
+ -h, --help Print help
3008
+ ```
3009
+
3010
+ ### car publish
3011
+
3012
+ ```text
3013
+ Publish a contributed agent to the registry (Parslee-ai/car#182 phase 5). Reads a local agent's
3014
+ `manifest.toml`, signs it for `--audience public` (ed25519 key at `$CAR_PUBLISH_KEY_PATH`), stages
3015
+ it at the versioned `agents/<namespace>/<name>/<version>/` path, updates `index.json` + the README
3016
+ catalog, re-runs the EXACT `car registry validate` CI gate locally, and opens a PR against the
3017
+ registry repo. Aborts (no PR) on a missing signing key or a validation failure
3018
+
3019
+ Usage: car publish [OPTIONS] <PATH>
3020
+
3021
+ Arguments:
3022
+ <PATH> Path to a local agent directory containing `manifest.toml`, OR the `manifest.toml` file
3023
+ itself
3024
+
3025
+ Options:
3026
+ --audience <AUDIENCE> Catalog audience for this agent. `internal` rows are
3027
+ unsigned; `public` rows are signed with the publisher's ed25519 key (loaded from
3028
+ `$CAR_PUBLISH_KEY_PATH`) and carry the publisher fields in the index [default: internal]
3029
+ [possible values: internal, public]
3030
+ --registry-repo <REGISTRY_REPO> The registry repository (`owner/repo`) the PR is opened
3031
+ against [default: Parslee-ai/car-agent-registry]
3032
+ --category <CATEGORY> Catalog category written into the index row (a required,
3033
+ min-length-1 schema field). Free-form publisher copy; scanned by the internal-infra denylist
3034
+ for public agents [default: general]
3035
+ --registry-dir <REGISTRY_DIR> Stage into this EXISTING local registry clone instead of `gh
3036
+ repo clone`-ing a fresh one. Required for offline testing — when set, the staged branch is
3037
+ created locally and (if the clone has no `origin` remote) the `gh pr create` step is skipped,
3038
+ printing the staged branch name instead
3039
+ -h, --help Print help
3040
+ ```
3041
+
3042
+ ### car help
3043
+
3044
+ ```text
3045
+ Print this message or the help of the given subcommand(s)
3046
+
3047
+ Usage: car help [COMMAND]...
3048
+
3049
+ Arguments:
3050
+ [COMMAND]... Print help for the subcommand(s)
3051
+ ```