# Making Claude Code Actually Remember Things Video by [[Artem Zhutov]] demonstrating how to build persistent memory for [[Claude Code]] using [[QMD]] and an [[Obsidian]] vault. Part of a series on Claude Code workflows. ## The Problem Every new Claude Code session starts cold — no memory of previous conversations, decisions, or context. Reopening a terminal means starting from zero. The brute-force approach (telling Claude to search the vault) takes 3+ minutes, burns tokens, and yields mediocre results. ## QMD as the Solution QMD is a CLI search engine by [[Toby Lütke]] (CEO of Shopify) combining BM25 full-text search and semantic vector search. It indexes vault folders as collections with one-to-one mapping — each Obsidian folder becomes a QMD collection. Setup: each vault folder maps to a QMD collection. Available commands include `search` (BM25), `vsearch` (vector-only), `collection add/remove`, `embed`. ## Three Recall Paths Zhutov built a `recall` skill with three modes for recovering context: ### Temporal Reconstruct what happened at a specific time ("yesterday", "last week"). A Python script parses conversation JSONL files, extracts session metadata (time, message count, first message), and presents a timeline. From there you can resume any session by ID. ### Topic Uses QMD's BM25 search to find conversations and files related to a subject. Near-instant results compared to brute-force vault scanning. Stacks relevant context into the current session so work can continue. ### Graph Generates a visual network graph (NetworkX + Pyvis) of sessions and the files they touched. Sessions are nodes colour-coded by recency (older = dimmer, recent = purple). Files appear as connected nodes. Useful for seeing which sessions cluster around a project and spotting connections. ## Semantic Search Demo Beyond keyword matching, QMD's vector search surfaces information by meaning. Zhutov demos querying daily notes for "days when I was happy" — the system searches for semantically related terms (grateful, excited, energy, great day) and surfaces relevant entries. Similarly for frustration patterns, yielding the insight that his frustration correlates with directional uncertainty more than task difficulty. ## Key Takeaway The architecture is: Obsidian vault → QMD collections (indexed) → recall skill (temporal/topic/graph) → Claude Code session with pre-loaded context. The result is sub-minute context recovery instead of multi-minute brute-force searching.