Skip to content

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_backup while 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.json capturing 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

  1. Settings → Backup → Create backup.
  2. Pick a destination — anywhere outside Spec0’s data dir.
  3. 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

  1. Settings → Backup → Restore from backup.
  2. Choose the tarball.
  3. Spec0 shows a preview: project list, card counts, artifact size, schema versions.
  4. 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.