
Knowledge Graph
β 11from hilyfux
A knowledge graph-driven persistent memory layer for coding agents and LLM workflows.
Knowledge Graph for Claude Code and Codex
Persistent, git-native memory that makes your AI coding agent actually remember. Zero databases, zero services β just bash, jq, and your own commits.
Claude Code and other AI coding agents forget everything between sessions β you end up re-explaining the same project context every time. Knowledge Graph fixes that by turning your file operations and git history into a lightweight, evidence-based memory layer that lives inside your repo.
First-class support for:
-
Claude Code β auto-tracks reads and writes via hooks, injects a work snapshot on every session start, rebuilds context after
/clearand/compact -
Codex / Cursor / Windsurf / any MCP client β 7 tools and 20+ resources exposed by the bundled MCP stdio server (
kg_read_node,kg_query,kg_recent_work,kg_blind_spots, β¦)
No embeddings. No vector stores. No external services. Works on macOS, Linux, and Windows.
Who this is for
-
Vibecoders β you describe intent, the agent writes code. Knowledge Graph gives the agent the project context you never had to learn, so one-line requests turn into working changes instead of destructive rewrites. From the maintainer (a vibecoder himself): goal completion and "actually what I wanted" rate jumped at least 10Γ after installing it β "10Γ is the floor."
-
Senior developers β you want structured, auditable context that your AI agent respects. Every rule traces back to a commit hash or a recorded error event. No hallucinated conventions.
-
Teams β rules live in canonical
CLAUDE.mdnodes right next to the code they govern. Codex reads the same nodes through MCP, so teams avoid split-brain knowledge. Share viagit push.
vs Alternatives
Knowledge Graph mcp-knowledge-graph Memento Caveman
Storage Plain files in your repo Neo4j database Vector database N/A (stateless)
Dependencies jq only Neo4j + Node.js + Docker Python + ChromaDB Python (optional)
Learns over time β
Inference engine β β β
Predicts context β
Co-change analysis β β β
Survives clear / compact β
Snapshot + @include N/A N/A N/A
LLM cost Near zero (bash computes) Every query Embedding costs Zero
Team sharing git push Manual DB export Manual DB export N/A
Multi-agent (Codex / MCP) β
7 tools + resources Partial Partial β
Windows (PowerShell installer) β
β β β
What You Get
-
Cross-agent memory β works natively in Claude Code (hooks); works in Codex / Cursor / Windsurf / any MCP client through the bundled server (7 tools + 22 resources auto-exposed)
-
Session-to-session continuity β snapshot survives
clearandcompact; includesgit statusuncommitted changes so the agent knows what's still in progress, not just what was committed -
Predict errors before they happen β co-change prediction preloads related-module prohibitions on first access; Read size-guard warns before a 25K-token Read hits its ceiling, so the agent knows to Grep + partial-read instead of burning a round-trip
-
Auto-discovered dependencies from real co-change patterns β observe work, infer patterns, promote only evidence-backed rules
-
Zero-interrupt workflow β heavy analysis mostly runs at session boundaries; long sessions get a throttled background refresh so
graph-analysis.jsondoes not go stale -
Named event channels + schema β parallel streams for domain-specific trackers (
{channel}-events.jsonl) with formal event shape and corrupt-line tolerance. See events-schema.md. -
Zero dependencies beyond
jqβ no Docker, no Neo4j, no Python, no services, no daemon. Inspectable. Versionable. No lock-in.
Token Budget
Component Tokens When loaded
Knowledge index (pointer tags) ~300-500 Always (@include)
Work snapshot ~200-400 SessionStart / PostCompact
Predicted prohibitions ~100/module First access to new module
Module CLAUDE.md ~200/module On file access (lazy)
Total baseline ~500-900 <0.5% of 200K context
How It Works (briefly)
Hooks fire silently during your normal Claude Code workflow:
-
Read / Write β events recorded in ~3ms; first access to a module triggers a co-change prediction that pre-loads related module prohibitions; long write-heavy sessions also trigger a throttled background refresh of
graph-analysis.json -
SessionStart / PostCompact β injects the last work snapshot so the agent picks up where it left off
-
Stop β saves the snapshot, rotates the event log, runs background analysis
Pure bash + jq mines patterns from the event log and git history; the LLM is only involved when a knowledge node actually needs to be (re)written. Everything else is zero-token.
Deep dive with full hook table, pipeline diagram, and context-survival matrix: docs/architecture-notes.md.
For non-Claude agents: the same canonical CLAUDE.md nodes, work snapshot, and co-change pairs are accessible via the MCP server.
Commands
Command Purpose
/knowledge-graph init Full project scan. Generates canonical CLAUDE.md for every module.
/knowledge-graph update Incremental refresh + inference engine.
/knowledge-graph status Coverage, health, blind spots, activity heatmap.
/knowledge-graph query <question> Search the graph; get sourced answers.
What Gets Generated
Each module directory gets a compact canonical CLAUDE.md node (β€20 lines, maximum information density). Codex consumes the same node through MCP instead of maintaining a duplicate AGENTS.md.
# auth
## Prohibitions
- Raw token in localStorage β XSS (a3f21b)
- Skip refresh in test mock β flaky CI (8c4e01)
## When Changing
- Token flow β @middleware/CLAUDE.md
- User model β @api/users/CLAUDE.md
## Conventions
- Auth errors: 401 + {code, message}
- Refresh tokens: httpOnly cookies only
@ references form the dependency graph. The inference engine discovers and adds them from co-change patterns automatically.
MCP Server
7 tools and a resources channel exposed via MCP, usable from any MCP-aware agent (Codex, Cursor, Windsurf, Claude Desktop, custom clients):
Tool Description
kg_status Coverage, pending events, blind-spot count, hot zones, recent failures
kg_query Full-text search across every canonical CLAUDE.md / SKILL.md body β returns path:line:excerpt
kg_read_node Fetch the full knowledge node for a specific module
kg_recent_work Current work snapshot β active modules, uncommitted changes, recent commits
kg_predict Predict related modules for a file path (co-change history)
kg_cochange Top co-change directory pairs β implicit dependencies
kg_blind_spots Modules with activity but no knowledge node
Plus Resources: every canonical CLAUDE.md / SKILL.md is exposed through kg://node/<path>, kg://claude/<path>, or kg://skill/<path>. The knowledge index is at kg://index; the work snapshot at kg://snapshot.
Auto-registered in .mcp.json during installation.
Design Principles
-
Zero interrupts. Never blocks your coding. Analysis runs at session boundaries.
-
Bash computes, LLM decides. Pattern mining is pure bash (~3ms/event); LLM only writes prose.
-
Evidence-based only. Every rule traces back to a commit, error, or analysis. No evidence, no rule.
-
Predict, don't react. Pre-load related knowledge before errors, based on co-change history.
-
Survive everything.
clear,compact, long sessions β working state persists through snapshots. -
Minimal token footprint. β€20 line knowledge nodes, pointer-style index, lazy loading.
-
Agent-agnostic outputs. Hooks are Claude Code-specific; canonical
CLAUDE.mdnodes, MCP tools, and resources are consumable by Codex and other agents.
Learn More
-
Installation β platform-specific setup (macOS / Linux / Windows / WSL)
-
Configuration β env vars and tuning
-
Architecture β hook flow, prediction engine, pipeline diagram, installed layout
-
Events Schema β channel concept + event shape + tolerance guarantees
-
FAQ β common questions
-
Changelog β release history
Contributing
Contributions welcome. See CONTRIBUTING.md.
High-impact areas:
-
New pattern types in
infer.sh -
Large-monorepo performance (1000+ modules)
-
Prediction accuracy measurement and feedback loops
-
Integration tests for non-Claude MCP clients
-
Additional agent integrations beyond MCP
License
Quick Start
macOS / Linux / WSL
bash Then:
- Restart Claude Code so hooks activate, or connect your MCP-aware agent.
- For Codex, read the installed `AGENTS.md` notes and use the `knowledge-graph` MCP server from `.mcp.json`.
- Run `/knowledge-graph init` in Claude Code, or use MCP tools such as `kg_status`, `kg_query`, and `kg_read_node` from Codex.
From that point on: silent tracking in Claude Code, distributed knowledge nodes per module, and cross-session memory readable by Codex or any MCP-aware agent.
## Requirements
- **`bash`** β macOS / Linux: native. Windows: [Git Bash](https://gitforwindows.org/) (`winget install Git.Git`) or WSL.
- **`jq`** β `brew install jq` / `apt install jq` / `winget install jqlang.jq`
- **`git`** (optional, recommended) β enhances dependency analysis and evidence tracing
- An MCP-aware AI agent: **Claude Code** natively, or **Codex / Cursor / Windsurf / Claude Desktop** via the bundled MCP serverNo common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.