Command reference
Run cadvm <command> --help for full flags. All commands operate on the
repository discovered by walking up from the current directory.
| Command | Description |
|---|---|
cadvm init | Create a .cadvm/ repository in the current directory. |
cadvm snapshot -m "msg" | Record a snapshot (commit) of all tracked CAD files (STEP/STP/STL/OBJ). |
cadvm status | Show new / modified / deleted files vs. HEAD. |
cadvm log | Show the commit history of HEAD. |
cadvm show [<rev>] | Show one commit’s details and per-file metadata. |
cadvm diff [<a> <b>] [--json] | Metadata diff (default HEAD~1..HEAD); --json for scripts/agents. |
cadvm checkout <rev> [-- <file>…] | Restore the working tree (or named files) to a revision. |
cadvm branch | List branches. |
cadvm branch <name> | Create a branch at HEAD. |
cadvm branch -d <name> | Delete a branch. |
cadvm switch <name> | Switch branches, restoring their files. |
cadvm revert <rev> | Create a commit that restores HEAD’s parent state. |
cadvm gc [--dry-run | --prune] | Report / delete unreferenced objects. |
cadvm geom-diff <a> <b> [--json] [--files] | Geometric diff of modified files (STEP via OCCT; STL/OBJ pure Rust). --files compares two files on disk, no repo. |
cadvm verify <a> <b> --expect '<m><op><v>'… [--files] | Assert geometric expectations; exit 0/1 (AI gating & CI). --files for two files on disk. |
cadvm view <a> <b> | Generate a standalone 3D HTML viewer of the diff. |
cadvm ui | Interactive full-screen terminal dashboard. |
cadvm mcp | Run an MCP server over stdio — exposes cadvm as tools for AI agents. |
cadvm config [<key>] [<value>] | Get / set / list config (e.g. user.name). |
cadvm completions <shell> | Print a shell completion script. |
Common flags
--force— oncheckout/switch/revert: proceed even when it would overwrite locally modified files or a dirty tree. cadvm never overwrites your work without it.-- <files>— oncheckout/geom-diff/view: restrict to specific files.
Safety rules
switchandrevertrefuse a dirty working tree without--force.checkoutrefuses to overwrite a locally modified file without--force.- Untracked files are never deleted.
gconly deletes with--prune;gcalone is a dry run.
See Typical workflow for examples and the revision syntax.