Show HN: Graphicle, a Rust port of Graphify with memory for coding agents
Graphicle is a local-first Rust program that parses a repository into a tree-sitter code graph (a port of Graphify) and adds project memory: docs, reviewed decisions and captured Claude Code/Codex sessions. It serves cited file-and-line excerpts within a token budget via one MCP server, CLI and browser app, backed by a single SQLite file, with no API key or telemetry. The README reports a code-only extract on Kubernetes (31k files) in 3m18s versus 26m38s for Graphify 0.9.88, and a memory comparison against seven systems. Agent-proposed memories need user approval and go stale when the code they reference changes.
What it claims
Graphicle is a single Rust binary that builds a code graph and a project memory over a repository, then serves cited excerpts to coding agents over MCP. The code-graph engine is a port of Graphify that tracks Graphify's releases. The MCP server exposes Graphify's tool names (query_graph, get_neighbors, shortest_path) alongside memory tools, so an agent already wired to Graphify keeps working. The retrieval tools call no model; the agent's own model reads the excerpts.
Evidence
- Kubernetes (31k files), code-only extract: 3 min 18 s for the 0.1.0 engine versus 26 min 38 s for Graphify 0.9.88. Both built the same graph. This was one exploratory run each, on one Linux host with 16 CPUs and 8 workers.
- Django, code-only extract: 7.5 s for a pre-release build versus 72.8 s for Graphify 0.9.77. These are medians of five alternating runs on a shared Linux host with 8 workers.
- Memory: compared against seven memory systems. The comparison was pre-registered, and one open model served as reader and judge for every system. A pre-release build "trails none" on three development sets. That means a tie at the top is possible, and these are development sets, not held-out sets. Per-system scores are on a linked page, not in the README.
How to use it
brew install graphicle-ai/tap/graphicle
cd your-repo
graphicle setupWithout Homebrew:
curl -fsSL https://github.com/graphicle-ai/graphicle/releases/latest/download/install.sh | shgraphicle setup makes several changes beyond indexing:
- connects every MCP client it finds
- enables session capture
- redirects Claude Code's searches to the code graph first
- appends a section to
AGENTS.md - installs Git hooks for commit, merge and checkout
Each changed file is backed up once as <file>.graphicle-bak, and graphicle disconnect reverts everything. graphicle setup --yes runs non-interactively.
Other useful commands:
graphicle ask "…"returns cited excerpts within a token budget (default shown: 3,000 tokens).graphicle config set model anthropic(oropenai,ollama) adds written answers toask. Any OpenAI-compatible server also works.graphicle graph extract . --code-onlythengraphicle graph affected "retry()"lists dependents of a symbol.graphicle openlaunches the browser app, where proposed memories are approved.graphicle context --workspacesearches across the repositories in a workspace.graphicle doctorruns diagnostics.
Storage is one SQLite store:
- macOS:
~/Library/Application Support/Graphicle - Linux:
~/.local/share/graphicle graph extractalso writes to.graphicle/in the project.
The app, HTTP and MCP endpoints bind to 127.0.0.1. There are SDKs for Python and TypeScript, and a team-server recipe in deploy/. Deleting a memory or session also removes everything derived from it and issues a hash-chained deletion receipt.
Limits
- Network use: "no API key" holds only for code-only work. A full
graphicle graph extractwithout--code-onlysends documents and images to whichever LLM it finds an API key for. Use--code-onlyif that matters to you. - Platforms: there is no native Windows build. WSL2 is expected to work but is untested.
- Size limits: defaults are 100,000 text files and 1 GiB of text per project; both can be raised. Very large files are only partly analysed or kept as plain searchable text.
- Staleness: a memory goes stale when the function it references changes. Edits elsewhere in the same file "usually" leave it current; the exact rule is documented separately.
- Session capture: covers Claude Code and Codex only. It drops
<private>…</private>spans and redacts credentials. - Maturity: both benchmarks used pre-release or test builds. The Kubernetes figure comes from a single run.
- Licence: Apache-2.0. Parts derived from Graphify remain partly MIT. A commercial team edition is in private preview. Contributions require a DCO sign-off; there is no CLA.
Organisations named here
- KarLex AI, Inc.
- Graphicle
- Graphify
- Anthropic
- OpenAI
- Claude Code
- Cursor
- KarLex AI
- Model Context Protocol
- Ollama
Technologies named here
- Graphicle
- Graphify
- tree-sitter
- MCP
- Claude Code
- Cursor
- Codex
- VS Code
- Claude Desktop
- Ollama
- SQLite
- Kubernetes
- Django
- Rust
- Model Context Protocol
- Git
- Homebrew
- TypeScript
- Python
Techniques named here
- Code graph extraction
- Cited context on a token budget
- Project memory tied to code
- Session capture
- Forgetting with a receipt
Related in coding-agents
