Persistent local memory for AI coding agents.
Fullerenes turns a source tree into a local knowledge graph that agents can query instead of repeatedly rebuilding context from raw files. It helps coding agents find the right files, the right symbols, the right callers, and the likely blast radius before editing.
Large codebases punish naive prompting.
Most agents waste tokens by:
- scanning too many files
- missing the real entry points
- guessing caller relationships
- losing context between sessions
Fullerenes fixes that by giving the agent a local graph-backed memory layer with:
- targeted code retrieval
- caller and impact inspection
- MCP access for coding agents
- watch mode to keep context fresh
- generated
AGENTS.md,CLAUDE.md, and Cursor rules
This OSS repo ships three packages:
fullerenesLocal-first CLI, MCP server, and agent-context file generationfullerenes-coreParser engine, SQLite graph storage, incremental indexer, and query layerfullerenes-daemonFile watcher and auto-reindex daemon
This release tightens Fullerenes in a few important ways:
- fully local-first generated summaries with no external LLM dependency
- stronger natural-language retrieval in the graph query path
- smaller, more targeted query outputs to reduce token usage
- improved agent instructions in generated
AGENTS.mdandCLAUDE.md - cleaner CLI / MCP / daemon version alignment
- polished GitHub and npm docs
npm install -g fullerenesOr run it without a global install:
npx fullerenes initIf you are working from source in this repo:
npm install
npm run build
node packages/cli/dist/cli.js init .Run Fullerenes at the root of a project:
npx fullerenes initThis creates:
.fullerenes/graph.dbCLAUDE.mdAGENTS.md.cursor/rules/fullerenes.mdc
CLAUDE.md and AGENTS.md preserve user-written content outside the Fullerenes-managed block.
npx fullerenes query "how does authentication work"
npx fullerenes query "where is watch mode implemented" --budget 1200
npx fullerenes statsThe query command returns compact graph-grounded context instead of broad file dumps.
Start the local MCP server:
npx fullerenes mcp .For Claude Code:
claude mcp add fullerenes -- npx fullerenes mcp .For Codex Desktop or another MCP client, register a stdio MCP server with:
npx fullerenes mcp /absolute/path/to/projectOnce connected, the agent can use tools like:
query_codebaseget_functionfind_entry_pointsget_file_contextsearch_codeget_callerspredict_impactget_statsget_subgraph
npx fullerenes watch .Watch mode listens for file changes, runs incremental reindexing, and refreshes generated agent files when the graph changes enough to matter.
get_function({ name: "resetCache", includeBody: true })
predict_impact({ functionName: "resetCache" })
query_codebase({ question: "how does indexing flow work", maxTokens: 1600 })
Agents are usually good at editing code once they know where to look.
They are bad at:
- rebuilding repo structure from scratch
- deciding which files are actually relevant
- tracing callers and dependents efficiently
- preserving a compact working memory across sessions
Fullerenes is the layer that gets the agent to the right code fast.
These are early smoke-test results, not a full benchmark report.
Single-instance comparison on sympy__sympy-20590 using the same Codex model:
| Scenario | Tokens used | Notes |
|---|---|---|
| Codex baseline | 91,949 | Produced the fix patch directly from repo exploration |
| Codex + Fullerenes | 32,945 | Produced the same fix shape with graph-guided retrieval |
| Reduction | 64.2% fewer tokens | Same touched files and comparable patch output |
What this means:
- preliminary evidence that Fullerenes can cut repo-understanding token cost on real software-engineering tasks
- not enough data yet to claim broad SWE-bench improvements
Tiny closed-book coding sample using the first two Lite problems:
| Problem | Result | Tokens used |
|---|---|---|
1873_A |
5 / 5 tests passed | 5,490 |
1873_B |
13 / 13 tests passed | 10,696 |
| Total | 2 / 2 solved | 16,186 |
What this means:
- Codex handles small standalone coding tasks cleanly in a lightweight benchmark loop
- this validates the agent path, but not the Fullerenes retrieval layer directly
Local benchmark on this repository using Fullerenes output vs concatenating the source files touched by the returned subgraph:
| Scenario | Estimated tokens |
|---|---|
| Raw file context | 2452 |
| Fullerenes query result | 137 |
| Reduction | 94.4% fewer tokens |
Methodology notes:
- token estimate uses the project heuristic
1 token ~= 4 characters - benchmark questions were run against this repo's local graph
- benchmark artifacts are preliminary and intended as transparent early validation
| Capability | Fullerenes OSS | Raw file prompting | Generic graph tooling |
|---|---|---|---|
| Works offline | Yes | Yes | Varies |
| Zero hosted infra required | Yes | Yes | Varies |
| Token-budgeted query output | Yes | No | Rare |
| MCP server for agents | Yes | No | Varies |
| Caller and impact inspection | Yes | No | Varies |
| Local SQLite graph | Yes | No | Varies |
fullerenes init [path]fullerenes index [path]fullerenes query "<question>" [--budget <tokens>] [--json]fullerenes stats [path]fullerenes mcp [path]fullerenes watch [path]
Fullerenes/
|- assets/
| `- readme/
|- packages/
| |- cli/
| |- core/
| `- daemon/
|- package.json
|- turbo.json
`- tsconfig.base.json
npm install
npm run build
npm run test
npm run lintPublish in this order:
fullerenes-corefullerenes-daemonfullerenes
Full release steps are documented in PUBLISHING.md.
Contribution notes are in CONTRIBUTING.md.
MIT

