Skip to content

Back to the catalog

Show HN: Graphicle, a Rust port of Graphify with memory for coding agents
github.comrepo

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.

TL;DR Rust port of Graphify plus persistent project memory, exposed over MCP so coding agents get cited code and doc excerpts locally.
Document

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 setup

Without Homebrew:

curl -fsSL https://github.com/graphicle-ai/graphicle/releases/latest/download/install.sh | sh

graphicle 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 (or openai, ollama) adds written answers to ask. Any OpenAI-compatible server also works.
  • graphicle graph extract . --code-only then graphicle graph affected "retry()" lists dependents of a symbol.
  • graphicle open launches the browser app, where proposed memories are approved.
  • graphicle context --workspace searches across the repositories in a workspace.
  • graphicle doctor runs diagnostics.

Storage is one SQLite store:

  • macOS: ~/Library/Application Support/Graphicle
  • Linux: ~/.local/share/graphicle
  • graph extract also 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 extract without --code-only sends documents and images to whichever LLM it finds an API key for. Use --code-only if 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