Skip to content
Back to skills

Backup Restore

ASecurity

Verify a vault backup, prove it restores, or restore it to a folder of the user's choosing. Use when the user says 'restore my backup', 'test my backups', 'are my backups any good', or after data loss. Never overwrites the live vault. Not for taking a backup (`backup-now`); not for scheduling (`backup-setup`).

  • 489 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 2, 2026
ai-agentspythongobashgitapi

Works with

  • api

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add davekilleen/Dex --skill backup-restore --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Backup Restore?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Backup Restore
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/davekilleen-backup-restore/badge)](https://www.skillsdirectory.com/skills/davekilleen-backup-restore)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: backup-restore
description: "Verify a vault backup, prove it restores, or restore it to a folder of the user's choosing. Use when the user says 'restore my backup', 'test my backups', 'are my backups any good', or after data loss. Never overwrites the live vault. Not for taking a backup (`backup-now`); not for scheduling (`backup-setup`)."
---

<!-- Generated from `.claude/skills/backup-restore/SKILL.md` by `scripts/generate-agents-skills.py`. Do not edit. -->

# Backup Restore

Three jobs, in increasing weight: prove a backup is intact, prove it actually restores, and bring one back. All three are driven by one tool, and none of them will ever overwrite the live vault: a restore always goes to a fresh folder the user chooses, to inspect and move into place themselves.

## Test mode (the one to suggest routinely)

```bash
python3 core/backup/restore_vault.py test
```

This checks the newest set's fingerprints, verifies the version-history bundle with git's own verifier, extracts the whole archive into a throwaway temporary folder, counts what came out, and deletes the extraction. It proves a restore works without touching anything. Suggest running it once after setup and occasionally after that; a backup that has never been test-restored is a hope, not a backup.

## Verify only (quick integrity check)

```bash
python3 core/backup/restore_vault.py verify
```

Fingerprint and history checks only, no extraction. Add `--set <stamp>` for a specific older set, or `--source /path` for a folder other than the configured destination.

## Restore for real

First ask which set they want (default is the newest) and where the restored copy should go. The target must be a new or empty folder.

```bash
python3 core/backup/restore_vault.py restore --to /path/to/fresh-folder
```

Then be explicit about three things:

1. **The live vault was not touched.** The restored copy sits in the folder they chose. Comparing, cherry-picking files, or swapping the whole vault over is their deliberate next step, not something this tool does behind their back.
2. **The version history comes back separately.** The history bundle is copied alongside; `git clone dex-vault-<stamp>.bundle restored-history` recovers it.
3. **Secrets and schedules are not in the backup, on purpose.** API keys, the scheduled backup job itself, and macOS permissions all need re-establishing. Walk them through `docs/backup-restore.md` for the full list.

## For cloud (rclone) backups

The tool is honest about not reaching into the network: copy one set down first (`rclone copy remote:path/dex-vault-<stamp>.* /some/local/folder/`), then point `--source` at that folder.

## Report honestly

Report exactly what the tool printed. If verification failed, the copy in storage is damaged: say so plainly, and suggest trying the next-oldest set (`--set`) rather than pretending the newest one is usable.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…