Lifecycle hooks call prepare and recall when memory is relevant, so you rarely invoke anything by hand, and because recall does not go through a model it stays fast enough to run constantly. The lesson loop is the unusual bit: surfaced lessons carry an id, and marking whether one actually changed behaviour is what feeds the self-improvement side rather than a claimed percentage.
A local-first memory workspace for MCP-aware coding agents. SQLite is the source of truth; search indexes sit beside it and are rebuildable.
- prepare — one call at the start of a task returning project context, surfaced lessons, recent activity and open goals; session_brief re-orients you mid-session
- recall, recall_smart and recall_deep — search memory, escalating to a deeper search only when confidence is low
- overview and project_overview — a structured what-do-I-know about a topic or a project, from the entity graph
- find_lessons and mark_lesson_followed — procedural rules with a surface_id, and a report of whether one actually changed behaviour
- record_batch as the single write path, plus record_fact, record_fact_tree, record_keyed_fact, record_goal, update_goal, record_activity, record_milestone, pin and forget
- index_pdf, index_project, record_code and record_image for pulling material in
- Tool profiles so the agent is not overwhelmed: minimal at 10 tools by default, lean at 30, default at 34, full at around 65
- graph_stats, graph_top_entities and graph_neighbors for inspecting the entity graph
Pip install pmb-ai, then pmb setup to detect your agent and write the MCP entry, pmb warmup to preload the model, and a client restart. pmb doctor confirms the wiring. The CLI is pmb, with pmb-ai as an alias; an npm path exists too. No account, no API keys, and no LLM call on the read path — everything stays on your machine. PMB_TOOL_PROFILE picks the tool profile.
One command — pip install pmb-ai && pmb setup
