kormem
Local long-term memory for AI agents. kormem indexes everything you say to assistants and every file, folder or URL you add, files it into an Obsidian-compatible vault of linked notes, and returns the ranked notes and sources a question needs in a few seconds. --deep adds a small recall agent that returns dated findings.
The commands follow QMD: collection add, context add, search, vsearch, query, get, multi-get and ls work the same way.
▶ Watch the launch video (68 s)
Add kormem to your agent
Paste this into Claude Code, Codex, Cursor or any agent that can run commands:
Install kormem, long-term memory for this agent.
1. Run `npm install -g kormem` (or `pip install kormem`), then `kormem init`.
2. Add the kormem skill. Use one installation method:
- In Claude Code, `kormem init` installs the kormem plugin. If it says it didn't, run
`claude plugin marketplace add kushalsinha/kormem`, then
`claude plugin install kormem@kormem`.
- In another agent, run `npx skills add kushalsinha/kormem --skill kormem` and select
your agent.
3. Ask me to add two keys to ~/.kormem/.env. Don't ask me to paste keys into the chat.
- OPENAI_API_KEY (https://platform.openai.com/api-keys): files my chats and documents
into memory and runs deep recall.
- TYPESAFE_API_KEY (https://typesafe.ai), recommended: Jev ranks what recall returns
in about 0.3 s for a tenth of a cent, with no LLM call.
Then run `kormem doctor` to check both are set.
4. Read the skill:
https://github.com/kushalsinha/kormem/blob/main/plugin/skills/kormem/SKILL.md
(raw: https://raw.githubusercontent.com/kushalsinha/kormem/main/plugin/skills/kormem/SKILL.md)
Then use kormem to recall what I've said, decided and preferred before.
Commands
pip install kormem # or: uvx kormem …, npm install -g kormem, bunx kormem …
kormem init # key file, engine, background services, Claude Code plugin
kormem collection add ~/notes --name notes
kormem context add kormem://notes "Personal notes and ideas"
kormem search "project timeline" # keyword search
kormem vsearch "how to deploy" # semantic search
kormem query "what did we decide about X?" # ranked notes and sources; --deep runs the recall agent
kormem get "#abc123" # open a source by docid
kormem remember "I prefer pnpm over npm"
kormem mcp # MCP server for Claude Code, Claude Desktop, Cursor
One key, in ~/.kormem/.env (kormem init creates it): OPENAI_API_KEY runs extraction and the recall agent with gpt-6-luna and embeddings with text-embedding-3-small. GEMINI_API_KEY is optional (kormem model set embedding gemini-embedding-2). TYPESAFE_API_KEY is optional too: Jev, a fast decision model, judges which sources answer each question in about 0.3 s for about a tenth of a cent, with no LLM call; short previews of those sources are sent to TypeSafe. Without any key, embeddings run locally and kormem still indexes and searches. The answer comes from your assistant's own model. kormem model shows and changes the model behind each job; pick the embedding model once, since changing it re-embeds everything.
Benchmark
LongMemEval-S, all 500 questions, scored by the official GPT-4o judge (evaluate_qa.py) unless marked as Mem0's custom judge. Each question gets one answer from kormem's deep recall (linked vault and recall agent; about 8 full sessions, ~32k tokens of context). All Kormem rows answer from the same cached contexts.
| System | Answer model | Accuracy |
|---|---|---|
| Kormem | Claude Sonnet 5.5 (Mem0's custom judge) | 95.6% |
| Mastra Observational Memory | gpt-5-mini | 94.9% |
| Kormem | Claude Sonnet 5.5 | 94.4% |
| Kormem | GPT-6.1 Sol | 93.8% |
| Kormem | GPT-6 Astra | 93.6% |
| Mem0 platform | GPT-5 (custom judge) | 93.4–94.4% |
| gbrain | Claude Sonnet 4.6 | 86.6% |
| Supermemory | Gemini 3 Pro | 85.2% |
| Zep | GPT-4o | 71.2% |
Other systems' numbers are self-reported. Setups and caveats: full report. Mem0's figure uses its own, more lenient judge. Re-judging our misses with that judge (same prompt, GPT-5) raises Kormem with Sonnet to 95.6%, Sol and Astra to 94.4%.
MemPalace publishes only retrieval recall (R@5: a gold session in the top 5), not answer accuracy, so it gets its own table. Same 500 questions, session level:
| System | LLM in ranking | R@5 | All gold sessions in top 5 |
|---|---|---|---|
| Kormem | yes | 99.8% | 95.8% |
| MemPalace hybrid v4 + LLM rerank | yes | 99.2% | 89.8% |
| MemPalace hybrid v4 (held-out 450) | no | 98.4% | 88.7% |
| MemPalace raw | no | 96.6% | 85.0% |
MemPalace figures are recomputed from its committed per-question results; method in the full report.
Full documentation, diagrams and the Claude Code plugin: https://github.com/kushalsinha/kormem
Metadata
Release files for kormem 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| kormem-0.1.3.tar.gz | 166.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kormem-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 347.7 kB
Release files / kormem-0.1.3.tar.gz
| Download URL | kormem-0.1.3.tar.gz |
|---|---|
| Size | 166.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4759495769ebc0204d5c07a172acd9269c5363d46383776c8c3464bfb1e0e949
|
|
BLAKE2b-256 checksum How to use checksums |
56a2dfa9e8df4b3d200db0474c79a22dfb61b0bf469544953dde720d32c13b52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / kormem-0.1.3-py3-none-any.whl
| Download URL | kormem-0.1.3-py3-none-any.whl |
|---|---|
| Size | 181.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ae459c49fbc0a3660ce664dcaf92609ac16d6f0ad9bd8bb7a87a1ad1bed1b097
|
|
BLAKE2b-256 checksum How to use checksums |
556e0e669bb86ab1883c4d89f8764acabc8392204943aa780225e7551ce48ab4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for kormem 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.