file-history
Obsidian File Recovery and Sync history: inspect, diff, restore previous note versions. Use when undoing edits, restoring versions, or recovering files.
What this skill does
# Obsidian File History & Recovery ## When to Use This Skill | 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: - **File Recovery** — local snapshots, configurable in Settings → File Recovery (`history:*`). - **Sync history** — server-side versions, available with Obsidian Sync (`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. ## Prerequisites - Obsidian desktop v1.12.4+ with CLI enabled - Obsidian must be running - File Recovery enabled (Settings → File Recovery) for local history - Active Obsidian Sync subscription for `sync:*` commands ## Diff Versions ```bash # 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 ``` ## Local File Recovery ```bash # 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 Version History ```bash # 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 ``` ## Common Patterns ### "Show me what an agent changed since I last reviewed" ```bash # Diff the most recent saved version against the current state obsidian diff file="Notes/Project" from=1 ``` ### "Restore yesterday's version after a bad edit" ```bash # 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 ``` ### "Audit history for every file an agent touched in this session" ```bash # 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" ``` ### Pre-flight before destructive edits For agentic workflows that overwrite or delete notes, capture the version number first so a restore is one command away: ```bash # Snapshot the current version obsidian history file="Notes/Important" | head -2 # … perform edit … # If something breaks: obsidian history:restore file="Notes/Important" version=2 ``` ## Agentic Optimizations | 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` | ## Related Skills - **vault-files** — Read or write the current state of a note - **publish-sync** — Sync service status (pause/resume) and published-file workflows - **vault-management** — Switch vaults before inspecting their history
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.