
KMP
io.github.underpass-ai由 GitHub 账号 underpass-ai 发布v0.24.0更新于 Oct 27, 2026
Local-first agent memory that preserves what happened, when and why
概览
面向编码代理的本地优先记忆,保存决策、其证据与发生时间,让后续会话直接追问原因而不必重新推导。
- 可以做什么
- 恢复紧凑的项目状态,并就某个决策追问原因,得到已存证据或诚实的 UNKNOWN
- 按时间在记忆中前后翻页、跳转到某个时间点,并读取某一处的邻近记忆
- 审计两个引用之间的证据路径,查看单个对象及其关联与证据,检查摘要覆盖情况
- 记录决策、约束与结果,导入规范化的记忆图,调整标签并生成精简卡片
- 打开并依据语义意图操控共享的 ChronoLoom 视图,读取其状态
- 适用场景
- 适合多个代理会话或不同编码代理在同一项目上工作、却反复丢失或违背先前决策的场景。也适合希望把“为什么这样做”的可审计、带时间的记录保存在本机的团队。
- 运行要求
- 以本地 stdio 进程运行,可通过 MCPB 包或 cargo install kmp-mcp 安装;内嵌二进制使用 SQLite,无需 Docker、数据库服务器、账号或 API 密钥。可选环境变量 KMP_KERNEL_GRPC_ENDPOINT、KMP_MCP_DATA_DIR、KMP_VIEWER_ADDR 分别调整端点、记忆目录与查看器。安装与更新会访问 GitHub Releases。
安装
README
KMP — Agent memory that remembers why
Local first. Evidence attached. Time included.
[CI] [Release] [crates.io] [License]
KMP is local-first memory for coding agents. It runs beside Codex, Claude Code and Hermes Agent as one small binary with an embedded SQLite store, and it remembers what was decided, what the evidence was and when it happened. Never the transcript. No account, no service, no API key: memory stays on your machine.
Ask your agent "Why did we choose SQLite?" and it answers from stored
evidence, or says UNKNOWN instead of guessing. Ask "Show me the memory
behind this decision" and ChronoLoom, the viewer that ships inside the
binary, opens on that decision and lights up its proof path, with time as a
dimension you can move through and a view the agent and you steer together.
Memory tools retrieve and audit the evidence, view tools steer that shared
ChronoLoom view, and the running server's tools/list defines the current
surface.
The problem
Your agent decides something today. Tomorrow a new session, or a different agent, rediscovers the same incident from scratch, or quietly contradicts the decision because the reason for it was in a context window that is gone. Summaries lose the reason; transcripts bury it.
KMP keeps the decision, the evidence it rested on and the moment it happened, as a typed, temporal memory the next session asks instead of re-deriving:
- evidence decides what can be claimed;
- relations carry the reason two memories belong together;
- time travel is explicit, cursor-based and auditable;
- old decisions are superseded, never quietly rewritten;
UNKNOWNis an honest answer when the evidence is not there.
See it in two minutes
Install KMP in your host (below), then in any project:
It writes a worked example into that project's memory — a checkout service, an incident, the decision that replaced an earlier one and the measurement that verified it — opens ChronoLoom on it and prints the questions to ask:
Name KMP and the about example:kmp-demo in the request. The example never
enters your project's committed bundle. More examples,
including KMP's own memory.
Install
Install the plugin, run setup, restart the host once. The guides reach a fresh store on the first read; nothing else to run.
Claude Code
Codex CLI
Then ask Codex to run kmp-setup.
Hermes Agent
With kmp-mcp installed, register it and install the skills through the
native lifecycle:
Verify
or run /kmp:doctor. The plugin owns the MCP registration, so do not add a
second KMP server by hand. cargo install kmp-mcp --locked is the fallback
for a platform with no published engine; MCPB packages, release tarballs and
the Pi coding agent are covered in the
plugin installation guide. Store selection and
repair live in Embedded KMP.
Talk to it like a human
You normally ask for the outcome. The KMP skill chooses the memory moves.
KMP is memory, not surveillance. Store durable decisions and evidence, not transcripts.
It also waits to be asked. A session that never mentions memory makes no KMP
call at all. Naming KMP, running a /kmp:* command, or opting in from your
project's CLAUDE.md or AGENTS.md is what opens a route. If you would
rather it enter known work on its own:
Ask in any language. The stored evidence is never translated; the answer comes back in yours. How that works.
How it works — the 10-second version
The plugin installs the skills and declares one local MCP process. The skill
turns intent into one or more typed tools. kmp-mcp validates the request,
and the kernel reads or writes the local graph-temporal store. The agent, not
KMP, turns returned evidence into conversational prose.
Explore ChronoLoom · Technical architecture
Local means local
.kernel/ is machine state and is ignored by git. A project-scoped store also
maintains .kmp/memory.jsonl. Export and Git commit are local operations;
pushing, syncing or sharing the bundle makes its contents available elsewhere.
Review its diff before sharing. Evidence read by the agent is also subject to
the host's data policy, independently of whether you share the bundle.
KMP's own memory
This repository eats its own cooking. .kmp/memory.jsonl
is the memory of why KMP is the way it is: the decisions behind it, each with
the document that states it, and the ones that superseded older ones. Restore
it with /kmp:restore and ask "why does a release advance the marketplace
branch last?" How it is written.
Shared memory, when you actually need it
Several machines can share one live KMP service through the Kubernetes topology backed by Neo4j, Valkey and NATS JetStream. It is still free, open source and self-operated. "Enterprise" describes the operational shape, not a paid tier or an Underpass-hosted product. It also means owning infrastructure, TLS, identity, authorization and observability. Keep it local until those responsibilities buy you something. Then read Enterprise KMP.
Project status
KMP is pre-1.0: useful today, actively evolving, and explicit about sharp
edges. Release automation builds kmp-mcp for Linux x86_64/arm64, macOS
arm64/x86_64 and Windows x86_64. The embedded path is the default; the remote
API is versioned v1beta1 and expects an operator.
We do not paste old benchmark numbers into the README. Reproducible, current evidence belongs in Research before it becomes a claim.
FAQ
Does KMP send my memory anywhere?
Not in the default embedded setup. The process, store and viewer are local. The agent host may be cloud-backed, so evidence sent to that agent follows the host's policy.
Do I need Docker, Kubernetes or a database server?
No. The shipped embedded binary uses SQLite. Kubernetes is only for a shared service.
Is there an LLM inside KMP?
No generative model is required for the default embedded path. KMP validates, stores and retrieves evidence; your agent writes the final answer and the English search summary. Optional TypeSafe Jev features send selected text to an external model for judgments, and optional semantic retrieval uses a local encoder. These integrations require explicit configuration. See retrieval defaults and opt-ins.
Can Codex and Claude share the same memory?
Yes: both speak the same MCP contract, and SQLite supports multiple local hosts. Use the maintained project bundle to move state between machines, or the enterprise topology for shared network access.
Is UNKNOWN an error?
No. It means the selected memory did not contain eligible evidence for the question. That is safer than a confident invention.
The tools disappeared. What now?
Run the host's kmp-doctor workflow and follow the
missing-tools runbook. The usual suspects
are a stale host session, duplicate MCP ownership, a missing binary or an
unsupported store format.
Is enterprise KMP paid?
No. The code is Apache-2.0. You operate and pay for any infrastructure you choose to run.
The MCP moves
Over memory, over the view a person is looking at, and one for persistent
agent identity and progressive guidance. tools/list is the authority.
The view tools never write memory: they carry a closed, semantic vocabulary with no coordinates in it, and a person at the loom has right of way — an intent prepared against a stale revision conflicts rather than yanking the view away.
Human workflows such as kmp-setup, kmp-doctor, kmp-info, kmp-catchup,
kmp-save, kmp-restore and kmp-revert compose the MCP surface. They are
not extra memory verbs. The machine-checked ownership map is
plugins/kmp/capabilities.json.
Docs and project links
- Documentation home
- Embedded KMP
- Retrieval defaults and store configuration
- Languages
- Examples
- Enterprise KMP
- Technical architecture
- Runbooks
- Development
- Research
- Contributing
- Security policy
- Changelog
- Issues · Discussions
The implementation and executable checks win when prose disagrees: MCP schemas, plugin capabilities, CLI help, Helm values, API contracts and CI scripts are the source of truth.
License
Apache License 2.0. Free and open source.
来源:README.md,提交 af269ac
工具
0版本历史
6- v0.24.0最新Sep 27, 2026
- v0.23.0Sep 25, 2026
- v0.20.1Sep 25, 2026
- v0.20.0Sep 24, 2026
- v0.19.0Sep 22, 2026
- v0.18.9Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分