Skip to content

Releases: oleksiijko/pmb

v0.2.5 - Active-mode agent memory + session continuity

05 Jun 01:02
35b119a

Choose a tag to compare

PMB is local-first persistent memory for AI coding agents (MCP server) - fully offline, no API keys, no LLM in the recall hot path.

This release makes agents actually use that memory: they log their own work as they go, and re-orient after a long session's context window compacts.

Highlights

🤖 Agents log their own work - pmb connect <agent> --active

Proactive-logging rules: the agent records its own decisions, completed work, lessons, failures and goals while coding - no "remember" needed. Recall stays lazy (zero overhead on general questions). Per-category toggles via pmb config / pmb tune.

🧵 Session continuity - session_brief

New session_brief MCP tool + pmb session brief: a digest of what was decided / done / learned this session, so an agent that lost its context can pick the thread back up instead of re-asking you.

🧠 Self-improvement loop

With agent.apply_lessons, the agent recalls and applies past lessons/failures before a task -bso it stops repeating the same mistakes in a project over time.

🔭 overview - "what do I know about X"

New overview MCP tool + pmb overview "<topic>": structured synthesis (key facts & decisions, lessons, failures, goals, timeline, related topics) in one call.

🐛 MCP correctness fixes

  • session_brief and overview are now actually exposed to agents (the tool-profile filter was silently dropping them - they returned "Unknown tool").
  • session_brief now covers the whole session (facts/goals/lessons, not just activities) and classifies decisions/done correctly.
  • Tool-profile filter is event-loop-safe.

📅 Answer-ready recall

  • Every recall result carries a human-readable resolved date (event time → session → creation), so agents answer "when…?" without epoch math.
  • Temporal validity windows + keyed_fact_as_of() - query what was true at a past time.

🧪 Tests & CI · 📚 Docs

End-to-end MCP tests (test_mcp_e2e.py), test_connect_active.py, test_jscore_levers.py. CI matrix now runs ubuntu + windows + macOS. New docs/COMMANDS.md full command reference.

Install

pip install -U pmb-ai
pmb connect claude-code --active   # or: codex, cursor, windsurf, …

v0.2.4 - Local-use commands & honest J-score eval

02 Jun 19:30
3cd640a

Choose a tag to compare

Own-your-data CLI commands

Use PMB as a personal, offline memory you fully control. All of these are
display/write-layer only - retrieval recall@10 and ~70ms p50 are unchanged.

  • pmb timeline - chronological, day-grouped view of your memory
  • pmb insights - analytics: totals, weekly growth, top topics, lessons/goals
  • pmb digest [today|week|month] - recap of recent memories
  • pmb export [--format markdown|json] - dump all memory to readable text
  • pmb forget-topic <topic> - archive everything about a topic in one command (reversible)
  • pmb ttl <ulid> 30d + --ttl on note/learn/fact + pmb prune-expired - memory expiry
  • pmb tag / untag / tags / tagged - local tags & collections
  • pmb reminders - overdue / due-soon goals
  • pmb snapshot create|list|restore - local, offline workspace snapshots

Eval harness

  • LLM-as-judge (J-score) harness improvements: full reader context,
    per-question failure logging, sharper reader prompt. Eval-only - no
    recall/product code touched.

Install

pip install -U pmb-ai ​

Full changelog: CHANGELOG.md

What's Changed

  • feat: local-use commands + J-score eval harness by @oleksiijko in #7

Full Changelog: v0.2.3...v0.2.4

v0.2.3 - procedural memory: lessons, failures, auto-distill

01 Jun 01:24

Choose a tag to compare

Full Changelog: v0.2.2...v0.2.3

Procedural memory layer - PMB now learns lessons and avoids repeating failures, on top of factual recall. The 94.5% LoCoMo recall@10 is unchanged.

Added

  • pmb learn "..." + pmb lessons - teach durable lessons ("this repo uses pnpm, never npm"); review them. Surfaced via the hybrid + predicate-aware ranker.
  • pmb learn --failed - negative memory: record failures ("numpy 2.x broke lancedb") that recall flags so they're not repeated.
  • pmb distill + auto-distill on session end - an LLM extracts durable lessons/failures from a session automatically (zero-command when lessons.auto_distill_on_session_end is on). Reuses Claude CLI / Anthropic / Ollama.
  • Lesson-intent boost - on how-to/convention queries, lessons & failures are gently boosted. Scoped to lesson/failure events only, so recall on datasets without them (LoCoMo) is unchanged.
  • Trust signals in recall - source attribution, confidence (high/med/low), staleness flag.
  • pmb audit memory-health - lessons / failures / stale / low-confidence / conflicts.
  • pmb note instant capture; pmb watch auto-ingest a notes file/folder.

Notes

  • LoCoMo recall@10 = 94.5% (full 10-conv run) - unchanged.
  • 50+ new regression tests; all green.

Install: pip install --upgrade pmb-ai

v0.2.2 - local capture, audit & source attribution

31 May 21:17
62a3d02

Choose a tag to compare

Adds local-use features for trust and effortless capture, plus the git-sync clone fix. Same engine, same 94.5% LoCoMo recall@10.

