概览
What is PLUR?
PLUR is open, local-first memory for AI agents. Your agent's corrections, preferences, and conventions are stored as plain-text engrams on your own machine — memory you can read, correct, and delete, not weights baked into a model you can't inspect. One store works across Claude Code, Cursor, Windsurf, OpenClaw, and Hermes over MCP, so what your agent learns in one tool carries over to the next.
Why PLUR
- Plain-text you own — every engram is human-readable YAML you can read,
git diff, edit, and provably delete. Not opaque vectors or model weights.
- Local-first, zero-cost — hybrid search (BM25 + local embeddings) runs fully offline: no API calls, no per-query cost.
- Cross-tool — the same
~/.plur/ store is shared across Claude Code, Cursor, Windsurf, OpenClaw, and Hermes.
- Team-shareable —
plur sync is git underneath, so the same memory follows you across machines and across a team.
- It learns and forgets — feedback-trained retrieval with ACT-R activation decay and an on-demand contradiction scan, not a grow-forever store.
Benchmarks
98% R@5 on the full LongMemEval-S corpus (N=500), fully local and reproducible with a pinned corpus SHA. Retrieval and end-to-end answer accuracy are reported separately, never conflated. Harness: plur-ai/plur-bench.
Install
One line sets up storage, MCP config, and hooks:
npx @plur-ai/mcp init
Then ask your agent "What's my PLUR status?" to confirm it works. See the README for Cursor, OpenClaw, Hermes, and Python setup.
Tools
PLUR exposes ~40 MCP tools. Core set: plur_learn (store a correction or preference), plur_recall_hybrid (retrieve relevant memories), plur_inject_hybrid (select engrams within a token budget), plur_feedback (rate relevance), plur_forget (retire a memory), plur_capture and plur_timeline (event episodes), and plur_status.
License
Apache-2.0 — the engram format is an open, versioned standard. Read it, build your own tooling, or run a different engine on the same files.