Back up and restore your Thrum data
Free and Pro
Your data is backed up for you. Thrum saves a backup of your messages, your agents’ saved state, your settings and your vault once every 24 hours, as long as Thrum is running. You do nothing to turn it on. Conversation transcripts are added once a week.
Where the backups are
Section titled “Where the backups are”Backups are zip files in the archives folder of .thrum/backup/<repo name>/ in your repository. Each is named with its date and time. Thrum keeps the 5 newest, then one per week for 4 weeks, then one per month with no limit. By default, backups go in the .thrum folder, which Git ignores, so they stay on this machine. They leave it only if you choose another backup folder or copy them elsewhere, for example with backup.post_backup.
Your coordinator is the agent you talk to, which starts the other agents, hands out work and reports back to you. The daemon is Thrum’s background process on your machine. To change how often it runs, ask your coordinator, for example: Back up Thrum every 12 hours. It restarts the daemon for you.
Protect your backups
Section titled “Protect your backups”Until you set a passphrase, backups are not encrypted. They contain your vault and its key, so anyone with a backup file can read your secrets. Thrum’s web UI is the page you open in your browser to see your agents and their messages. To set one, open the web UI, select Settings at the bottom of the sidebar, then the General tab. Under Backup passphrase, select Set passphrase, type it in New passphrase and Confirm passphrase, and select Save passphrase. This works on Free. Backups made before that stay unencrypted. Keep the passphrase safe: an encrypted backup can’t be opened without it.
Check the last backup
Section titled “Check the last backup”Ask your coordinator: When was the last backup?
Restore
Section titled “Restore”Do this yourself in a terminal in your repository, because the restore stops Thrum while it runs. It also works on a fresh clone of your repository where you have not run thrum init:
$ thrum backup restoreThis will restore thrum data from backup. Backup dir: ~/scratch-job3-backup/.thrum/backup Repo: scratch-job3-backup …A safety backup will be created first.Continue? [y/N] yDaemon stopped for restore.Safety backup: ~/scratch-job3-backup/.thrum/backup/scratch-job3-backup/archives/pre-restore-2026-10-31T215504.zipRestored from: ~/scratch-job3-backup/.thrum/backup/scratch-job3-backup/archives/2026-10-31T215426.836224438.zip…Daemon restarted. SQLite will rebuild from restored JSONL.This restores the newest backup. It asks you to confirm, saves a safety copy of what you have now, restores, and starts Thrum again. If the backup is encrypted it asks for the passphrase. The paths in your output will differ. Your output also has more lines where the … are. Thrum prints them while it stops and starts again, and you can ignore them.
To restore an older backup, list the zip files, then give the path of one:
ls .thrum/backup/*/archivesthrum backup restore .thrum/backup/my-repo/archives/2026-02-15T101500.123456789.zipReplace my-repo and the file name with yours. Files that start with pre-restore- are the safety copies that earlier restores made. The Restored from: line in the output shows which backup was used.
Next steps
Section titled “Next steps”- Configuration: the backup keys.
- CLI reference: the
thrum backupcommands.