Repositories
A repository is the unit of storage, access control and usage accounting. The SDKs call it a project; they are the same object.
Creating one
Section titled “Creating one”-
From the organization, choose New repository.
-
Give it a name. The slug is derived from it (lowercased, hyphenated) and must be unique inside the organization.
-
Choose visibility:
Visibility Who can read PRIVATEMembers with access, and invited collaborators. The default. INTERNALAny member of the organization. PUBLICAnyone with the link, read-only. -
Choose a storage mode.
managedis the default. Pickbyosand a storage connection if you want the bytes in your own bucket — the option only appears if your plan includes BYOS and you have a healthy connection. See Bring Your Own S3.
curl -sS -X POST "https://cavsnode.com/api/v1/organizations/acme-ai/repositories" \ -H "Authorization: Bearer $CAVS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Vision Models", "slug": "vision-models", "description": "Trained checkpoints for the vision stack", "visibility": "PRIVATE", "storage_mode": "managed" }'The response includes the repository’s UUID, which is what every repository-scoped API path takes:
/api/v1/repositories/{repoID}/...The repository views
Section titled “The repository views”| Tab | What it gives you |
|---|---|
| Overview | Size, dedup ratio, object count, generation, default branch, recent commits and releases. |
| Files | The indexed file tree at a ref, with per-file size and history. |
| Commits | Commit history, with the artifacts each commit touched. |
| Branches | Every branch, with health flags (stale > 30 days, oversized > 2× the default branch). |
| Releases | Releases derived from tags, with editable name and notes. |
| Storage | Logical vs physical over time, largest folders, biggest objects. |
| Benchmarks | Measured push and pull throughput, dedup and wire savings. |
| Graph | The lineage graph. |
| Activity | The repository event feed. |
| Connect | Copy-paste instructions to wire a Git repository up. |
| Settings | Description, visibility, collaborators, invitations, storage group, deletion. |
Files, Commits, Branches and Releases are backed by the
Git index. Until a repository has been indexed
they show an empty state and the API returns "indexed": false — run
cav repo index --full to populate them.
Reading a repository over the API
Section titled “Reading a repository over the API”export API=https://cavsnode.com/api/v1export REPO=<repository-uuid>export H="Authorization: Bearer $CAVS_TOKEN"
curl -sS "$API/repositories/$REPO" -H "$H" # the recordcurl -sS "$API/repositories/$REPO/overview" -H "$H" # dashboard payloadcurl -sS "$API/repositories/$REPO/usage" -H "$H" # logical/physical/egresscurl -sS "$API/repositories/$REPO/health" -H "$H" # health checkscurl -sS "$API/repositories/$REPO/connect" -H "$H" # setup instructionsObjects, newest first or largest first:
curl -sS "$API/repositories/$REPO/objects?sort=recent&limit=50&skip=0" -H "$H"curl -sS "$API/repositories/$REPO/objects?sort=size&limit=20" -H "$H"Full parameter tables in Repositories API.
Settings you can change
Section titled “Settings you can change”PATCH /repositories/{repoID} accepts the mutable fields — description,
visibility, default branch, storage group. Requires repository.update
(DEVELOPER and above, or a WRITE collaborator override).
curl -sS -X PATCH "$API/repositories/$REPO" \ -H "$H" -H "Content-Type: application/json" \ -d '{"description": "Production checkpoints only", "visibility": "INTERNAL"}'Sharing a repository
Section titled “Sharing a repository”Two mechanisms, both under Settings:
- Collaborators — grant an existing organization member an access override
(
READ,WRITE,ADMIN) that wins over their org role for this repository. - Invitations — invite someone by email who is not in your organization. They get access to this repository only.
Both are covered in Invitations & collaborators.
Health and recommendations
Section titled “Health and recommendations”The worker periodically evaluates each repository and records findings:
curl -sS "$API/repositories/$REPO/health" -H "$H"curl -sS "$API/repositories/$REPO/recommendations?status=open" -H "$H"Typical findings: stale branches, branches much larger than the default,
low dedup ratio suggesting a format that resists chunking, objects that dominate
the repository, unindexed refs. Dismiss one with
POST /repositories/{repoID}/recommendations/{recID}/dismiss.
Deleting a repository
Section titled “Deleting a repository”Requires repository.admin (ADMIN/OWNER, or an ADMIN collaborator).
curl -sS -X DELETE "$API/repositories/$REPO" -H "$H"- Connect a Git repository — wire Git and LFS up.
- Pushing & pulling large files — the day-to-day loop.
- Storage insights — read the numbers.

