cmem
MCPShips with claude-mem: Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions,…
Ships with stacklit: Stop making your AI re-read your codebase. Stacklit maps your repo once and keeps the map fresh. In a 450-session test, agents ran 82% fewer grep and glob searches. Free, MIT, one…
Claude Code
> /plugin marketplace add glincker/stacklit> /plugin install stacklit@stacklit
Codex
$ npx stacklit init # scan, write the index, open the map
Cursor
$ npx stacklit init # scan, write the index, open the map
Gemini CLI
$ npx stacklit init # scan, write the index, open the map
GitHub Copilot
$ npx stacklit init # scan, write the index, open the map
OpenCode
$ npx stacklit init # scan, write the index, open the map
Windsurf
$ npx stacklit init # scan, write the index, open the map
Security report
Not enough data
Known flaws
Not published
Signed build
Not published
Maintained
Nov 9, 2026
Last push
Licence
MIT
Runs as
Local process
On your machine
Deprecated
Not published
Signals from public registries, not an audit. Checked Nov 15, 2026.

Stacklit maps your codebase once and keeps the map fresh. It parses your repo with tree-sitter and writes stacklit.json: modules, exports, dependency edges and hints. Commit it, and your coding agent reads a few hundred tokens instead of crawling your files, then uses a few commands (query, slice, impact) to go straight to the right file.
Free and MIT, no paid tier. One Go binary, local and deterministic, no LLM, and the CLI makes no network calls. (The map page can load language icons from thesvg.org; STACKLIT_MAP_ICONS=off removes that.)
npx stacklit init # scan, write the index, open the map
stacklit setup # wire up the assistants it detects
git add stacklit.json && git commit -m "add stacklit index"
Also: brew install glincker/tap/stacklit, npm install -g stacklit, go install github.com/glincker/stacklit/cmd/stacklit@latest, or a binary from Releases.
stacklit derive prints a compact map for a prompt (gin v1.10.0, 137 tokens, module list trimmed here):
gin | go | 8 modules | 19,537 lines | Gin, GitHub Actions, net/http
test: go test ./... | env: PORT
modules:
binding binding | depends: bytesconv, json
internal/bytesconv bytesconv | depended-by: binding, render, root
render render | depends: bytesconv, json
root root package | depends: binding, bytesconv, json, render
do-not-touch: .github/
stacklit query returns a token-budgeted slice of the symbol graph (output trimmed here):
$ stacklit query "how is the symbol graph built" --budget 600
internal/cli/graphcmds.go
50-63 func buildSymbolGraph(root string, includeTests ...bool) (*graph.SymGraph, error)
calls BuildSymbols E0.95
internal/graph/resolve.go
955-961 func BuildSymbols(root string, files []string, eo ExtractOptions) *SymGraph
| Index | stacklit.json, a Mermaid diagram (DEPENDENCIES.md by default, set with output.mermaid) and an interactive stacklit.html map |
| Languages | 48 languages and formats indexed; symbol graph for 20 (list) |
| Queries | query, explain, impact, path, hubs, slice, each with a hard --budget |
| MCP | stacklit serve: 15 tools, or --profile minimal for 4 (about 230 tokens of schema) |
| Hooks | git post-commit refresh; optional Claude Code hook that points a grepped identifier to its definition |
| CI | export (graphml, cypher, dot, mermaid and more), check architecture rules, status freshness, merge-graphs, a GitHub Action |
| Deterministic | same repo, same bytes. A committed index only changes when the code does |
| Privacy | no telemetry, no upload. The map loads language logos from thesvg.org unless STACKLIT_MAP_ICONS=off (details) |
stacklit setup sets up 25 assistants, including Aider, Cline, Continue, OpenCode, Roo Code and Kiro, plus a generic AGENTS.md (stacklit setup --list shows all 26 targets). Anything else can read stacklit.json directly.
Stacklit indexes 48 languages and formats (full table). Symbol graph and call edges (query, slice, impact) cover 20 of them.
Symbol graph and call edges (20)
Index only (modules, exports and imports, no call edges)
Ships with claude-mem: Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions,…
Ships with mempalace: Local-first AI memory. Verbatim storage, pluggable backend, 96.6% R@5 raw on LongMemEval — zero API calls.
Ships with mempalace: Local-first AI memory. Verbatim storage, pluggable backend, 96.6% R@5 raw on LongMemEval — zero API calls.
Ships with ai-memory: Solution for long term memory for agent coding CLIs and to facilitate handoff between different agent…