„Not a vector index. No embeddings, no vector store: a real graph you traverse.“ Der Satz steht im README von Graphify und ist als Abgrenzung gemeint. Er trifft einen Nerv, denn die meisten Werkzeuge, die derzeit als Gedächtnis für KI-Coding-Assistenten verkauft werden, machen das Gegenteil: Sie legen Textstücke nebeneinander und hoffen, dass das Richtige oben landet. Graphify macht aus einer Codebasis einen Graphen, den man abfragen, durchlaufen und erklären kann.
Der Vergleich mit einem Stadtplan hilft. Wer eine Stadt nur über ein Telefonbuch erschließt, findet jeden Namen, aber nicht den Weg vom Bahnhof zum Rathaus. Ein Graph ist der Stadtplan: Straßen, Kreuzungen, Abkürzungen, Einbahnregeln. Auf dieser Unterscheidung baut das Projekt auf, und sie erklärt, warum die Autoren so viel Wert auf das Wort „traverse“ legen.
Vom Dateibaum zum befragbaren Knowledge Graph
Graphify liest ein Projekt ein und legt es als Netzwerk von Konzepten ab. Ein Knoten ist dabei nicht nur eine Funktion oder eine Klasse, sondern auch ein Abschnitt aus der Dokumentation, eine Tabelle aus einem SQL-Schema, ein Eintrag aus einer Konfigurationsdatei oder eine Seite aus einem PDF. Die Kanten dazwischen tragen Namen wie calls, imports, inherits oder mixes_in. Aus einer Sammlung von Dateien wird so eine Struktur, in der Beziehungen zählen.
Im Alltag ändert das die Art, wie man mit einem KI-Coding-Assistenten über eine fremde Codebasis spricht. Statt Dateien zu durchsuchen und Textstellen zu raten, stellt man eine Frage und bekommt einen Teilgraphen zurück, der den relevanten Ausschnitt zeigt. Der Befehl graphify query "<Frage>" liefert einen solchen eingegrenzten Ausschnitt für eine umgangssprachlich formulierte Frage. graphify path A B zeichnet nach, wie zwei Dinge zusammenhängen, und nennt am Ende die Gesamtkonfidenz des Pfades – nämlich die seines schwächsten Glieds.
Wer schon einmal versucht hat, in einem gewachsenen Monorepo herauszufinden, warum ein Modul überhaupt geladen wird, kennt den Unterschied. Ein Grep findet die Stelle, an der ein Name steht. Ein Graph zeigt, über welche Kette von Importen und Aufrufen diese Stelle erreichbar ist. Das ist keine Geschwindigkeitsfrage, sondern eine Frage der Fragestellung: Man sucht nicht mehr nach Zeichenketten, sondern nach Verbindungen.
Lokale deterministische Code-Analyse: tree-sitter statt LLM
Für Code baut tree-sitter den Graphen, ein Parser-Framework, das aus Quelltext einen abstrakten Syntaxbaum erzeugt. Aus diesem Baum liest Graphify die Beziehungen zwischen Definitionen und Referenzen heraus, über rund vierzig Sprachen hinweg. Das ist AST-Parsing im Wortsinn: strukturell, wiederholbar, ohne Modell im Hintergrund.
Für die Praxis heißt das zweierlei. Erstens ist die Code-Analyse lokal und deterministisch – derselbe Stand derselben Dateien ergibt denselben Graphen, ohne dass ein Token bezahlt oder ein Server kontaktiert wird. Zweitens verlässt nichts den Rechner, solange es nur um Code geht. Das README formuliert es knapp: „Code maps for free, fully local.“
Der zweite Durchgang ist ein anderer. Dokumente, PDFs, Bilder und Videoinhalte brauchen eine semantische Erfassung, und die läuft über das Modell des jeweiligen Assistenten oder über einen konfigurierten API-Schlüssel. Hier wird also sehr wohl ein Sprachmodell bemüht, nur eben nicht für den Teil, der sich exakt berechnen lässt. Der Schnitt ist sauber, und deshalb kostet die Code-Karte nichts.
Wer eine Codebasis in einen Knowledge Graph umwandeln will, sollte diesen Unterschied im Kopf behalten. Die strukturelle Karte ist ein Werkzeug der Vermessung, die semantische Ergänzung ist eine Interpretation. Beides in denselben Graphen zu legen ist praktisch, aber man muss wissen, welcher Teil belastbar ist und welcher nicht.
Jede Kante mit Herkunft – und die God Nodes darüber
Der zweite Gestaltungsentscheid betrifft die Nachvollziehbarkeit. Jede Verbindung im Graphen wird mit einem Etikett versehen: EXTRACTED heißt, die Kante steht ausdrücklich in der Quelle. INFERRED heißt, sie wurde bei der Auflösung von Verweisen abgeleitet. Damit lässt sich unterscheiden, was gelesen und was geschlossen wurde – eine Eigenschaft, die den meisten Retrieval-Systemen fehlt, weil dort alles zu einem Ähnlichkeitswert verschwimmt.
Dazu kommen zwei Auswertungen. Die sogenannten God Nodes sind die am stärksten vernetzten Konzepte, also die Stellen, durch die fast alles fließt. Sie zeigen, wo eine Änderung teuer wird. Die Communities zerlegen den Graphen mit dem Leiden-Verfahren in Teilsysteme, deren Bezeichnungen ohne Sprachmodell erzeugt werden. Zusammen ergibt das eine Landkarte mit Ballungsräumen und Hauptverkehrsachsen.
Begründungen landen im Graphen. Kommentare der Form NOTE: oder WHY: und Verweise auf ADRs oder RFCs werden zu eigenen Knoten und mit dem Code verknüpft, den sie erklären. Damit steht das Warum im selben Graphen wie das Was. Wer Code und Dokumentation abfragen will, muss nicht mehr zwischen Repository und Wiki hin und her springen.
Installation und der /graphify-Skill für Claude Code, Cursor, Codex und Gemini CLI
Der Einstieg ist kurz. Vorausgesetzt wird Python ab Version 3.10 sowie uv oder alternativ pipx. Installiert wird mit uv tool install graphifyy, wobei das PyPI-Paket tatsächlich mit doppeltem y geschrieben wird; andere Pakete gleichen Namens gehören nicht zum Projekt. Der Befehlsname bleibt trotzdem graphify. Danach registriert graphify install den Skill beim erkannten Assistenten – eine Einrichtung, die nicht pro Werkzeug wiederholt werden muss.
Im Assistenten genügt dann /graphify ., und der Skill baut den Graphen für das aktuelle Verzeichnis. Wer die Installation an ein Repository binden möchte, hängt --project an; die Dateien landen dann etwa unter .claude/skills/graphify/SKILL.md und lassen sich einchecken. Laut Dokumentation werden über zwanzig Assistenten unterstützt, darunter graphify für Claude Code, Cursor, Codex und Gemini CLI, außerdem GitHub Copilot, Aider und mehrere Agent-Skills-Pfade. Codex verlangt zusätzlich multi_agent = true in der eigenen Konfiguration, damit die Extraktion parallel läuft.
Dazu kommt der strikte Modus. Mit graphify install --project --strict werden Read und ein gezieltes Grep pro Sitzung einmal abgelehnt, solange keine aktuelle Graph-Abfrage den Assistenten orientiert hat – standardmäßig dreißig Minuten lang. Über die Umgebungsvariable GRAPHIFY_HOOK_STRICT lässt sich die Politik ohne Neuinstallation umschalten. Der Modus soll dem Assistenten das Durchwühlen von Dateien abgewöhnen und ihn auf den Graphen verpflichten.
Was die Benchmarks belegen – und wo sie dünn werden
Das Projekt veröffentlicht Messwerte. Auf LOCOMO mit 300 Proben erreicht Graphify einen recall@10 von 0,497, während mem0 bei 0,048 und supermemory bei 0,149 liegen. Bei der QA-Genauigkeit steht Graphify mit 45,3 Prozent jedoch hinter supermemory mit 49,7 Prozent. Auf LongMemEval-S liegt man mit 76 Prozent gleichauf mit dichter RAG. In einem projektübergreifenden Test auf ERPNext deckt das Werkzeug 82,0 Prozent der Schlüsselfakten ab, gegenüber 70,8 Prozent bei einer Grep-Basis.
Die auffälligste Zahl ist der Preis: null LLM-Credits für den Graphaufbau, während die meisten Vergleichssysteme pro Token abrechnen. Alle Systeme liefen laut Dokumentation auf demselben Prüfstand mit demselben Modell und demselben Budget, bewertet von einem Richter, der gegen einen zweiten validiert wurde – 90,6 Prozent Übereinstimmung, Cohen’s kappa 0,81. Für ein Open-Source-Projekt ist diese Methodik ordentlich.
Trotzdem braucht es eine Einordnung. Recall@10 ist die Metrik, die zur Idee des Graphen passt: Findet das System die richtigen Nachbarn? Die QA-Genauigkeit hängt stärker am Sprachmodell als an der Struktur, und dort gewinnt Graphify nicht. Wer aus diesen Tabellen ableitet, ein Graph schlage Vektorspeicher grundsätzlich, liest zu viel hinein. Die Zahlen zeigen, dass ein Knowledge Graph ohne Vektordatenbank bei der Nachbarsuche deutlich präziser ist – nicht, dass er das Verstehen ersetzt.
Was das konkret bedeutet
Für die tägliche Arbeit heißt das: Es gibt eine lokale, deterministische Code-Analyse, die man einmal laufen lässt und danach immer wieder befragt. Der Aufwand liegt nicht mehr im Suchen, sondern im Formulieren guter Fragen. Das verschiebt die Fähigkeiten, die zählen – wer den Graphen lesen kann, findet schneller heraus, welche Module eine Änderung mitzieht.
Der Nutzen ist am größten bei schlecht dokumentierten, gewachsenen Codebasen und bei allem, was viele Sprachen und Schnittstellen mischt. Bei einem kleinen, übersichtlichen Projekt ist der Graph ein Werkzeug unter vielen; ein Grep ist dort oft schneller. Und der Graph veraltet: Sobald sich Code ändert, markiert Graphify den Stand als needs_update, und genau dann greift auch der strikte Modus nicht mehr. Eine Karte, die nicht gepflegt wird, ist irgendwann schlimmer als kein Stadtplan.
Offen bleibt die Reichweite. Die Versprechen der Cloud-Variante – 80 Prozent weniger Token-Verbrauch, projektübergreifende Verknüpfung, Anbindungen an Sentry und Jira – stammen vom Anbieter selbst und lassen sich hier nicht überprüfen. Wer den lokalen Weg wählt, bekommt dafür einen Graphen mit erklärten Kanten, dessen Aufbau sich nachrechnen lässt und der den Rechner nicht verlässt. Kleinere Zusage, aber eine, die hält.
Quelle: github.com
