# Claude Vigil

> File checkpoint and recovery — auto-quicksaves before destructive commands, manual checkpoints for safe rollback

- Skill: `majiayu000/claude-vigil` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/claude-vigil`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/claude-vigil/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/claude-vigil

---


# Vigil 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)

1. `vigil_save(name: "before-refactor", files: ["src/auth.ts", "src/middleware.ts"])`
2. Make changes safely
3. If something breaks: `vigil_restore(name: "before-refactor")`

### Checkpoint (with siblings)

1. `vigil_save(name: "before-refactor", files: [...])`
2. If **praetorian** active: also `praetorian_compact(type: "decisions", ...)` to save the reasoning
3. Make changes — both files and context are now protected
4. If something breaks:
   - `vigil_restore(name: "before-refactor")` — restore files
   - `praetorian_restore("before-refactor")` — restore context

### Recovery (standalone)

1. `vigil_list()` — see available checkpoints
2. `vigil_diff(name: "checkpoint")` — preview what would change
3. `vigil_restore(name: "checkpoint")` — restore files
4. Optionally: `vigil_delete(name: "checkpoint")` — clean up

### Recovery (with siblings)

1. `vigil_list()` — see available checkpoints
2. `vigil_diff(name: "checkpoint")` — preview changes
3. If **historian** active: `find_file_context("filename")` to understand what changed and why
4. `vigil_restore(name: "checkpoint")` — restore files
5. 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
```

