← Wiki

Graphify vs Solograph

Graphify (Apache-2.0 OR MIT) is the first tool in this space that overlaps Solograph hard enough to force a decision rather than a bookmark. Both parse code with tree-sitter into a graph an agent queries instead of grepping. They diverge on almost everything else — and several of Graphify’s choices are better than ours.

The one-line difference

Graphify is a deterministic, explainable graph of one corpus, shipped as a skill to 20+ assistants, with no embeddings anywhere. Solograph is a multi-project memory system — code graph plus episodic session history plus a semantic KB plus web search — shipped as one MCP server for Claude Code.

Graphify goes deeper on a repo. Solograph goes wider across a portfolio and remembers what you did.

Side by side

Graphify [Solograph](/wiki/project-solograph)
License Apache-2.0 OR MIT MIT
Store graph.json file on disk FalkorDBLite (embedded graph DB) + files
Embeddings None, by design MLX multilingual-e5-small (RU + EN), sentence-transformers fallback
Languages 36 tree-sitter grammars 5 (Python, Swift, TS, Kotlin, Rust)
Query interface graphify query / path / explain over graph.json + MCP server Cypher via codegraph_query, 15 MCP tools
Scope One corpus at a time Multi-project — shared packages, cross-project Cypher
Non-code inputs Docs, PDFs, images (via model), audio/video (local faster-whisper) KB markdown, YouTube/Telegram sources
Episodic memory session_search over Claude Code history
Edge provenance Every edge tagged EXTRACTED / INFERRED Untyped confidence — an edge is an edge
Cost to build 0 LLM credits for code-only 0 for AST, local embeddings for vectors
Incremental rebuild post-commit + post-checkout git hooks Manual scan / hook on .md writes
Merge conflicts Git merge driver, union-merges graphs N/A (DB is local, not committed)
Read discipline PreToolUse hook nudges — or blocks — raw file reads Advisory: CLAUDE.md tells the agent to prefer the graph
Artifacts graph.html, GRAPH_REPORT.md, graph.json Mermaid diagram, xray, explain
Community detection Leiden → subsystems
Telemetry None. Query log exists but is off by default None

Their benchmark: LOCOMO (n=300) recall@10 of 0.497 against mem0 at 0.048 and supermemory at 0.149. Their harness, their numbers — untested here, and LOCOMO is a memory benchmark being used to argue about code retrieval, so read it as directional at best.

What to steal

Four mechanics are independently useful and don’t require adopting Graphify:

  1. Tag every edge with provenance. EXTRACTED (literally in the source) vs INFERRED (resolved by the tool) turns “the graph says X calls Y” into a claim the agent can weigh. Our schema has IMPORTS / CALLS / INHERITS with no such distinction, so a heuristically-resolved dynamic dispatch looks exactly as solid as a literal import. Cheapest high-value change on this list.

  2. PreToolUse hook on file reads. Graphify intercepts the agent before a Read, points it at a graph query, and in strict mode blocks the first raw read outright before reverting to a nudge. We already run PostToolUse hooks for reindexing — the same machinery, aimed one step earlier. This is harness engineering in its purest form: not “remember to query the graph” in CLAUDE.md, but a mechanism that makes ignoring it inconvenient.

  3. Rebuild on git events, not on demand. post-commit + post-checkout means the graph is never stale and never needs a human to remember make scan. AST-only rebuilds cost nothing, so there’s no reason to defer them.

  4. Tiered loading for explain — borrowed from OpenViking rather than Graphify, but it belongs in the same change: L0 abstract (~100 tokens) → L1 overview (~2k) → L2 full detail on demand. codegraph_explain currently returns one fixed-size answer; most calls only need L0 to decide whether to keep digging.

Plus one lower-priority idea: Leiden community detection to auto-partition a project into subsystems. That’s a better explain for an unfamiliar repo than a flat symbol dump.

What not to copy

Which to run

Caveats

Open core with a commercial upsell — “Graphify Enterprise” is on a waitlist at graphify.com as an always-on layer across meetings and files. The CLI itself is fully open with visible extraction code and no telemetry, so the downside risk is the usual one: the open core stops getting the interesting features. Note also the package-name trap: PyPI package is graphifyy (double y), CLI is graphify, and at least two lookalike domains serve the same pitch — verify you’re installing from the real repo.

Star counts are meaningless here. Three sources reported 76K, 97K, and 98K on the same day.

Links

Sources

Related