Browse the documentation

Backup pack: timestamped ZIP backups, restore and rotation

Backup Manager zips your project with a timestamp, lists, restores and rotates the archives with four slash commands. Install, five prompts, where files go, what is excluded and what is not covered.

On this page
  1. When to use it
  2. What is installed
  3. Quick start
  4. Copyable examples
  5. What it writes and where
  6. Data flows and prerequisites
  7. Limits and gotchas

The Backup pack installs Backup Manager, an agent that makes a ZIP copy of your project in one command, names it with the date and time, lists the copies, restores one on request and prunes the old ones. It exists for the moment before a risky change, a big refactor or a migration, when you want a quick way back that does not depend on version control. It is deliberately simple: it runs your operating system’s own zip tooling and keeps the archives in a backups/ folder inside the project.

When to use it

  • Before a large refactor, a dependency upgrade, a data migration or an autopilot run.
  • For projects that are not under version control, or whose uncommitted state matters.
  • It does not replace real backups: see the limits below.

What is installed

A packaged pack in .agents/skills/pack-backup/: the agent file backup-agent.md and a workflow template templates/backup-workflow.md. No skill, no data file and no script is shipped: the agent writes the commands itself, in PowerShell on Windows or Bash on Linux and macOS, and replaces the %PROJECT_ROOT% placeholder with your real project path.

Backup Manager menu
CommandWhat it does
/backupFull backup: a timestamped ZIP of the whole project, with the exclusions below
/backup-listLists the ZIP files in backups/, newest first, with size and date
/backup-restoreExtracts a chosen ZIP into a new restore_<timestamp>/ folder in the project root
/backup-cleanRotation: keeps the last N archives (5 unless you say otherwise) and deletes the rest, after asking you

Quick start

  1. Install the pack

    Core is added automatically. Only Node.js 20 is needed for the installer.

    In your project terminal
    npx bmad-plus install --packs backup

  2. Make a first backup

    The agent finds the project root, detects your operating system, creates backups/ if needed, builds the archive and reports its name and size.

    In your project terminal
    /backup

  3. Ignore the folder in version control

    The archives are plain project data, so keep them out of commits.

    In your project terminal
    backups/

Copyable examples

Make a timestamped backup

Run it before anything you might want to undo.

In your AI assistant
/backup, then list what you left out of the archive so I can check that nothing I need is missing.

What you should get A file backups/<project>_backup_<yyyyMMdd_HHmmss>.zip is created, and the agent reports its name and size in megabytes. At the project root it excludes node_modules, .git, vendor, backups/, __pycache__ and files matching *.backup_*, which is the list the agent can read back to you.

Back up in plain language before a risky change

You can call the agent by name and ask in plain words instead of typing the slash command.

In your AI assistant
Backup Manager, make a backup of this project before I rename the src/ modules, and tell me the size of the archive.

What you should get The same archive as /backup, with the file size shown. Showing the size is one of the agent’s rules; on Linux and macOS the reference command prints only the archive name, so the agent has to add the size itself.

List the backups you have

Use it to pick which archive to restore or prune.

In your AI assistant
/backup-list

What you should get A table of the *.zip files in backups/, sorted by last write time (newest first), with name, size in megabytes and date.

Restore without overwriting your work

Restoring goes to a separate folder, so you can compare before you copy anything back.

In your AI assistant
/backup-restore the most recent archive

What you should get The ZIP is extracted into restore_<yyyyMMdd_HHmmss>/ at the project root and the agent prints that path. Your current files are not touched; copy back what you need.

Keep only the latest few backups

Rotation deletes files, so the agent always asks for confirmation first.

In your AI assistant
/backup-clean keep the last 3.

What you should get After you confirm, archives older than the three most recent are deleted from backups/ and the agent reports how many were kept. Without a number the default is 5.

What it writes and where

Files and folders created by the pack
PathCreated byContent
backups//backupThe archives, named <project>_backup_<yyyyMMdd_HHmmss>.zip
restore_<yyyyMMdd_HHmmss>//backup-restoreThe extracted copy of one archive

Data flows and prerequisites

  • Windows: PowerShell with Compress-Archive and Expand-Archive. Linux and macOS: Bash and the zip program, which must be installed.
  • Your host tool must allow the agent to run shell commands. Nothing leaves your machine: no upload, no network call, no key.

Limits and gotchas

Warning This is not a disaster-recovery backup

The archives sit inside the project, on the same disk. A lost disk loses both. The pack does not schedule backups, encrypt them or copy them elsewhere. Copy important archives to another location yourself.

Warning The Git history is not in the archive

.git is excluded, so a restore brings back files, not commits or branches. Dependencies in node_modules and vendor are excluded too: reinstall them after a restore.

Note Exclusions name top-level folders

The PowerShell command filters the entries at the project root only, and the Bash patterns are written for root folders, so the exclusions apply at the project root only. A nested node_modules (for example in packages/app/) may therefore end up in the archive. Check the size the agent reports, and tell it to exclude more if needed.

Note Command names to use

The menu is /backup, /backup-list, /backup-restore and /backup-clean. There is no create subcommand: /backup alone makes the archive.

Note Provenance

The Universal Backup pack was written by Laurent Rochetta at Oveanet, his company, and integrated into BMAD+.

See also