Generated banner for Distill
Generated logo for Distill

Distill

Memory framework

First committed by Siddhant-K-code

Published in Siddhant-K-code/distill. Publisher page

198 GitHub stars

What it is

Context intelligence layer for LLM agents: persistent memory with write-time dedup, sensitivity tagging, conflict detection, and hierarchical decay. ~12ms. No LLM calls. MIT.
— the description by Siddhant-K-code

AutoGineer overview, from the brain’s own files

Distill is a framework designed to serve as a context intelligence layer for LLM agents. It provides persistent memory capabilities, allowing agents to maintain context across sessions. The system includes features for deduplication, sensitivity tagging, conflict detection, and hierarchical decay of information. It is designed to integrate with various environments, including Claude Desktop and Cursor, via an MCP server, and provides REST API endpoints for broader agentic applications.

How it works

Memory model: Hybrid

AutoGineer overview, from the brain’s own files

Distill functions as a memory layer that manages agent context through a series of internal packages. It handles data ingestion, deduplication, and embedding to organize information. The system uses a memory model that supports persistent storage and retrieval, allowing agents to access relevant context. It includes tools for session management, token-budgeted context windows, and handoff capabilities for decision-to-documentation workflows.

Folders
FolderRoleFiles
.githubagent-config5
docsdocs17
examplesexamples4
pkgsource-code115
scriptsscripts5
toolsscripts2
cmdfolder34
grafanafolder1
internalfolder119
mcpfolder4
researchfolder105
testdatafolder27

Requirements

Apps: Docker

Runtimes: Go

Databases: Pinecone, Qdrant, Redis, SQLite, Weaviate

API keys (by name): COHERE_API_KEY, DISTILL_API_KEY, OPENAI_API_KEY, PINECONE_API_KEY

Works with: Claude apps

Set it up

  1. This brain runs code automatically: 1 script. Review Makefile before opening the folder in Claude Code. No step below turns a hook on for you.

    • Makefile: $(GO) install $(GOFLAGS) -ldflags "$(LDFLAGS)" .
  2. Not scanned by AutoGineerThe author’s MCP configuration (README.md) also starts it in a way AutoGineer does not offer. Read that file: AutoGineer did not scan that path; what it runs is listed under “This brain runs”. https://github.com/Siddhant-K-code/distill/blob/2417e00dabe498eb8187f4544f001d5a49fbdb45/README.md
  3. Not scanned by AutoGineerThe author’s README also describes installing it from a clone of its repository. Read its install section: AutoGineer did not scan that path. https://github.com/Siddhant-K-code/distill/blob/2417e00dabe498eb8187f4544f001d5a49fbdb45/README.md#go-install
  4. Not scanned by AutoGineerThe author’s README also describes installing it with go install. Read its install section: AutoGineer did not scan that path. https://github.com/Siddhant-K-code/distill/blob/2417e00dabe498eb8187f4544f001d5a49fbdb45/README.md#go-install
  5. First committed by Siddhant-K-code. Published in Siddhant-K-code/distill. Licence: MIT License.

Usage

AutoGineer overview, from the brain’s own files

  • Integrating persistent memory into LLM agent workflows.
  • Managing context windows across multiple agent sessions.
  • Implementing deduplication and sensitivity tagging for agent data.
  • Using the MCP server to connect agent memory to desktop clients.
  • Automating decision-to-documentation bundles via handoff capabilities.
“Retrieve the context from the last session regarding the project architecture.”
The agent accesses the persistent memory layer to provide the relevant architectural details stored in the previous session.
“Summarize the recent decisions made in the current development sprint.”
The agent uses the handoff capability to bundle and present the documented decisions stored within the system.

Documentation by Siddhant-K-code

Read the documentation at the source

docs/handoff-dogfood-pr-112.md

Handoff v0 internal dogfood: PR #112

Status: one controlled internal retrospective completed on 2026-09-30. This is not an external-adoption claim.

Result

The retained request verified successfully with zero request or source mutations. The proposal was structurally valid but returned no_decision, so the reviewer rejected it after comparing it with four frozen expected decisions.

The first attempt exposed a runtime compatibility problem. GitHub Copilot CLI created .agent-traces in its current working directory, which was the canonical request directory. Verification correctly failed on that unexpected entry. Capturing terminal output was also ambiguous because the response contained two concatenated JSON objects and invalid literal newlines.

The compatibility fix does not weaken verification or change CLI behavior. The canonical request remains private and immutable. The agent runs from a disposable private parent containing:

request/                  copied agent input
output/proposal.json      sole proposal capture

Runtime metadata may appear beside those paths. Trusted verification still uses the retained canonical request, the tester-held digest, and the external proposal path. It never verifies the agent's request copy.

