claude-vigil
npx machina-cli add skill Vvkmnn/claude-emporium/claude-vigil --openclawVigil Plugin
File recovery. Saves checkpoints before dangerous operations, diffs changes, restores files safely.
Hooks
| Hook | When | Action |
|---|---|---|
| PreToolUse(Bash) | Destructive command detected | Auto-quicksaves affected files (rm, mv, git reset, etc.) |
Token cost: 0 on safe commands, ~30-50 on destructive. The regex matches: rm, rmdir, mv, sed -i, perl -i, git checkout/reset/clean/restore, output redirects.
Commands
| Command | Description |
|---|---|
/save-vigil <name> [files] | Create a named file checkpoint |
/restore-vigil [name] | Restore files from a checkpoint |
Workflows
Checkpoint (standalone)
vigil_save(name: "before-refactor", files: ["src/auth.ts", "src/middleware.ts"])- Make changes safely
- If something breaks:
vigil_restore(name: "before-refactor")
Checkpoint (with siblings)
vigil_save(name: "before-refactor", files: [...])- If praetorian active: also
praetorian_compact(type: "decisions", ...)to save the reasoning - Make changes — both files and context are now protected
- If something breaks:
vigil_restore(name: "before-refactor")— restore filespraetorian_restore("before-refactor")— restore context
Recovery (standalone)
vigil_list()— see available checkpointsvigil_diff(name: "checkpoint")— preview what would changevigil_restore(name: "checkpoint")— restore files- Optionally:
vigil_delete(name: "checkpoint")— clean up
Recovery (with siblings)
vigil_list()— see available checkpointsvigil_diff(name: "checkpoint")— preview changes- If historian active:
find_file_context("filename")to understand what changed and why vigil_restore(name: "checkpoint")— restore files- If praetorian active: restore matching compaction for context
Sibling Synergy
| Sibling | Value | How |
|---|---|---|
| Praetorian | Context saved alongside files | Pair vigil checkpoints with praetorian compactions for full state recovery |
| Historian | File change context from history | find_file_context() explains what happened between checkpoint and now |
MCP Tools Reference
| Tool | Purpose |
|---|---|
vigil_save | Create named checkpoint (SHA-256 + gzip dedup) |
vigil_list | List available checkpoints with metadata |
vigil_diff | Preview changes since checkpoint |
vigil_restore | Restore files from checkpoint |
vigil_delete | Remove a checkpoint and free storage |
Storage
Content-addressable at .claude/vigil/. 3 named slots + 1 rotating ~quicksave.
Requires
claude mcp add vigil -- npx claude-vigil-mcp
Source
git clone https://github.com/Vvkmnn/claude-emporium/blob/main/plugins/claude-vigil/skills/claude-vigil/SKILL.mdView on GitHub Overview
Claude Vigil provides file recovery by saving checkpoints before dangerous actions and enabling safe rollback. It auto-quicksaves affected files when destructive commands are detected, and you can create or restore checkpoints manually with /save-vigil and /restore-vigil. It can coordinate with Praetorian and Historian to protect context and provide deeper rollback.
How This Skill Works
A PreToolUse(Bash) hook detects destructive commands (rm, mv, git reset, etc.) and auto-quicksaves affected files. Checkpoints are stored in a content-addressable area at .claude/vigil/ with 3 named slots plus a rotating ~quicksave. Users create or restore checkpoints using vigil_save and vigil_restore, and can preview changes with vigil_diff.
When to Use It
- Before performing refactors that involve risky file changes (e.g., src/auth.ts, src/middleware.ts).
- Before large deletions or moves (rm, rmdir, git clean) to enable safe rollback.
- During scripted migrations or complex edits where rollback is preferred.
- When you want to preview potential changes with vigil_diff before restoring.
- When using sibling tools (Praetorian or Historian) to capture context and full state recovery.
Quick Start
- Step 1: vigil_save(name: "before-refactor", files: ["src/auth.ts", "src/middleware.ts"])
- Step 2: Make changes safely
- Step 3: vigil_restore(name: "before-refactor")
Best Practices
- Always run vigil_save before starting risky edits to create a named checkpoint.
- Use vigil_diff to preview what would change before restoring.
- Restore with vigil_restore to revert to a known good state quickly.
- Pair vigil checkpoints with Praetorian for context-aware recovery when applicable.
- Clean up unused checkpoints with vigil_delete to free storage and keep history tidy.
Example Use Cases
- Checkpoint before refactor: vigil_save(name: "before-refactor", files: ["src/auth.ts", "src/middleware.ts"]).
- Rollback after breakage: vigil_restore(name: "before-refactor").
- Paired context: if praetorian is active, also run praetorian_compact(type: "decisions", ...) and praetorian_restore("before-refactor").
- Context-aware recovery: use historian with find_file_context("filename") to understand what changed.
- List and diff: vigil_list() to see checkpoints, vigil_diff(name: "checkpoint") to preview changes.