Distill CLI
A Go utility with an MCP mode keeps agent memory across sessions, drops duplicates on write and compresses aging context.
- 198 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The utility stores agent notes on disk and may reach a vector database and an HTTP server.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/distillDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The utility stores agent notes on disk and may reach a vector database and an HTTP server.
This is third-party code. Review the repository files before installing.
What it does
Distill keeps persistent memory for LLM agents and cleans context before it reaches the model. Entries are deduplicated on write, get an expiry and sensitivity tags, and conflicting facts are flagged ahead of time. Similar chunks go through four steps: over-fetch, cluster, pick a representative per cluster and re-rank for diversity. Processing is deterministic and makes no LLM calls, with about 12 ms of overhead. It ships as a CLI, an HTTP server and a `distill mcp` server for Claude Desktop, Cursor and Amp.
Who it is for. Developers of RAG pipelines and agents whose context bloats with repeats and contradicts itself.
Good fit when
- The agent re-learns the same project constraints every time and they must persist across sessions.
- A vector database returns many near-identical chunks and tokens go on repeats.
- Notes hold two versions of one fact and the agent must see the conflict upfront.
- Context is frozen as a build artifact: `distill lock`, `build` and `verify` produce a reproducible bundle.
Not a fit when
- You need semantic compression of meaning through an LLM call.
- A short session with no repeats and no stored memory is enough.
- You want a ready vector store, not a layer on top of one.
Example request
Connect Distill as MCP and remove duplicates from these 40 chunks, keeping one representative per cluster.Limitations
Deduplication needs chunk embeddings: the tool does not compute them itself. A vector database is attached with the `--backend` flag. The Handoff v0 part is marked an experimental alpha. Releases still carry alpha tags, and binaries are downloaded from the releases page and checked against `checksums.txt`. Memory is stored locally, so private notes belong in a protected directory. The interface may change before a stable version, so pin a release tag.
How to disable. Remove the `distill mcp` entry from the MCP client configuration, stop the HTTP server and delete the binary. Remove memory files and lock outputs separately.
FAQ
Which tools does the MCP server have?
`deduplicate_chunks` removes repeats with no external dependencies, `retrieve_deduplicated` queries a vector database and needs `--backend`, and `analyze_redundancy` measures the share of repeats.
How do I start the MCP server?
Locally with `./distill mcp`, or `./distill mcp --memory --session` for memory and sessions. Add `--transport http --port 8081` for remote access.
Does Distill call an LLM?
No. The pipeline is deterministic and makes no model calls, so one input gives one result.
What does `distill lock` do?
It freezes the source list and settings into `context.lock.json`, `build` assembles a bundle and `verify` checks its hashes offline.
How does Distill differ from plain RAG ranking?
It removes repeats: chunks are grouped into clusters, one representative is taken from each and results are re-ranked for diversity. There are no LLM calls.
Discussion
No questions or reviews yet.
Related
CLI toolsAn MCP server for long-term agent memory: compresses dialogues into atomic facts, resolves pronouns and anchors relative time to absolute dates
Local context compression for agents: tool outputs, logs, files and RAG chunks shrink before reaching the LLM. Proxy, CLI, library and MCP
memory.cpp compiles repository history into compact agent context and filters out stale items, secrets and contradictions
Long-term memory for agents: a remote MCP server, plugins for Claude Code, Cursor and Codex, and an API for your own apps
A long-term memory MCP server for agents: one Rust binary that runs offline and never calls a language model
Encrypted offline memory for AI agents: one vault on your own computer shared by Claude Code, Cursor, Codex and other clients
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Distill (this card) | no | 198 | ||
| agent-memory | no | 4,315 | an agent notes store; Distill deduplicates chunks on write and freezes context into a verifiable bundle | |
| MCP Memory Service | no | not required | 2,117 | a long-term memory MCP service; Distill centres on deduplication without LLM calls and deterministic results |
README in short
The project describes itself as a context engineering layer between data sources and the model: remember, deduplicate, compress, summarize and cache. All stages chain through `distill pipeline` or `POST /v1/pipeline`.