Back to blog

How to Give Claude AI Persistent Memory Using Obsidian

Jake McCluskey
How to Give Claude AI Persistent Memory Using Obsidian

Claude doesn't retain anything between sessions. The moment you close a chat, every decision you explained, every preference you established, and every project detail you shared is gone. The fix isn't a paid feature or a cloud sync tool, it's connecting Claude to a local Obsidian vault that acts as an external memory layer. Before each session, you paste relevant notes into the context window. After each session, you ask Claude to write a structured summary back to your vault. Over time, Claude starts every conversation with the full picture instead of a blank slate.

Why Claude Has No Memory Between Sessions

Claude operates on a stateless architecture. Each new conversation starts with zero context, no knowledge of your tech stack, your naming conventions, your half-finished features, or the architectural decision you debated last Tuesday. This is by design, not a bug. Anthropic's official documentation on Claude's memory types confirms that without explicit context injection, Claude has no access to prior conversations.

For casual use, that's fine. For developers running ongoing projects, it's a serious friction point. Studies on developer productivity consistently show that context-switching costs add up fast, re-establishing project context in a new AI session can burn 5 to 15 minutes before you're doing real work again. If you're running two or three Claude sessions a day, that's a meaningful chunk of time lost every week to repetition that adds zero value.

Understanding exactly what Claude does and doesn't retain across conversation types helps you build around the limitation. For a deeper look at the mechanics, see how Claude AI memory works across conversation types.

What an Obsidian Vault as AI External Brain Actually Means

Obsidian stores everything as plain markdown files on your local machine. There's no proprietary format, no cloud account required, and no vendor lock-in. That makes it a natural fit for a local-first AI memory system, you own the files, Claude can read them, and nothing sensitive leaves your machine.

The concept is straightforward: your Obsidian vault becomes the persistent layer that Claude doesn't have natively. You maintain a set of structured notes covering your active projects, coding preferences, past decisions, and outstanding blockers. Before a session, you paste the relevant notes directly into Claude's context window. After the session, you ask Claude to generate an update, a summary of what was decided, what changed, and what's next, and you save that back into the vault.

Obsidian vaults can handle this at scale without performance issues. The app supports vaults with 10,000 or more notes while staying responsive, which means your memory system can grow indefinitely alongside your projects. Developers who use this approach report cutting their session warm-up time by roughly 80%, because Claude arrives at the conversation with full context rather than requiring a five-minute briefing every time.

How to Build a Persistent Memory System for Claude Using Obsidian

Step 1: Set Up Your Vault Folder Structure

Keep the structure flat and purposeful. You don't need dozens of folders, you need the right files in the right places. A structure that works well for developers looks like this:


/claude-memory
  /projects
    project-name.md
  /preferences
    coding-style.md
    communication-style.md
  /sessions
    YYYY-MM-DD-session-summary.md
  context-master.md

The context-master.md file is your primary injection document, it's a single file that pulls together the most critical information Claude needs at the start of any session. Think of it as the briefing document you'd hand a colleague on their first day working with you on a project.

Step 2: Build Your Core Note Templates

Your project file should cover the state of the project right now, not its entire history. Keep it current. A solid template looks like this:


# Project: [Name]

## Current State
- What phase the project is in
- Last three things completed

## Active Decisions
- What's been decided and why (brief rationale)

## Open Questions
- What still needs a decision

## Tech Stack
- Languages, frameworks, services in use

## Conventions
- Naming patterns, file structure rules, anything Claude needs to follow

## Current Blockers
- What's stuck and what's been tried

Your preferences file should be opinionated and specific. "I prefer clean code" tells Claude nothing useful. "I write TypeScript with strict mode enabled, prefer functional components, and avoid any third-party library unless there's a clear reason" gives Claude something to work with from the first message.

Step 3: Inject Context at the Start of Every Session

Start each Claude session with a structured context block. This is your pre-session ritual. Copy the relevant project file and your preferences note, then open with something like this:


Before we start, here's the full context for this session:

[PASTE project-name.md content]
[PASTE coding-style.md content]

Today I want to work on: [specific task]

This single habit eliminates the repetitive re-explanation that kills flow. Claude walks into the session knowing your stack, your preferences, and where the project stands. You can get to real work within the first exchange.

Step 4: Write Session Summaries Back to the Vault

At the end of each productive session, ask Claude to generate a structured update you can save directly to your vault. A prompt that works well:


Summarize this session for my Obsidian memory system. Include:
- What we decided (with brief rationale)
- What changed in the project state
- Any new conventions or preferences we established
- Open questions or blockers for next session

Format it as clean markdown I can save directly to /sessions/[today's date]-session-summary.md

Then update your project file with the new state. This writeback step is what makes the system compound over time. Each session builds on the last, and Claude gets progressively more useful as your vault fills out.

Persistent Context for Claude Code Projects Specifically

If you're using Claude for software development, the memory system matters even more. Claude Code sessions involve long chains of architectural decisions, file conventions, and implementation choices that are nearly impossible to reconstruct from scratch each time. Losing that context mid-project is genuinely disruptive.

For Claude Code workflows, add a dedicated architecture.md file to your project folder in the vault. Document your folder structure, module boundaries, and the reasoning behind major design choices. When you're working across multiple files or building something with real complexity, injecting this file at the start of a Claude Code session can reduce clarifying back-and-forth by roughly 40%, because Claude already knows why things are structured the way they are.

This pairs naturally with the broader question of what custom tooling you can build on top of Claude. If you want to go further, what custom tools you can build with Claude Code that nobody sells covers some practical extensions of this idea.

You can also automate the context injection step. A short shell script that reads your context-master.md and copies it to your clipboard before you open a new session turns the ritual into a single keystroke. That's the kind of low-effort automation that makes a workflow stick long-term.

Why Local-First Beats Cloud-Based Workarounds

Several tools promise to solve Claude's memory problem by syncing conversation history to the cloud. The appeal is obvious, no setup required. But cloud-based memory tools introduce real tradeoffs: your project details, your code snippets, your architectural notes all live on someone else's server. For professional and client work, that's a non-trivial privacy concern.

The Obsidian approach keeps everything local. Your vault lives on your machine. Nothing is transmitted. You can back it up with your existing backup solution, version-control it with Git, and access it offline. The only thing that touches Claude's servers is what you deliberately paste into a session, and you control that completely.

For teams building serious systems on top of Claude, this local-first model also integrates well with existing documentation practices. Your Obsidian vault can mirror your project docs, your ADRs (Architecture Decision Records), and your team conventions, making the memory system something that's useful beyond just AI sessions. If you're thinking about how Claude fits into a larger development workflow, building a Model Context Protocol server for Claude AI gives you a broader framework to build from.

The real advantage of treating Obsidian as Claude's external brain isn't just the time you save in any single session, it's that your AI collaboration gets better every week. The context gets richer, the summaries get more precise, and Claude starts contributing at a level that a stateless chatbot simply can't reach. That's what makes this worth setting up properly from the start.

Go deeper

Obsidian + Claude Code: Give Your AI a Persistent Memory

Claude forgets everything when a session ends. Wire up an Obsidian vault as a persistent external brain using MCP, and your AI starts walking into each conversation already knowing your projects, preferences, and open decisions.

Read the white paper →
Ready to stop reading and start shipping?

Get a free AI-powered SEO audit of your site

We'll crawl your site, benchmark your local pack, and hand you a prioritized fix list in minutes. No call required.

Run my free audit