obsidian-plugin/skills/file-history/SKILL.md
Obsidian File Recovery and Sync history: inspect, diff, restore previous note versions. Use when undoing edits, restoring versions, or recovering files.
npx skillsauth add laurigates/claude-plugins file-historyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Use this skill when... | Use the alternative instead when... |
|---|---|
| Recovering an overwritten or accidentally deleted note | Editing a current note — use vault-files |
| Diffing what changed between two versions of a note | Searching the current vault state — use search-discovery |
| Auditing the history of a single file before a destructive edit | Restoring a deleted file from disk-level backups — use OS tools |
Obsidian keeps two parallel version stores:
history:*).sync:history, sync:read, sync:restore).diff unifies both: by default it lists every available version (newest = 1)
across both stores. filter=local|sync narrows the source.
sync:* commands# List all available versions of the active file
obsidian diff
# List versions of a specific file
obsidian diff file=Recipe
# Compare the latest version (1) to current state
obsidian diff file=Recipe from=1
# Compare two specific versions (newest = 1)
obsidian diff file=Recipe from=2 to=1
# Restrict to one source
obsidian diff file=Recipe filter=local
obsidian diff file=Recipe filter=sync
# History entries for a file
obsidian history file=Recipe
# Every file that has local history
obsidian history:list
# Read a specific version (default: version=1, newest)
obsidian history:read file=Recipe version=3
# Open the File Recovery view in the GUI
obsidian history:open file=Recipe
# Restore a previous version (overwrites current)
obsidian history:restore file=Recipe version=3
# Sync versions for a file
obsidian sync:history file=Recipe
obsidian sync:history file=Recipe total
# Read a specific sync version
obsidian sync:read file=Recipe version=2
# Restore a sync version (overwrites current)
obsidian sync:restore file=Recipe version=2
# Open the sync history view in the GUI
obsidian sync:open file=Recipe
# Files deleted via sync (recoverable)
obsidian sync:deleted
# Diff the most recent saved version against the current state
obsidian diff file="Notes/Project" from=1
# 1. List versions to identify the right one (newest = 1)
obsidian history file=Daily/2026-04-29
# 2. Read it to confirm
obsidian history:read file=Daily/2026-04-29 version=2
# 3. Restore
obsidian history:restore file=Daily/2026-04-29 version=2
# Given a list of changed paths in $changed_files
while read -r path; do
echo "=== $path ==="
obsidian diff path="$path" filter=local
done <<< "$changed_files"
For agentic workflows that overwrite or delete notes, capture the version number first so a restore is one command away:
# Snapshot the current version
obsidian history file="Notes/Important" | head -2
# … perform edit …
# If something breaks:
obsidian history:restore file="Notes/Important" version=2
| Context | Command |
|---------|---------|
| List all versions of a file | obsidian diff file=X |
| Diff latest version vs current | obsidian diff file=X from=1 |
| Diff two specific versions | obsidian diff file=X from=2 to=1 |
| Local-only versions | obsidian diff file=X filter=local |
| Read a local version | obsidian history:read file=X version=N |
| Restore a local version | obsidian history:restore file=X version=N |
| Read a sync version | obsidian sync:read file=X version=N |
| Restore a sync version | obsidian sync:restore file=X version=N |
| Files deleted via sync | obsidian sync:deleted |
testing
Verify accumulated bug claims at upstream HEAD and dedup against trackers before filing issues. Use when filing upstream reports from backlogs, audit docs, or git-history findings.
documentation
Gate outward-bound text (upstream issues, docs, PR bodies) through isolated haiku fresh-reader critique before publishing. Use when an artifact must survive a reader with zero project context.
tools
Suggest improvements to SKILL.md content, descriptions, or tool config from eval results. Use when raising pass rates, fixing triggering, or iterating on a skill after evaluation.
tools
deadbranch CLI for stale-branch cleanup — dry-run preview, TUI or non-interactive delete, protects main/develop/WIP. Use when asked to clean up branches, prune branches, or remove stale branches.