Frozen corpus

  • Conversation: public PR #112

  • Conversation snapshot SHA-256: 6b78ca03b7272dc3e204545ec87224726174a5bcf5e28f8af4e45926e633b996

  • Base revision: f2e3b2fcba7084e728bd0a9718f86d23d53b880a

  • Head revision: 445df3f15623396805e157a59c32469d749588ed

  • Merge revision: 1795f8a919aed586b5630079dca1795825ffc751

  • Target: docs/handoff-v0.md from the base revision

  • Target SHA-256: d265069feb86500a6744f2fbf2d98f6caeb2fa895f8987bcc123ee45bc80ed0e

  • Frozen expected decisions: 4

  • Expected-decision control SHA-256: cedf67293300b539e26ca8107f525bc0e462e53e7f2ec0697591395b4e028f0c

The conversation snapshot records the PR URL and immutable commit revisions. GitHub PR text can change, so the checked-in snapshot bytes are the reproducibility boundary.

Agent and trust boundary

  • Runtime: GitHub Copilot CLI 1.0.87-0

  • Model: gpt-5.6-sol, selected explicitly

  • Fresh session: 7115204f-01ff-4eb0-84de-1cc9e01361d2

  • Available tools: view, apply_patch

  • Agent input: copied request plus an empty output/ directory

  • Excluded: trusted digest file, expected decisions, source repository, canonical request, and verifier output

  • Request ID: 13acba266c76aaa8c9a36603ef00bbb1a043f8c052de6d97d83b0924a0828807

  • Tester-retained request SHA-256: 3562acf55eb949695679e1fb7e6fd8d7809c78b342951d4563a7e7ec0f58ad35

  • Proposal SHA-256: 02984139c791fbbf70528eb754e7f29e7c1401c657e267d7b706c1c26d9aa9f9

  • Receipt SHA-256: c69a976a822c397ed7c8463e18c52908685b988884d17229645eb8d46fdea0ed

The tester captured and supplied the trusted digest. The agent saw only the non-authoritative value contained in its request copy. Runtime tracing created metadata at the disposable workspace root, not in either request tree.

Measurements

Objective measurements:

MeasureResult
Expected committed decisions frozen before the agent run4
Candidates found0
Canonical request mutations0
Agent request-copy mutations0
Source mutations0
VerificationValid no_decision, require_review
Review time37 seconds, 0.62 minutes

Reviewer judgment:

Pilot Kit fieldResult
Missed expected decisions4
Fabricated or unsupported candidates0; no candidates were proposed
Exact evidence correctnessnone; no evidence was supplied
Patch outcomerejected; no patch was supplied
Trust boundary understoodyes; the tester supplied the retained digest
Highest-friction manual stepDetecting that the proposal incorrectly treated the pre-merge target as already containing the merged clarifications

The proposal reason itself was incorrect. The frozen target did not lead with the agent-independent workflow, did not contain the trust-boundary diagram or copy-and-paste prompt, and had not received the planned simplification.

Reproduce verification

The checked-in artifacts contain only public source material and sanitized outputs. They do not contain a private request bundle, runtime traces, absolute paths, or temporary metadata.

make build
work="$(cd "$(mktemp -d)" && pwd -P)"

prepare_output="$(./distill handoff prepare \
  --conversation testdata/handoff-v0/dogfood-pr-112/conversation.md \
  --docs testdata/handoff-v0/dogfood-pr-112/docs \
  --out "$work/request")"
request_sha256="$(printf '%s\n' "$prepare_output" |
  sed -n 's/.* request_sha256=\([0-9a-f]*\) .*/\1/p')"
test "$request_sha256" = \
  "3562acf55eb949695679e1fb7e6fd8d7809c78b342951d4563a7e7ec0f58ad35"

./distill handoff verify \
  --request "$work/request/handoff.request.json" \
  --expected-request-sha256 "$request_sha256" \
  --proposal testdata/handoff-v0/dogfood-pr-112/proposal.json \
  --out "$work/review"
diff -ru testdata/handoff-v0/dogfood-pr-112/review "$work/review"

Limitations

This was one internal retrospective against one public documentation PR and one hosted proposal model. It measures protocol compatibility and one model result, not general decision-extraction quality. No external tester result, adoption, or release-readiness conclusion follows from it.

457 files · 445 not served here

Advantages

Limitations

Security

Risk level: No risk found

This brain runs

Install scripts (1)

  • Makefile (make install): $(GO) install $(GOFLAGS) -ldflags "$(LDFLAGS)" .

MCP servers (1)

  • README.md (distill): /path/to/distill mcp --memory --session

Attribution and licence

First committed by
GitHub avatar of Siddhant-K-codeSiddhant-K-code
Publisher
Siddhant Khare (Community)
Source
Siddhant-K-code/distill · commit 2417e00
Licence
MIT License (files served here)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Contributors
Siddhant-K-code

AutoGineer is not affiliated with or endorsed by Siddhant-K-code.

Install from source

445 of its files are not served here, so there is no ZIP. Siddhant-K-code/distill at 2417e00