A skill providing long-term persistent memory and documentation governance for AI coding agents (Claude Code, Antigravity, Cursor, and others) using local Obsidian vaults and memory engines such as ai-memory.
This skill supports macOS, Linux, and Windows. Choose native paths and agent configuration for the user's environment; see the Cross-Platform Setup Guide.
⚡ Quick Install
npx skills add https://github.com/kipperdev/skillpper --skill ai-memory-obsidian
🎯 Why Persistent Memory?
By default, AI coding agents are amnesic: every /clear or fresh session discards past conversational history, architectural trade-offs, and domain knowledge.
This skill equips agents with a systematic protocol to:
- Check Memory First: Search local vault notes before re-reading dozens of repository files or asking the developer to restate previous decisions.
- Document Decisions Automatically: Log Architectural Decision Records (ADRs) and atomic notes in standardized Markdown.
- Execute Frictionless Handoffs: Wrap up sessions with structured state snapshots and 1-line resume commands.
⚙️ Integration Modes (MCP & Local Vault)
Agents can connect to Obsidian through two key-free interfaces:
- MCPVault filesystem bridge:
- Reads and writes the vault directory through MCP using
@bitbonsai/mcpvault; Obsidian does not need to be running.
- Reads and writes the vault directory through MCP using
- Official Obsidian CLI:
- Controls the desktop app through shell commands. It requires Obsidian 1.12.7+ and the app running. These options work across macOS, Linux, and Windows when configured with the native vault path and the chosen agent's supported MCP or shell setup. See the Cross-Platform Setup Guide.
The ai-memory daemon provides a separate persistent memory interface:
- A background local service indexing agent sessions, tool observations, and handoffs in SQLite/FTS5.
- Enables full-text queries via CLI or MCP (
memory_query,memory_status).
(See comprehensive setup instructions in the MCP Setup Guide).
📋 Execution Protocol
1. Task Inception (The "Memory First" Rule)
- When a task refers to past context ("as we discussed", "resume where we left off", "according to our decision"):
- Search configured memory tools first (for example,
memory_queryor the Obsidian MCP search/read tools). - Provide a concise 1-line confirmation to the developer:
🧠 Memory consulted: Found records in [[Architecture-Decision-JWT]] and [[Session-2026-09-25]]. - If no memory integration is configured, continue from available context and offer setup only when it would help; do not assume a vault path.
- Search configured memory tools first (for example,
2. Active Development (Capturing Decisions)
- When a significant technical decision is finalized (library choice, naming convention, schema design):
- Draft or write an ADR in
decisions/ADR-YYYY-MM-DD-<slug>.md. - Use standard ADR statuses (
accepted,proposed,deprecated,superseded). - Keep each note focused on one decision or concept. Link related notes instead of copying their full contents.
- If no vault is configured, keep the decision in the project's existing documentation or ask whether the user wants to configure a vault.
- Draft or write an ADR in
3. Session Wrap-up (Handoff & Daily Note)
- When reaching logical milestones or session limits:
- Generate an end-of-session note in
sessions/Session-YYYY-MM-DD-<id>.mdor append todailies/Daily-YYYY-MM-DD.md. - Provide a 1-line resume command for the user to paste into the next session.
- Use automatic ai-memory handoff when the agent already provides it; avoid duplicating the same handoff in a vault note.
- Generate an end-of-session note in
🛡️ Markdown & Obsidian Integrity Rules
- Sensitive Data Exclusion: Before saving notes or enabling automatic capture, exclude credentials, API keys, tokens, passwords, private keys, environment dumps, personal vault paths, and confidential file contents. Store only a redacted description. Never copy
.envfiles, credential stores, or complete tool output into the vault orai-memory. Ask for consent before persisting content whose sensitivity is unclear. - Vault Boundary: Keep the vault outside public repositories. Do not commit, publish, symlink, or expose the vault root through a project workspace. Grant an agent access only to the intended vault or subdirectory.
- HTML/JSX Encapsulation: This workflow keeps raw HTML, JSX, and SVG out of Markdown bodies unless they are inside an appropriately labelled code block. This avoids accidental rendering and malformed documents.
- Clean Wikilinks: Prefer standard
[[Note-Name]]internal links to keep the Obsidian knowledge graph interconnected. - Additive History: Session logs and daily entries are strictly additive. Never summarize by destructively overwriting previous notes.