Connect your repo to a dashboard project
Locking and unlocking on your own needs nothing but the free CLI and your free account. But to share access with a teammate, run a CI build, or recover a lost key — you need a project entry on the dashboard. Five seconds; one form.
Create the project in the dashboard
Open sealrepo.dev/app, click New project, give it a name and a short description.
sealrepo.dev/appNew project
Each project represents one repository sealed with the CLI.
acme-billingStripe webhooks + fraud rulesCreate projectCopy the project ID
After creation, the project URL on the dashboard has the form
sealrepo.dev/app/projects/prj_xxxxxxxxxxxx. That last part —prj_xxxxxxxxxxxx— is your project ID.Link the local repo
From inside the repo on your machine, after you've run
sealrepo init:In your-repo/$sealrepo link prj_4f9a8b2c1d0e✓Linked /Users/you/your-repo to “acme-billing” (prj_4f9a8b2c1d0e). Bound 1:1 to this repository.The link is written into the
linkblock of your.sealreporc.json. From now on, every command that involves the dashboard (share, CI tokens, escrow — the optional cloud backup of your key) knows which project to talk to.Commit the .sealreporc.json.sealreporc.jsonis safe to commit. It contains your include / exclude patterns, the project ID, and an opaque hash of your local vault salt (used by the server to bind this project 1:1 to this repo — explained below). None of those are secrets. Committing the file means a teammate who clones the repo can runsealrepo unlockdirectly without re-runningsealrepo link.
One project, one repo
Each project record on sealrepo.dev is permanently bound to a single local repository — the one you first ran sealrepo link from. The CLI sends an opaque hash of your vault salt the first time; the server pins it on the project row. From then on:
- Teammates cloning the same repo share the same salt, so their
sealrepo linkreturns match and Just Works. - A different local repo trying to link the same project is rejected with HTTP 409
project_repo_mismatch. This is the guard that keeps one paid project slot from being reused across multiple unrelated codebases. - Genuinely migrating to a new repo? The project owner can re-pin with
sealrepo link --force prj_…. Force-relink is owner-only and is audit-logged asproject.link.forceon the dashboard.
sealrepo init already refuses at the root of a monorepo to nudge you in that direction.Unlinking vs. removing
There are three different “undo” actions; each does something different:
sealrepo link --removeonly forgets the dashboard association on this checkout. The vault on disk is untouched, the server still has the project, the paid slot is still consumed. Useful when retiring a single machine.- Delete project on the dashboard releases the paid slot and the server-side repo binding. The local vault is left untouched. Owner-only.
sealrepo removepermanently uninstalls sealrepo from this repo: decrypts files back to plaintext, deletesvendor/and the config, and (when linked) emails the project owner immediately. See the Remove sealrepo doc.