Added

  • pmb note "..." - instant memory capture from the terminal, no agent needed.
  • pmb audit - "what does PMB know about me?": a grouped, read-only view of everything stored, by type and by source.
  • pmb watch <file|dir> - auto-capture: new paragraphs in a notes file or folder (e.g. ~/journal.md) get ingested as memory, with content-hash dedup.
  • Source attribution on recall - every hit shows where it came from ("from: chatgpt - Project planning", "from: note (cli)", "from: markdown - notes.md").

Fixed

  • Git-sync clone now works when the remote's default branch is not "main" (previously produced an empty working tree on some hosts).

Notes

  • 14 new regression tests (provenance + watch). The 94.5% LoCoMo recall@10 and 70ms p50 are unchanged.

Install: pip install --upgrade pmb-ai

What's Changed

  • feat: local-use - pmb note, audit, watch + recall source attribution by @oleksiijko in #5

New Contributors

Full Changelog: v0.2.1...v0.2.2

v0.2.1 - agents, sync, encryption, import, explainability

29 May 22:42

Choose a tag to compare

Adds 6 more agent integrations, git-backed workspace sync, encrypted bundles, memory import, explainable recall, and pluggable embedders. Same engine, same 94.5% LoCoMo recall@10.

Added

  • 9 agent integrations (was 3): claude-code, cursor, codex, windsurf, gemini, vscode, zed, opencode, continue. pmb connect --list shows all; --config-path overrides location.
  • Git-backed workspace sync: pmb workspace init|push|pull|status|clone versions and syncs memory to any git remote (cross-device, team, backups), no server.
  • Encrypted workspace bundles: pmb workspace export|import packs a workspace into one authenticated-encrypted file (scrypt + AES/HMAC), safe even on a public remote. Needs pip install 'pmb-ai[crypto]'.
  • Memory import: pmb import chatgpt|claude|mem0|markdown <path> brings existing history into a fresh workspace.
  • pmb why "<query>": explains recall ranking with a full trace of which PAMVR rules fired and each multiplier.
  • Pluggable embedders: embedding.backend now also accepts ollama and openai, with a dimension guard that prevents mixing incompatible vector sizes.
  • scripts/benchmarks/vs_mem0.py: reproducible head-to-head benchmark vs mem0.

Fixed

  • PyPI page renders README logo and screenshots (absolute image URLs).
  • LanceDB table uses the active embedder's real vector dimension instead of a hardcoded 384.

Notes

  • 57 new regression tests. The 94.5% LoCoMo recall@10 and 70ms p50 are unchanged.

Install: pip install --upgrade pmb-ai

PyPI page rendering fix

27 May 23:13

Choose a tag to compare

Full Changelog: v0.1.0...v0.1.1

  • README images on PyPI: all 11 screenshots + logo now use absolute GitHub raw URLs. Previously they used relative paths (docs/assets/...) which only worked on GitHub, not on pypi.org.
  • Project logo added to docs/assets/logo.png.
  • Dynamic PyPI badges: version, monthly downloads, and supported Python versions are now read live from PyPI metadata, so they auto-update without README edits.
  • CI workflow: removed stale reference to a non-existent test file (tests/test_pamvr.py) that broke the matrix run.

v0.1.0 - Initial public release

27 May 23:00

Choose a tag to compare

PMB · Personal Memory Brain - local-first persistent memory for AI agents (Claude Code, Cursor, Codex).

Headline numbers

  • 94.5% LoCoMo recall@10 (reproducible, full 10-conversation run)
  • 70ms p50 warm recall (~3.7s MCP cold start)
  • 99.2% top-10 on 900-query multi-language stress test
  • 50+ languages via multilingual embedder, with explicit pattern coverage

What's inside

  • MCP-native: one command to wire into Claude Code / Cursor / Codex
  • Hybrid retrieval: BM25 + vector + PAMVR boosts, no LLM in the hot path
  • Auto VOCAB_BRIDGES: domain adaptation mined from your own data
  • Pattern query split: compound queries handled via fan-out + RRF fusion
  • Atomic fact extraction: mem0-style, regex-based, no LLM
  • Keyed-upsert: fact replacement with history (no duplicate current values)
  • Durable embed queue: SQLite-backed, survives process restarts
  • Multilingual safety: pmb doctor warns if your model doesn't match your data
  • Web dashboard at http://127.0.0.1:8765

Install

pip install pmb-ai
pmb connect claude-code

Restart your agent and say "remember - I prefer Postgres". See the README for full benchmarks, screenshots, and architecture.

Compared to alternatives

PMB mem0 Letta Zep
LoCoMo recall@10 94.5% ~67-70% ~76-80% ~80%
p50 latency 70ms 1-3s 1-3s 1-3s
Runs offline yes no (cloud) partial partial
API key required no yes yes yes

Honest limitations

  • Top-1 universal ceiling without LLM rerank: ~58% on LoCoMo, ~73% on the multi-language stress. Optional recall.llm_rerank (Ollama) lifts top-1 by 10-15pp at +200ms latency cost.
  • Some adversarial cases (mixed-language queries with ambiguous proper nouns) remain hard without LLM-based coreference.
  • Tested primarily on Windows + Linux. macOS works but has fewer CI runs.

License

Apache 2.0. No telemetry, no API keys, no cloud.

Full Changelog: https://github.com/oleksiijko/pmb/commits/v0.1.0