Backup and restore
Spec0’s data lives in ~/Library/Application Support/Spec0/. Backup and restore are explicit, user-driven actions — nothing is uploaded anywhere.
What’s in a backup
A Spec0 backup is a single .tar.gz containing:
- A consistent snapshot of every SQLite database (app DB plus one per project), taken via
sqlite3_backupwhile the app keeps running. - Every artifact byte under
artifacts/— attachments, screenshots, video proofs, etc. - Project verification guides (markdown).
- Any template overrides you’ve set.
- A
manifest.jsoncapturing the schema versions of each DB at backup time.
It does not include the agent’s repo. Spec0 never touches your code; your code lives in your git repo, which has its own backup story.
Make a backup
- Settings → Backup → Create backup.
- Pick a destination — anywhere outside Spec0’s data dir.
- Wait for the progress bar. Large artifact stores take longer; the app keeps running.
You can also script this — the export uses an IPC channel with a clear path argument. See the README in the data dir.
Restore
- Settings → Backup → Restore from backup.
- Choose the tarball.
- Spec0 shows a preview: project list, card counts, artifact size, schema versions.
- Confirm. Spec0 closes the current data, replaces it with the backup contents, runs forward migrations to match the current schema, and reopens.
Restore is destructive to the current data — Spec0 first prompts you to save a backup of the current state if you haven’t done one recently.
Export / import single projects
A common case: hand off one project to a collaborator. Settings → Projects → Export writes a single-project tarball; Settings → Projects → Import reads one and adds it to the current install (under a new id, so it doesn’t collide with a same-named project).
Auto-backup
Auto-backup runs nightly when Spec0 is open and writes a rolling 7-day archive into ~/Library/Application Support/Spec0/backups/. Disable or change the cadence in Settings → Backup.