Automated summary
Set up Obsidian and OpenClaw as a persistent AI memory system, with QMD semantic search and heartbeat-based proactive maintenance.
Strengths
- Provides persistent context across sessions by reading workspace files into the system prompt
- Obsidian visualizes the knowledge graph for intuitive navigation
- QMD enables on-device semantic search without loading all files into context
- HEARTBEAT automates long-term memory distillation and maintenance
Limitations
- Requires initial setup of multiple components (Obsidian, OpenClaw, QMD)
- Depends on OpenClaw, which may not be available in all AI environments
- Memory quality relies on consistent manual logging and curation
Use this skill when the user wants their AI assistant to remember decisions and context across sessions using a file-based memory system.
Avoid if the user lacks access to OpenClaw or prefers a built-in memory solution.
Security analysis
SafeThe skill provides setup instructions for Obsidian, OpenClaw, and QMD. It suggests shell commands (e.g., qmd collection add, qmd embed) that are legitimate and used for indexing/search, with no destructive or exfiltrating behavior. No code is obfuscated or dangerous.
No concerns found
How this analysis is madeExamples
Set up an Obsidian vault pointed at my ~/clawd workspace and configure OpenClaw to inject MEMORY.md and daily logs into the system prompt.Create a HEARTBEAT.md file that reminds me every three days to review recent daily logs and distill key insights into MEMORY.md.Install and configure QMD for semantic search over my memory files, then show me how to query it from within OpenClaw using mcporter.name: obsidian-openclaw-memory description: Set up Obsidian + OpenClaw as a living AI memory system. Use when helping users configure their workspace so their AI assistant remembers context across sessions, builds a knowledge graph, and proactively maintains memory. Covers file structure, Obsidian vault setup, QMD semantic search, and heartbeat-based memory maintenance.
Obsidian + OpenClaw Memory System
Overview
The AI doesn't have memory — it reads memory. OpenClaw injects workspace files into the system prompt at session start, giving the AI persistent context across sessions. Obsidian visualizes the knowledge graph. QMD provides semantic search so the AI finds relevant context without loading everything.
Three components:
- OpenClaw — reads workspace files at session start (injected into system prompt)
- Obsidian — vault pointed at the workspace; Graph View shows connections between files
- QMD — on-device semantic search; find relevant files without loading them all
File Structure
See references/file-structure.md for the full annotated file tree.
Core files:
| File/Folder | Purpose |
|---|---|
| MEMORY.md | Curated long-term memory (distilled from daily logs) |
| memory/YYYY-MM-DD.md | Raw daily session logs |
| second-brain/ | Structured knowledge base (concepts, journal, documents) |
| directives/ | SOPs and workflows |
| HEARTBEAT.md | Drives proactive AI behavior between sessions |
| AGENTS.md | How the AI should operate in this workspace |
| USER.md | Context about the human |
| SOUL.md | AI persona and tone |
How OpenClaw Reads Files
OpenClaw's workspace injection reads files listed in its config and prepends them to the system prompt. This means:
- Files in the workspace root are always available
- The AI "wakes up" each session already knowing what's in those files
- Updating a file = updating what the AI knows next session
Key principle: write important things to files, not just say them in chat.
Obsidian Setup
- Create vault pointing to your
~/clawdworkspace folder (File → Open Vault → Open Folder as Vault) - Enable Graph View (Ctrl/Cmd+G) — see how memory files link to each other
- Install plugins:
- Dataview — query memory files like a database (
TABLE, LIST, TASKqueries) - Templater — daily note templates for
memory/YYYY-MM-DD.md
- Dataview — query memory files like a database (
- Daily note template (via Templater):
# <% tp.date.now("YYYY-MM-DD") %> ## Session Log ## Decisions Made ## Things to Remember - Dataview query to surface recent memories:
LIST FROM "memory" SORT file.name DESC LIMIT 7
QMD Semantic Search Setup
# Add workspace to QMD index
qmd collection add ~/clawd --name clawd
# Generate embeddings (run after adding new files)
qmd embed
# Search from within OpenClaw
mcporter call qmd.vsearch query="what did we decide about X"
mcporter call qmd.query query="project status"
This lets the AI find relevant context without loading every file into the context window.
Heartbeat-Based Memory Maintenance
HEARTBEAT.md drives proactive AI behavior. OpenClaw polls it on a schedule and acts on what it finds.
Example HEARTBEAT.md:
## Memory Maintenance
- [ ] Review memory/ files from last 3 days
- [ ] Distill key insights into MEMORY.md
- [ ] Remove outdated entries from MEMORY.md
The AI will pick this up, review recent logs, and update long-term memory — like a human reviewing their journal and updating their mental model.
Schedule: Add a heartbeat cron or configure OpenClaw's heartbeat interval. Every few days is sufficient for memory distillation.
Best Practices
- Write it down — if you want the AI to remember something next session, say "write this to memory" or update
memory/YYYY-MM-DD.mddirectly - Keep MEMORY.md curated — it's the distilled essence, not a dump. Short, high-signal entries.
- Daily logs are raw —
memory/YYYY-MM-DD.mdis for raw session notes; don't worry about formatting - Use directives/ for SOPs — repeatable workflows go here so the AI can follow them consistently
- Link files in Obsidian — use
[[MEMORY]]wiki-links to build the graph view - Re-embed after adding files — run
qmd embedafter adding significant new content
Architecture Diagram
See assets/architecture.png for a visual overview of how the three components interact.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/obsidian-openclaw-ai-memory-system-mrx3y0t4/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/obsidian-openclaw-ai-memory-system-mrx3y0t4' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/obsidian-openclaw-ai-memory-system-mrx3y0t4/download' --output '.skill-downloads/obsidian-openclaw-ai-memory-system-mrx3y0t4/SKILL.md.part' && mv '.skill-downloads/obsidian-openclaw-ai-memory-system-mrx3y0t4/SKILL.md.part' '.skill-downloads/obsidian-openclaw-ai-memory-system-mrx3y0t4/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/obsidian-openclaw-ai-memory-system-mrx3y0t4/SKILL.md' && test -s '.skill-downloads/obsidian-openclaw-ai-memory-system-mrx3y0t4/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/obsidian-openclaw-memory' && cp -R '.skill-downloads/obsidian-openclaw-ai-memory-system-mrx3y0t4' '.claude/skills/obsidian-openclaw-memory'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/obsidian-openclaw-ai-memory-system-mrx3y0t4'openskills read 'obsidian-openclaw-ai-memory-system-mrx3y0t4'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/obsidian-openclaw-ai-memory-system-mrx3y0t4/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
PDF Reader
Productivity
Read and extract text from PDF files, including documents, reports, contracts, and spreadsheets. Works with local files, URLs, and WhatsApp attachments. Use whenever PDF content is needed, even if not explicitly requested.
Discord Messaging Workflows
Productivity
Use the message tool to send, edit, and moderate Discord messages with interactive components.
Interactive Verdict Preview
Productivity
Generate an interactive HTML preview of keep/drop verdicts for maintainer review, then process the pasted feedback JSON.