ClawMem
On-device memory layer over your markdown notes: hooks plus a 33-tool MCP server, no API keys.
ClawMem indexes a folder of markdown notes and project docs into a local SQLite vault with hybrid retrieval (BM25 plus local embeddings and reranking), then surfaces context into Claude Code, OpenClaw, or Hermes on every prompt through lifecycle hooks. An MCP server exposes search, timeline, and causal-link tools for targeted retrieval. Fully local; MIT.
- you want Claude Code to remember your project decisions without sending notes to a cloud
- you run OpenClaw or Hermes agents and want them sharing one memory with your coding sessions
- Needs Bun; native Windows is not recommended, use WSL2
- SOTA embedding stack wants 16GB+ VRAM; smaller hardware falls back to CPU models or a cloud embedding endpoint
- Snap-installed Bun cannot read stdin, which breaks hooks (README)
- Sits at the agent-memory edge of notes-knowledge; flagged for the Curator
Last activity Aug 18, 2026. Fit: adaptable 3, operable 3.
Adaptable: what is yours to change
Make it yours
Config only15 things to edit
clawmem bootstrap ~/notes does init, index, embed, hooks, and MCP registration in one go. The business surface is ~/.config/clawmem/config.yaml: named collections with a glob pattern each (default **/*.md) and optional named vaults (or CLAWMEM_VAULTS), which decide what the agent remembers; SKILL.md holds the retrieval rules the agent follows. .env.example names only model plumbing: CLAWMEM_EMBED_URL, CLAWMEM_EMBED_MODEL, CLAWMEM_EMBED_DIMENSIONS, CLAWMEM_EMBED_API_KEY, CLAWMEM_RERANK_URL, CLAWMEM_LLM_URL, CLAWMEM_NO_LOCAL_MODELS; CLAWMEM_HEAVY_LANE and CLAWMEM_JUDGE_* switch optional lanes. Hooks land in Claude Code settings.json.
- Env vars
CLAWMEM_EMBED_URLCLAWMEM_EMBED_MODELCLAWMEM_EMBED_DIMENSIONSCLAWMEM_EMBED_API_KEYCLAWMEM_EMBED_TPM_LIMITCLAWMEM_RERANK_URLCLAWMEM_LLM_URLCLAWMEM_NO_LOCAL_MODELSCLAWMEM_API_TOKENCLAWMEM_HEAVY_LANECLAWMEM_VAULTS- Config files
~/.config/clawmem/config.yaml.env~/.claude/settings.json- Prompt files
SKILL.md- Accounts you need
- none
Source
- github.com/yoloshii/ClawMem
- MIT license
- Last commit Aug 18, 2026
- 207 stars
Operable: what an agent can drive
Interface
NativeMCP serverpublished by the builderlocal
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
- Docs
- github.com/yoloshii/ClawMem#readme
- Tools
memory_retrievesearchvsearchqueryquery_planintent_searchtimelinefind_causal_links
Reach
Partial coverage. 6 of 9 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Retrieve relevant notes for a prompt | Reachable | memory_retrieve, query, search, vsearch, intent_search MCP tools; context-surfacing hook does it automatically |
| Navigate the timeline around a document | Reachable | timeline tool |
| Find causal links between decisions | Reachable | find_causal_links tool |
| Capture decisions and session handoffs | Reachable | Stop and PreCompact hooks run decision extraction and precompact-extract |
| Detect and decay contradicted decisions | Reachable | runs when a judge is configured with CLAWMEM_JUDGE_*; disabled otherwise |
| Index additional collections | Not reachable | clawmem collection add is CLI; pattern per collection in config.yaml |
| Import chat exports (Claude, ChatGPT, Slack) | Not reachable | clawmem mine is a CLI command, not an MCP tool |
| Sync Beads issues into memory | Not reachable | CLI plus bd; not an MCP tool |
| Query across multiple vaults | Reachable | retrieval tools accept an optional vault parameter |
Code stack
- Languages
- TypeScript
- Frameworks
- Bun
- Package manager
- bun
- Database
- SQLite (FTS5, sqlite-vec)
- Hosting target
- local
- Built
- Unknown (recorded, never ranked)
Model stack
- Providers
- local embedding and reranker models (zembed-1, zerank-2, QMD combo)optional OpenAI-compatible embedding endpoint
- Models
- zembed-1zerank-2
- Keys you need
CLAWMEM_EMBED_API_KEYCLAWMEM_EMBED_URLCLAWMEM_LLM_URLCLAWMEM_RERANK_URL- Prompts live in
SKILL.md
Skills
A root SKILL.md teaching an agent to use the ClawMem memory MCP server.
- Kind
- bundled
- Paths
SKILL.md
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: MCP stdio server plus hooks and CLI; registered in ~/.claude.json | 90% |
| executionModel | runs local embedding and reranker models; optional LLM synthesis and judge | 75% |
| operability | hooks and MCP are the product; README 'On-device memory for Claude Code, OpenClaw, and Hermes' | 90% |
| effort | .env.example CLAWMEM_* names; README names ~/.config/clawmem/config.yaml | 80% |
| editions | MIT, npm package, no paid edition | 95% |
| active | pushedAt 2026-08-18; Show HN 2026-03-22 | – |
| provenance | CLAUDE.md, AGENTS.md, SKILL.md present; no authorship statement | 30% |
| reach | 80% |
Open questions
- Full list of the 33 MCP tools
- Which CLAWMEM_JUDGE_* names exist and what provider they expect
Sources
- github.com/yoloshii/ClawMem sourcing:notes-knowledge:community