Memory that accumulates.
Your agent picks up exactly where it left off.
Snowpack gives coding agents long-term memory — local-first, one SQLite file on your machine, yours. Built for Claude Code first.
$ pip install snowpack && snowpack setupFree, local CLI. No daemon, no account — your agent's memory stays on your machine.
The problem
Your agent forgets everything between sessions.
Every conversation starts from zero. Decisions, conventions, and dead ends get re-explained — by you, again.
Long sessions get summarized to fit the context window. The details you'll need next are exactly what gets dropped.
What your agent figured out last week is sitting in a session log nobody searches. Solved problems get solved again.
Local-first memory
for coding agents.
Snowpack sits next to your agent and remembers for it. Everything it learns lands in a single local file — accumulated, searchable, and entirely under your control.
One SQLite file on your machine. Inspect it, back it up, delete it — and secrets are redacted before anything is stored. Your agent's memory belongs to you, not a vendor's cloud.
Episodic — what happened, when. Semantic — what's true, distilled from it. Working — mid-task state that survives compaction. Procedural — corrections sintered into durable rules.
Hybrid search — vector, keyword, graph, and recency — with provenance from every fact back to the conversation it came from, and telemetry on what actually helped.
One setup command wires the hooks and permissions. No daemon, no account — and no API key or local model required unless you want them. MCP server is on the roadmap.
How it works
Observe. Consolidate.
Retrieve.
The vocabulary comes from snow science — history accumulates in layers, and you read it by digging in. Each term is a real CLI verb; snowpack setup wires the hooks in one command.
obs — sessions become memory, automatically
Hooks ingest every Claude Code session as it happens — episodic memory, timestamped and kept. No agent discipline required.
extract — distill episodes into facts
Like snow grains fusing into a layer, episodes are distilled into durable facts — with spend disclosed up front and every paid run bounded.
probe — search your agent's memory
Hybrid retrieval — vector, keyword, graph, and recency — with provenance from every fact back to its source conversation.
Plus stash — a working-memory checkpoint that survives compaction — and thaw, which replays the exact exchanges compaction dropped, full text and in order.
Observability
Dig a pit.
See the layers.
snowpack pit opens a read-only graph and stats UI on localhost: what your agent's memory holds, where each fact came from, which ones are going stale — and which were never worth keeping.
snotel — retrieval telemetry
Every probe is logged — what was asked, what surfaced, what got used. Channel win-rates show whether vector, keyword, graph, or recency is earning its keep, and an eval harness scores ranking changes against your own labeled queries. Not vibes.
weak layers — the failure mode, made visible
A persistent weak layer is a fact retrieval keeps confidently surfacing that never gets used. The pit flags it before it causes a slide.
prune — forgetting, with evidence
Telemetry nominates what to forget — dead facts, weak layers — and you judge each one. Archival is soft, audited, and reversible.
What's coming
Local tool first.
Local-first is the foundation, not a phase — nothing about the architecture forecloses where it goes.
Now
Local dev tool
- ·One-command setup for Claude Code
- ·probe · stash · thaw · sinter · prune
- ·The pit — graph + stats UI
- ·Secret redaction & spend controls
- ·Runs with or without Ollama
Next
Local-first + sync
- ·Encrypted sync across machines
- ·MCP server
- ·Language-agnostic API
- ·Gated on measured retrieval quality
Later
Hosted platform
- ·Team memory
- ·Bring your own agent
Get started
Give your agent a memory.
Two commands. setup wires the Claude Code hooks once — every session after that accumulates.
$ pip install snowpack$ snowpack setupPython 3.11+. Prefer uv? uv tool install snowpack.