mothermachine

Browse / Notes and knowledge

ClawMem

On-device memory layer over your markdown notes: hooks plus a 33-tool MCP server, no API keys.

AdaptableOperable MCP serverMCP server Hybrid TypeScript MCP server License: MIT

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.

Use it when
  • 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
Gotchas
  • 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.

Editions

Free · Free open source

  • Clonegit clone https://github.com/yoloshii/ClawMem
  • Installnpm install -g clawmem && clawmem bootstrap ~/notes --name notes

For agents: JSON · Markdown

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_URL CLAWMEM_EMBED_MODEL CLAWMEM_EMBED_DIMENSIONS CLAWMEM_EMBED_API_KEY CLAWMEM_EMBED_TPM_LIMIT CLAWMEM_RERANK_URL CLAWMEM_LLM_URL CLAWMEM_NO_LOCAL_MODELS CLAWMEM_API_TOKEN CLAWMEM_HEAVY_LANE CLAWMEM_VAULTS
Config files
~/.config/clawmem/config.yaml .env ~/.claude/settings.json
Prompt files
SKILL.md
Accounts you need
none

Source

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_retrieve search vsearch query query_plan intent_search timeline find_causal_links

Reach

Partial coverage. 6 of 9 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Retrieve relevant notes for a promptReachablememory_retrieve, query, search, vsearch, intent_search MCP tools; context-surfacing hook does it automatically
Navigate the timeline around a documentReachabletimeline tool
Find causal links between decisionsReachablefind_causal_links tool
Capture decisions and session handoffsReachableStop and PreCompact hooks run decision extraction and precompact-extract
Detect and decay contradicted decisionsReachableruns when a judge is configured with CLAWMEM_JUDGE_*; disabled otherwise
Index additional collectionsNot reachableclawmem collection add is CLI; pattern per collection in config.yaml
Import chat exports (Claude, ChatGPT, Slack)Not reachableclawmem mine is a CLI command, not an MCP tool
Sync Beads issues into memoryNot reachableCLI plus bd; not an MCP tool
Query across multiple vaultsReachableretrieval 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_KEY CLAWMEM_EMBED_URL CLAWMEM_LLM_URL CLAWMEM_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

FieldWhere it was seenConfidence
formFactorREADME: MCP stdio server plus hooks and CLI; registered in ~/.claude.json90%
executionModelruns local embedding and reranker models; optional LLM synthesis and judge75%
operabilityhooks 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.yaml80%
editionsMIT, npm package, no paid edition95%
activepushedAt 2026-08-18; Show HN 2026-03-22–
provenanceCLAUDE.md, AGENTS.md, SKILL.md present; no authorship statement30%
reach80%

Open questions

  • Full list of the 33 MCP tools
  • Which CLAWMEM_JUDGE_* names exist and what provider they expect

Sources