Context compression is normally paid for twice — once in tokens to produce the summary, once in latency while you wait for it. Running a 1–4B model on your own machine during idle CPU removes both, and it means the conversation history never leaves the laptop. The design decision to notice is that reading the memory also resets it: the call hands back the summary and re-seeds from it, so this is a checkpoint mechanism rather than an append-only archive.
A local daemon that sits beside an AI coding assistant and keeps a running summary of what has happened. Conversation goes in, a queue holds it, and when the CPU is idle a small local model compresses it — recursively merging into a single Master Memory Block. Nothing leaves the machine and nothing is billed.
- Three tools, and that is the whole surface — `ingest_context`, `get_master_memory`, `clear_context`
- A persistent SQLite queue in front of the compressor, so ingested context survives restarts instead of being lost with the process
- Compression that waits for idle CPU rather than competing with your work, producing structured JSON that merges recursively into one block
- A context-window replacement pattern on read: `get_master_memory` returns the compressed summary, clears the old data, and re-seeds the engine with that summary — so the next conversation starts dense rather than empty
- The same memory written to `.ahme_memory.md` on disk, which means tools that read files but do not speak MCP can still use it
No account and no key — the model runs locally. Python 3.11+, Ollama running on the machine, and a small model pulled: the README suggests `ollama pull qwen2:1.5b`, and any 1–4B model works. Install from a clone with `pip install -e .`, copy `config.example.toml` to `config.toml`, and set the model line under the ollama section — the README states that is the only line you need to change. The server launches as `python -m ahme.mcp_server` with `PYTHONPATH` pointed at the checkout, and a ready-made `.mcp.json` ships in the repository root.
Build from source — clone the repository and build it, then point your client at the binary
