Show HN: PMB – local memory for coding agents that shows if it is used

oleksiibond1 pts0 comments

PMB · local-first memory for your AI coding agent

100% on your machineNo API keysNo cloud, no telemetryApache-2.0 , open source

How it worksMemory that doesn't wait to be asked<br>Hooks inject the right memory before the model thinks, and journal the agent's work after, no LLM call on the read path, no tool the agent has to remember to call.

1 · Any agent records__claude__Claude Code<br>__cursor__Cursor<br>__openai__Codex

writes to memory

PMB · one local memory<br>recalls what matters<br>2 · Surfaced before it answerslesson0.94<br>file0.88<br>decision0.81

01 · Read4–16 ms<br>memoryagent<br>Auto-recall on every prompt<br>Every message is classified in sub-millisecond; the matching lessons, decisions and project overview are fetched for the agent before it reasons.

02 · Write<br>agentSQLiteLanceDB<br>Sub-millisecond async writes<br>The MCP tool returns instantly. SQLite first; the embed and LanceDB vector insert run on a background thread, never blocking the turn.

03 · Fuse94.5% recall@10<br>top-k<br>Hybrid recall, ranked<br>BM25 + dense vectors + entity graph + optional rerank, fused with Reciprocal-Rank-Fusion. One call returns the right thing, ranked.

04 · Learnhonest follow-rate<br>0.940.700.12<br>Lessons that earn their place<br>Every rule is scored by whether the agent actually follows it. Useful ones get starred; ignored ones are flagged dead, so you prune what doesn't help.

The Map · live entity graphYour memory, as a graph you can explore<br>Every fact, decision, lesson, file and entity becomes a node, color-coded by type, sized by importance. Hover one to dim the rest, light up its neighbors, and read the full memory chunk.

MapTimelineOverviewLessons

By kindBy cluster<br>All edgesStrong

0 entities · 0 connections · 8 clusters<br>drag · scroll · hover

Entity kinds

Memory chunk<br>hover a nodeHover or tap any node to inspect the memory it holds and its strongest connections.

The Timeline · git-graph journalEvery decision, lesson and commit, newest first<br>One lane per project, nodes color-coded by event type, connected by soft curves. The same journal that ships in the dashboard, written automatically as you work.

MapTimelineOverviewLessons

Type

Not a mockupThis is the actual dashboard<br>A local web app served from your machine. The Map and Timeline above are live recreations, here is the real thing, rendering one project's memory.

MapTimeline<br>5,229 entities

The Map · 65,005 connections across 149 clusters, color-coded by kind

Why it mattersWhat changes when your agent remembers<br>Not features, outcomes. This is what persistent memory actually does to your day.

Stop re-explaining your project<br>Every session starts already knowing your decisions, conventions and the bug you hit last Tuesday. No more pasting the same context into a fresh chat.

Switch tools without losing context<br>Claude Code, Cursor, Codex and Zed all read the same memory. Your context follows you, not your editor, so changing agents costs nothing.

Memory you can actually trust<br>PMB scores whether each lesson gets followed and flags the dead ones. It tells you when a memory isn't helping, so your context stays honest, not bloated.

Watch it compoundSession 1 of 5Day one: a blank slate<br>The agent starts with nothing. You explain your project, your conventions, the bug you hit last Tuesday, and at the end of the session it all evaporates.<br>12<br>entities

lessons

recall hits

S1S2S3S4S5

QuickstartSeven commands, then just talk to your agent<br>No account, no keys, nothing leaves your machine. Inspect everything from the terminal, or open the dashboard.

zsh · ~/pmb

pmb recall<br>fix the pricing bug in checkout⏎<br>never lower NEGOTIATE/SKIP under 25%<br>lesson · PMB

0.94<br>verdict-policy.ts · line 142<br>file · opened Tue 14:32

0.88<br>use RRF over a learned weight<br>decision · 4 days ago

0.81<br>3 of 41 memories · fused in 35 ms hybrid recall

IntegrateOne command wires your agent to MCP<br>Everything runs over stdio, the server is a child process of your agent. No network, no port, no token.

Claude Code

Rules appended to your agent's config automatically<br>Point several agents at one shared workspace<br>Verify the wiring with pmb doctor

Any model · local or hostedBring your own model, or run it offline<br>PMB never calls an LLM on the read path. The optional summarize and graph-extract passes run on whatever you point them at, including a fully local Ollama. Your memory stays yours.

graph.extractor = llm:ollama·run extraction and summaries on a local model, 100% offline, zero API keys.

QuickstartRunning in 60 seconds<br>Three commands, no account, no config. Then just work the way you already do.

1Install<br>One pip install. Pure Python, runs on macOS, Linux and Windows.<br>$pip install pmb-aiCopy

2Connect your agent<br>Wires PMB into your agent over MCP. Swap in cursor, codex, zed, and more.<br>$pmb connect claude-codeCopy

3Just talk to it<br>Work as usual, PMB records and recalls automatically. Open the dashboard any time to explore.<br>$pmb dashboardCopy

ArchitectureFiles on your disk, all the way down<br>Every event lives in SQLite;...

memory agent local recall project graph

Related Articles