Skip to content

avc snapshot

Walks the project, hashes every tracked file, and creates a content-addressed snapshot in the database. Identical files across snapshots share a single object — storage is automatically deduplicated.

Terminal window
avc snapshot "Before refactor"
avc snapshot "v1.2.0 release" --agent claude --notes "Passed tests"
avc snapshot "WIP" --json
ArgumentRequiredDescription
<label>yesShort human-readable description
FlagDescription
--agent <name>Agent or user name creating the snapshot
--notes <text>Free-form notes attached to the snapshot
--jsonJSON output
{
"id": "snap-xyz789",
"label": "v1.2.0 release",
"timestamp": 1712289600,
"agent_name": "claude",
"files_changed": 42,
"total_size": 1048576,
"notes": "Passed tests",
"branch_id": "br-main",
"success": true
}
  • Every file in the project root, recursively
  • Excluding patterns in .avcignore
  • Excluding .avc/, .git/, .hg/, .svn/, .bzr/ always

The active branch determines which branch the snapshot lands on. Use avc branch list to check.

If you’re on a non-main branch, AVC walks the workspace directory (.avc/workspaces/<branch>/), not the real project root. This is how branch isolation works — snapshots on a branch capture workspace state, the real project is untouched.

On main, the project root is walked directly.