<!-- enhance-docs page=reference/cli -->
<!-- enhance-docs release-sha256=dad2e0623acc56ece15d04a4baaff3f1e1f36c2114941c9e110479ef18927c25 -->

# CLI reference

The CLI is optional. Agent workflows use MCP and never require a person to run these commands.

| Command | Purpose |
| --- | --- |
| `enhance-dev canvas create-editable-frame` | Insert one validated primitive subtree beside its source screen as an atomic canvas edit. |
| `enhance-dev canvas create` | Create a canvas and return the id required by canvas-scoped commands. |
| `enhance-dev canvas get` | Read one canvas by id, including access and viewer capabilities. |
| `enhance-dev canvas set-access` | Change how a canvas can be reached by people with its link. |
| `enhance-dev canvas mark-viewed` | Record that the authenticated person has viewed a canvas. |
| `enhance-dev canvas list` | Find canvas ids by collection, title, access, review state, or deletion state. |
| `enhance-dev canvas rename` | Rename a canvas owned by the authenticated person. |
| `enhance-dev canvas set-review-state` | Change the authenticated person’s review state on a canvas. |
| `enhance-dev canvas delete` | Move a canvas to its recoverable bin; retention is currently indefinite. |
| `enhance-dev canvas move` | Move a canvas between the personal shelf and a team shelf. |
| `enhance-dev canvas duplicate` | Copy a canvas and its document into the selected shelf. |
| `enhance-dev canvas delete-permanently` | Permanently delete a canvas already in the recoverable bin. |
| `enhance-dev canvas restore` | Restore a canvas from the recoverable bin. |
| `enhance-dev canvas inspect` | Read the canonical browser URL for a canvas, its exact document version, kind counts, bounds, and next inspection commands. |
| `enhance-dev canvas tree` | List stable node ids, hierarchy, kinds, and world-space boxes for one canvas. |
| `enhance-dev canvas node` | Read one stable node with its exact styles, props, children, and current version. |
| `enhance-dev canvas selection` | Read the accountable person’s most recently changed live browser selection at an exact canvas version. |
| `enhance-dev canvas realtime activity begin` | Show that this agent has started work on a canvas. |
| `enhance-dev canvas realtime activity renew` | Renew an active agent-work indicator before its lease expires. |
| `enhance-dev canvas realtime activity end` | Remove an agent-work indicator after work completes. |
| `enhance-dev canvas document get` | Read a canvas document, version, and attached screen manifest. |
| `enhance-dev canvas document save` | Replace a canvas document. A stale base version exits 5 as CONFLICT; read, merge, and retry. |
| `enhance-dev canvas version list` | List retained versions of a canvas, newest first. |
| `enhance-dev canvas version get` | Read the document and screen manifest retained for one canvas version. |
| `enhance-dev canvas version name` | Name the current or a retained canvas version so it is kept. |
| `enhance-dev canvas version update-metadata` | Replace the title and description of a named canvas version. |
| `enhance-dev canvas version remove-name` | Remove a canvas version’s name and return it to automatic retention. |
| `enhance-dev canvas render import-source` | Import one source through the canonical editable-primitives compiler. |
| `enhance-dev canvas render get-import` | Inspect the progress or committed result of a primitive import. |
| `enhance-dev canvas render cancel-import` | Cancel a queued primitive import before compilation begins. |
| `enhance-dev canvas participants list` | List people with direct access to a canvas. |
| `enhance-dev canvas participants set-access` | Change a canvas participant between view and comment access. |
| `enhance-dev canvas participants revoke` | Remove a participant’s direct access to a canvas. |
| `enhance-dev canvas invites create` | Invite an email address to access a canvas and return the pending invitation. |
| `enhance-dev canvas invites accept` | Accept a canvas invitation using its secret token. |
| `enhance-dev canvas invites preview` | Inspect what an invitation grants before accepting it. |
| `enhance-dev canvas invites list` | List pending and expired invitations for a canvas. |
| `enhance-dev canvas invites revoke` | Revoke a pending canvas invitation. |
| `enhance-dev canvas invites resend` | Replace a pending canvas invitation token and send the invitation again. |
| `enhance-dev canvas apply` | Apply an atomic canvas edit batch and return its affected bounds. |
| `enhance-dev canvas guide` | Agent design workflow. |
| `enhance-dev canvas get-jsx` | Read concise subtree JSX. |
| `enhance-dev canvas get-computed-styles` | Read effective node CSS. |
| `enhance-dev canvas write-html` | Compile HTML/CSS primitives. |
| `enhance-dev canvas create-artboard` | Create a top-level frame. |
| `enhance-dev canvas set-text-content` | Set Text node values. |
| `enhance-dev canvas rename-nodes` | Rename layers. |
| `enhance-dev canvas delete-nodes` | Delete node subtrees. |
| `enhance-dev canvas update-styles` | Update visual and layout styles. |
| `enhance-dev canvas duplicate-nodes` | Deep-clone node subtrees. |
| `enhance-dev canvas move-nodes` | Reorder or reparent nodes. |
| `enhance-dev canvas work begin` | Start visible agent activity. |
| `enhance-dev canvas work update` | Move visible agent activity. |
| `enhance-dev canvas finish-working-on-nodes` | End visible agent activity. |
| `enhance-dev comment list` | List comment threads and replies on a canvas. |
| `enhance-dev comment start` | Start a comment thread anchored to a canvas location. |
| `enhance-dev comment resolve` | Set a thread resolved or reopened with an explicit target state. |
| `enhance-dev comment react` | Set or remove one emoji reaction on a comment message. |
| `enhance-dev comment reply` | Add a reply to an existing comment thread. |
| `enhance-dev comment edit` | Replace the body of a comment message authored by this person. |
| `enhance-dev comment move` | Move a comment thread anchor to a new canvas location. |
| `enhance-dev comment delete` | Delete an entire comment thread, or tombstone one message when its id is set. |
| `enhance-dev comment attention` | List every open comment needing attention; source metadata is included when a capture has it. |
| `enhance-dev organisation list` | List teams the authenticated person belongs to. |
| `enhance-dev organisation create` | Create a team and make the authenticated person its owner. |
| `enhance-dev organisation update` | Rename a team managed by the authenticated person. |
| `enhance-dev organisation delete` | Delete a team and rehome every canvas to its creator’s personal shelf. |
| `enhance-dev organisation people list` | List the people and roles in a team. |
| `enhance-dev organisation people add` | Add an existing account by email; use organisation invites create when no account exists. |
| `enhance-dev organisation people set-role` | Change a team member between administrator and member. |
| `enhance-dev organisation people remove` | Remove a person from a team without deleting their account. |
| `enhance-dev organisation people transfer-ownership` | Transfer team ownership to another current member. |
| `enhance-dev organisation invites create` | Invite an email address to join a team with the selected role. |
| `enhance-dev organisation invites list` | List pending and expired invitations for a team. |
| `enhance-dev organisation invites revoke` | Revoke a pending team invitation. |
| `enhance-dev organisation invites resend` | Replace a team invitation token and send it again. |
| `enhance-dev organisation invites preview` | Inspect a team invitation before accepting it. |
| `enhance-dev organisation invites accept` | Accept a team invitation using its secret token. |
| `enhance-dev person me` | Resolve the current person and authentication kind. |
| `enhance-dev person update-display-name` | Change the name shown for the current person throughout Enhance. |
| `enhance-dev person recipients search` | Find people who can be invited by matching a name or email. |
| `enhance-dev person recipients recent` | List people recently selected as sharing recipients. |
| `enhance-dev prototype publish` | Package and publish an unpacked static build directory. The CLI creates the upload artifact. |
| `enhance-dev recording start` | Start a recording attempt and receive its first signed chunk upload. |
| `enhance-dev recording append-chunk` | Commit metadata for the uploaded DOM chunk at this index, then reserve the next upload. |
| `enhance-dev recording append-audio-chunk` | Commit metadata for the uploaded audio chunk at this index, then reserve the next upload. |
| `enhance-dev recording complete` | Finish a recording and report any missing event or audio chunks. |
| `enhance-dev recording get` | Read one recording and its replay metadata by id. |
| `enhance-dev recording discard` | Abandon an incomplete recording attempt and its uploaded chunks. |
| `enhance-dev recording list` | List recordings attached to one canvas. |
| `enhance-dev recording delete` | Soft-delete a completed recording while preserving screens and clearing their provenance. |
| `enhance-dev recording refresh-upload` | Replace an expired signed upload for a recording chunk. |
| `enhance-dev recording confirm-upload` | Confirm that a repaired recording chunk reached storage. |
| `enhance-dev recording snapshot` | Persist one visually accepted recording moment as an ordinary screen and frame. |
| `enhance-dev recording-asset reserve` | Reserve signed uploads for external assets used by a recording. |
| `enhance-dev recording-asset confirm` | Confirm which reserved recording assets reached storage. |
| `enhance-dev screen create` | Reserve a signed upload for a captured page and return its screen id. |
| `enhance-dev screen complete` | Confirm a captured page after its bytes have been uploaded. |
| `enhance-dev screen delete` | Delete an unattached captured page owned by this person. |
| `enhance-dev transcript retry` | Retry a failed transcription for one recording. |
| `enhance-dev transcript get` | Read timestamped speech cues as candidate moments; render and inspect candidate PNGs before snapshotting. |
| `enhance-dev auth login` | Authenticate in a browser, then store a revocable agent credential. |
| `enhance-dev auth status` | Resolve the stored token to its person, label, and expiry. |
| `enhance-dev auth logout` | Delete the local credential file; this does not revoke the server token. |
| `enhance-dev doctor` | Check the installed binary, API reachability, and credential file without changes. |
| `enhance-dev fixture screen` | Upload one captured page and return its reusable screen id. |
| `enhance-dev fixture recording` | Upload NDJSON rrweb events as a walkthrough; chunk offsets start at the first event. |
| `enhance-dev fixture world` | Create a team, a canvas, and zero or more attached screen fixtures. |
| `enhance-dev commands` | Emit the command inventory as NDJSON without walking the help tree. |
