# Operating TOVIO as an agent
GENERATED by scripts/generate_llms_txt.py from docs/specs/cli.md and docs/specs/error-catalog.md in https://github.com/Tovio-VCS/tovio — do not edit by hand; the specs are the source of truth.
License: Apache-2.0 (this corpus is part of the open TOVIO specification surface).
TOVIO is a version control system with cryptographically-enforced per-file permissions, first-class AI-agent authorization (capability tokens + provenance), change identity that survives history rewriting, first-class conflict objects, and binary parity without LFS. There is NO staging area: the working copy auto-snapshots into the current change. Branches are called lanes. Changes have stable `chg:` IDs distinct from commit hashes.
## Machine contract
- Every command accepts `--json` (structured output, errors in the envelope below) and `--quiet`; the two must not be combined. `--json` is sugar for `--format json`. Errors never disappear under `--quiet`.
- JSON error envelope: `{"error": {"code": "TVO--", "title", "cause", "remediation": [{"text", "command"}], "context": {...}, "exit_code"}}`. The `code` and per-code `context` keys are a stable compatibility surface.
- Every remediation `command` is runnable verbatim as printed. When a command fails, run the primary recovery command from the recovery index below (or from the error's own remediation list, which is more specific).
### Exit-code classes
- exit 0: Success (possibly with `⚠`/`✓` follow-ups; conflicts are success — §4)
- exit 1: Generic / uncategorized failure (areas: fallback plus operational WS failures)
- exit 2: CLI/configuration usage error (bad flags, unknown command, invalid Workspace definition/removal request) (areas: CLI, selected WS codes)
- exit 7: Storage / integrity (corruption, obliteration, I/O) (areas: STORE)
- exit 11: Crypto / key material (areas: KEY, CRYPTO)
- exit 13: Permission / policy / capability denial (areas: PERM, TOKEN, LOCK)
- exit 17: Sync / wire protocol (areas: SYNC)
- exit 19: Change / op-log (undo/redo/history) (areas: OP)
- exit 21: Migration / bridge (areas: MIG)
## The everyday surface
```
TOVIO — the version control system built for the AI era
tovio status Show current state (what change am I on, what's modified, conflicts)
tovio commit Save the current change and start the next
tovio sync Share and receive changes (push + pull in one)
tovio lane Create, list, and delete lanes
tovio switch Move to another lane or change
tovio merge Combine lanes (conflicts are stored, never blocking)
tovio land Land a lane onto another lane (auto-rebases the stack)
tovio log Browse history
tovio diff Compare versions
tovio change Manage work in progress (new, list, show, switch, health, pull, split, absorb)
tovio conflicts View and resolve open conflicts
tovio undo Undo any operation — any operation
Get started: tovio quickstart
Team features: tovio help --team (access, agents, keys, identity, audit)
Advanced config: tovio help --advanced (rebase, obliterate, behavioral, git)
Everything: tovio help --all
Feedback: https://tovio.dev/feedback (ideas, bugs, friction)
Run "tovio help " for details on any command.
```
## Full command tier map
- init: Everyday
- policy: Team
- quickstart: Everyday
- access: Team
- status: Everyday
- identity: Team
- commit: Everyday
- key: Team
- sync: Everyday
- agent: Team
- lane: Everyday
- audit: Team
- switch: Everyday
- remote: Team
- merge: Everyday
- amend: Advanced
- log: Everyday
- rebase: Advanced
- diff: Everyday
- squash: Advanced
- undo: Everyday
- reorder: Advanced
- conflicts: Everyday
- absorb: Advanced
- change: Everyday
- split: Advanced
- clone: Everyday
- redo: Advanced
- fetch: Team
- oplog: Advanced
- push: Team
- show: Advanced
- land: Everyday
- blame: Advanced
- review: Team
- obliterate: Advanced
- lock (acquire/list/release): Team
- behavioral: Advanced
- issue: Team
- semantic: Advanced
- release: Team
- device: Team
- git: Advanced
- restore: Advanced
- cherry-pick: Advanced
- revert: Advanced
- bisect: Advanced
- grep: Advanced
- completions / env: Advanced
- fsck / gc / info / version / build-check: Advanced
- mcp serve / relay serve: Advanced
- serve: Team
## Command synopses
### tovio init (Everyday)
```
tovio init [] [--mode simple|team|agentic] [--bare] [--key-authority ]
```
### tovio clone (Everyday)
```
tovio clone []
[--sparse ]… # which SUBTREE (repeatable) — §4.6 path scope
[--depth ] # how much HISTORY (tip + last n commits)
[--filter ]… # which OBJECT CLASS/SIZE — blob:none | blob:limit= | tree:0
[--blobless] [--treeless] # ergonomic aliases for --filter blob:none / tree:0
[--perm-scope] # only content the local identity can decrypt
[--no-attachments] # defer the Phase-4 semantic/behavioral closure
```
### tovio status (Everyday)
```
tovio status [--json] [-q]
```
### tovio commit (Everyday)
```
tovio commit [-m ] [--intent ] [--amend]
```
### tovio log (Everyday)
```
tovio log [] [--graph] [--no-graph] [--first-parent] [--all] [--limit ] [--oneline] [--why]
[--no-pager] [--entity agent|human] [--agents] [--humans] [--agent-id ] [--task-id ]
[--changes-only] [--format ] [--template ] [--date relative|absolute]
[--descendants ] [--conflicted] [-S ] [-G ]
```
### tovio diff (Everyday)
```
tovio diff
```
### tovio oplog (Advanced)
```
tovio oplog [--limit ] [--format ]
```
### tovio change (Everyday)
```
tovio change new [] [--base ] [--draft] # new change (stacks on current; --base independent; --draft private)
tovio change list [--stack] # list changes (alias: tovio cl); --stack shows the dependency tree
tovio change show # show a change: current commit + full lineage
tovio change switch # move the working copy to a change (alias of `tovio switch`)
tovio change health # conflicts? clean ancestor? landable? stale?
tovio change describe # set/replace a change's description
tovio change split [] [--paths ] # divide a change (optionally by paths) — enables partial land
tovio change absorb # distribute fixups into the changes that introduced them
tovio change rebase [--onto ] # re-parent a change/range (top-level alias rebases current stack)
tovio change propose [--reviewers ] [--sovereign] # send a change for review (PR equiv); --sovereign = Tier-2 contribution hosted in your own Forge
tovio change pull # pull a teammate's change as a read-only dependency
tovio change promote # promote a draft into a normal (shareable) change
tovio change abandon # set a change aside (history kept in your personal archive)
tovio change restore # recover an abandoned change
```
### tovio amend (Advanced)
```
tovio amend [-m ] [--intent ]
```
### tovio rebase (Advanced)
```
tovio rebase [--onto ]
tovio change rebase [--onto ]
tovio change rebase .. [--onto ]
```
### tovio cherry-pick (Advanced)
```
tovio cherry-pick … [--onto ] [--keep-id | --fork]
tovio cherry-pick .. [--onto ] [--keep-id | --fork]
```
### tovio revert (Advanced)
```
tovio revert … [-m ]
```
### tovio squash (Advanced)
```
tovio squash [--into ]
```
### tovio reorder (Advanced)
```
tovio reorder --before
```
### tovio blame (Advanced)
```
tovio blame [--why]
```
### tovio bisect (Advanced)
```
tovio bisect start [--bad ] [--good ]… [--run ] [--symbol [--only]] [--no-checkout]
tovio bisect good | bad | skip […]
tovio bisect run
tovio bisect status | reset []
```
### tovio grep (Advanced)
```
tovio grep [] [-F|--fixed-strings] [-i|--ignore-case] [--path ]
```
### tovio sync (Everyday)
```
tovio sync [] [--push] [--pull] [--all] [--isolate] [--refetch ]
```
### tovio remote (Team)
```
tovio remote add [--cert ]
tovio remote list
tovio remote show
tovio remote remove # alias: rm
```
### tovio lane (Everyday)
```
tovio lane create [--from ]
tovio lane list
tovio lane delete
```
### tovio switch (Everyday)
```
tovio switch
```
### tovio land (Everyday)
```
tovio land […] [--into ] [--rebase]
```
### tovio merge (Everyday)
```
tovio merge [--into ]
```
### tovio build-check (Advanced)
```
tovio build-check
```
### tovio policy (Team)
```
tovio policy set --read [--write ]
tovio policy list
tovio policy show
tovio policy remove
tovio policy test --identity
tovio policy chunking [--min ] [--average ] [--max ] [--threshold ]
tovio policy chunking --reset
tovio policy signing [--require-commits[=]] [--require-protected-ref-updates[=]]
tovio policy signing --reset
tovio policy audit [--require-for ]... [--minimum-length ]
tovio policy audit --reset
tovio policy protect [--require-review] [--min-approvals ] [--reviewers ] [--reviewer ]... [--required-checks ]
tovio policy protect --remove
tovio policy change-control [--min-approvals ] [--reviewers ] [--reviewer ]... [--required-checks ]
tovio policy change-control --remove
tovio policy workflow set [--force]
tovio policy workflow show
tovio policy workflow check
tovio policy workflow clear
```
### tovio access (Team)
```
tovio access check [--write] # diagnose read/write access for your identity (DX-020)
tovio access request [--write] [--attr ] [--from ]
tovio access grant [--role ] [--team ] [--paths ] # KA: authorize an identity
tovio access policy show # alias surface into `tovio policy show`
tovio access policy list
```
### tovio review (Team)
```
tovio review # open a proposal's diff for review
tovio review --approve | --request-changes [--comment ]
```
### tovio identity (Team)
```
tovio identity create [--name ] [--email ]
tovio identity list
tovio identity show []
tovio identity attribute add [--authorized-by ]
```
### tovio key (Team)
```
tovio key status # health: which attributes, expiry, source (DX-021)
tovio key renew [--from ] # renew the attribute certificate
tovio key rotate # rotate local key material
tovio key import # import an exported key (new device)
tovio key sync [--from ] # refresh known identity public keys
```
### tovio device (Team)
```
tovio device enroll [--name ] # on the NEW device: generate + keychain-seal a device key; print its pubkeys + SAS
tovio device approve --pubsig --pubkx [--name ] --code # on a TRUSTED device: SAS-gate + enroll under the owner + re-seal HEAD
tovio device list # devices: the ROOT/first device (the owner identity) + enrolled devices (name, device DID, principal, root?, this machine?)
tovio device revoke [--yes] # drop a device + re-seal to the reduced set (fresh DEK)
```
### tovio agent (Team)
```
tovio agent new --expires [--scope ] [--clearance] [--config ]
tovio agent list
tovio agent show
tovio agent revoke
tovio agent delegate --scope --expires
tovio agent session export --passphrase-file [--expires-in ]
tovio agent intent declare --paths --ttl # non-blocking coordination signal (enterprise)
tovio agent intent check --paths # see overlapping active intents (enterprise)
tovio agent token # print the capability token (for the agent/MCP client)
```
### tovio audit (Team)
```
tovio audit log [--format ]
tovio audit export --format [--output ]
[--tls [--server-name ] [--cert ]]
tovio audit archive [--older-than ] [--dry-run] # default: 365d
tovio audit summary [--last ] # human-friendly view (DX-022)
tovio audit show [--object ] [--token ]
tovio audit verify
```
### tovio behavioral (Advanced)
```
tovio behavioral snapshot [--model-id ] [--prompts ] [--tools ]
[--memory ] [--retrieval ]
[--policy-version