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

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

為編碼代理設計的本地優先記憶,保存決策、其證據與發生時間,讓後續工作階段直接追問原因,不必重新推導。

可以做什麼
  • 回復精簡的專案狀態,並針對某個決策追問原因,取得已存證據或誠實的 UNKNOWN
  • 依時間在記憶中前後翻頁、跳至某個時間點,並讀取某一處的鄰近記憶
  • 稽核兩個參照之間的證據路徑,檢視單一物件及其關聯與證據,檢查摘要覆蓋情形
  • 記錄決策、限制與結果,匯入正規化的記憶圖,調整標籤並產生精簡卡片
  • 開啟並依語意意圖操控共享的 ChronoLoom 檢視,讀取其狀態
適用情境
適合多個代理工作階段或不同編碼代理在同一專案上工作、卻反覆遺失或違背先前決策的情況。也適合希望把「為什麼這樣做」的可稽核、帶時間紀錄保存在本機的團隊。
執行需求
以本機 stdio 程序執行,可透過 MCPB 套件或 cargo install kmp-mcp 安裝;內嵌二進位使用 SQLite,不需要 Docker、資料庫伺服器、帳號或 API 金鑰。選用環境變數 KMP_KERNEL_GRPC_ENDPOINT、KMP_MCP_DATA_DIR、KMP_VIEWER_ADDR 分別調整端點、記憶目錄與檢視器。安裝與更新會連線 GitHub Releases。
安裝前請注意
記憶會寫入專案的 .kernel/ 目錄以及維護用的 .kmp/memory.jsonl 套件;匯出與提交是本機操作,但推送或分享該套件會讓內容外流,分享前應先檢視差異。回傳給雲端代理主機的證據受該主機的資料政策約束。選用的 TypeSafe Jev 整合會把選定文字送往外部服務,需明確設定。專案仍在 1.0 之前。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 KMP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

KMP — Agent memory that remembers why

[KMP]

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;
  • UNKNOWN is an honest answer when the evidence is not there.

See it in two minutes

Install KMP in your host (below), then in any project:

bash
kmp-mcp demo

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:

You sayYou get
"Why are retries to the payment provider capped at two?"The decision, with the incident and the ADR it cites.
"What did we believe about retries in August 2026?"The earlier decision, as it stood then, not the cap that replaced it.
"What changed about retries in September 2026?"The incident, the cap and the measurement, in order.
"Show me the memory behind the retry cap decision."ChronoLoom opens on the decision and lights up its proof path.

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

text
/plugin marketplace add underpass-ai/kmp@marketplace/plugin install kmp@underpass/kmp:setup

Codex CLI

bash
codex plugin marketplace add underpass-ai/kmp --ref marketplacecodex plugin add kmp@underpass

Then ask Codex to run kmp-setup.

Hermes Agent

With kmp-mcp installed, register it and install the skills through the native lifecycle:

bash
kmp-mcp setup --hermes

Verify

bash
kmp-mcp doctor

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.

You sayThe agent doesYou get
"Continue the KMP documentation work."Wakes project:kmp before re-deriving it.Current decisions, constraints and next actions.
"Why did we choose SQLite?"Asks memory and follows the stored evidence.A grounded answer, or UNKNOWN.
"What does KMP remember from yesterday?"Resolves the interval and navigates every temporal page.Ordered memory from that period.
"Why was the launch postponed in March?"Asks memory standing within March: only what fell inside competes, and the lifecycles are read as they stood then.A grounded answer from that time, or UNKNOWN naming the nearest match outside the span.
"Remember that retries are capped at two because logs showed amplification."Records the decision, its evidence and meaningful relations.Durable state with an auditable why.
"Show the proof between this incident and that decision."Traces the typed path and inspects its evidence.The stored connection, rationale and sources.
"Undo that decision."Writes a state that supersedes the old one.Both decisions remain visible in time.
"Save the project memory."Exports the maintained project bundle and shows its diff.Reviewable .kmp/memory.jsonl.

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:

bash
kmp-mcp config memory-routing alwayskmp-mcp config memory-routing on-request   # the default

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

mermaid
flowchart LR    U[You] --> H[Codex or Claude]    H --> S[KMP skill]    S -->|chooses a move| M[kmp-mcp]    M --> K[embedded kernel]    K --> D[(.kernel/\nSQLite)]    K --> V[local read-only viewer]

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.

LayerOwnsDoes not own
PluginInstallation, host discovery, skills and the single MCP declaration.Memory semantics or a second tool vocabulary.
SkillsWhen to recover, ask, navigate, audit, write, diagnose, save or restore.Persistence.
kmp‑mcpThe schema-checked tool boundary over local stdio.Choosing a workflow from user prose.
KernelValidation, temporal storage, traversal, deterministic retrieval and proof.Generating prose or inventing rationale.

Explore ChronoLoom · Technical architecture

Local means local

BoundaryDefault behavior
MemoryStored on your machine, normally in the repository's .kernel/.
MCP transportLocal stdio between the agent host and kmp-mcp.
ViewerRead-only loopback HTTP, normally rooted at http://127.0.0.1:7317/, behind a random per-session capability.
External servicesNone required; optional TypeSafe Jev integrations send selected text to the configured service.
UnderpassReceives no memory and operates no service in this path.
UpdatesSetup and updates contact GitHub Releases for checksummed packages; the Claude session hook can check releases daily.
Local metadataAgent identities and guide delivery records live outside memory retrieval; quality diagnostics use a separate local journal.
Cloud agentsEvidence returned to a cloud agent follows that host's data policy.

.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.

ToolPurpose
kmp_guideOpen a capability map, preserve agent identity and expand one worked card.
kmp_wakeRecover compact state before continuing work.
kmp_askRetrieve evidence for a semantic question, or UNKNOWN.
kmp_relateRead what the memories of several abouts have to do with each other in a span, off the scopes and clocks they share.
kmp_timeMove through memory on one clock: rewind and forward page backward and forward from a cursor or through an interval, goto jumps to a time, sequence or ref, near reads the neighbourhood around one.
kmp_traceAudit a path between two refs, or search for evidence from seed refs; inspect returned support and completeness.
kmp_inspectInspect one object inside an explicit about, with its links and evidence.
kmp_write_memoryValidate and record a decision, constraint or outcome.
kmp_ingestIngest an exact canonical memory graph.
kmp_relabelChange the labels a memory stands in — add, take off, and why — without rewriting its text.
kmp_condenseWrite a compact reader card for one stored body, bound to the exact version it was read from.
kmp_summaries_auditRead where an about's memories stand with respect to their English search summaries: what is missing, what the lint refuses, and what stands and still retrieves little.
kmp_curateReview the relations of one or several abouts with TypeSafe Jev as an opt-in second reader: pairs nothing declares, with the type Jev would choose, and declared relations whose reason Jev doubts. The agent writes every relation.
kmp_view_openOpen or rehydrate a ChronoLoom view over an about.
kmp_view_apply_intentMove that view by declaring meaning — focus, clock, zoom, filters, selection — under optimistic concurrency.
kmp_view_get_stateRead the view's semantic state, never its pixels.

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

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
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

6
  1. v0.24.0最新Sep 27, 2026
  2. v0.23.0Sep 25, 2026
  3. v0.20.1Sep 25, 2026
  4. v0.20.0Sep 24, 2026
  5. v0.19.0Sep 22, 2026
  6. v0.18.9Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分