Claude Code skill - turn any folder of code, docs, papers, images, or tweets into a queryable knowledge graph
Project description
graphify
A Claude Code skill. Type /graphify in Claude Code - it reads your files, builds a knowledge graph, and gives you back structure you didn't know was there.
Andrej Karpathy keeps a
/rawfolder where he drops papers, tweets, screenshots, and notes. graphify is the answer to that problem - 71.5x fewer tokens per query vs reading the raw files, persistent across sessions, honest about what it found vs guessed.
/graphify ./raw
graphify-out/
├── graph.html interactive graph - click nodes, search, filter by community
├── obsidian/ open as Obsidian vault
├── GRAPH_REPORT.md god nodes, surprising connections, suggested questions
├── graph.json persistent graph - query weeks later without re-reading
└── cache/ SHA256 cache - re-runs only process changed files
Install
Requires: Claude Code and Python 3.10+
pip install graphifyy && graphify install
The PyPI package is temporarily named
graphifyywhile thegraphifyname is being reclaimed. The CLI and skill command are stillgraphify.
Then open Claude Code in any directory and type:
/graphify .
Manual install (curl)
mkdir -p ~/.claude/skills/graphify
curl -fsSL https://raw.githubusercontent.com/safishamsi/graphify/v1/skills/graphify/skill.md \
> ~/.claude/skills/graphify/SKILL.md
Add to ~/.claude/CLAUDE.md:
- **graphify** (`~/.claude/skills/graphify/SKILL.md`) - any input to knowledge graph. Trigger: `/graphify`
When the user types `/graphify`, invoke the Skill tool with `skill: "graphify"` before doing anything else.
Usage
/graphify # run on current directory
/graphify ./raw # run on a specific folder
/graphify ./raw --mode deep # more aggressive INFERRED edge extraction
/graphify ./raw --update # re-extract only changed files, merge into existing graph
/graphify add https://arxiv.org/abs/1706.03762 # fetch a paper, save, update graph
/graphify add https://x.com/karpathy/status/... # fetch a tweet
/graphify query "what connects attention to the optimizer?"
/graphify path "DigestAuth" "Response"
/graphify explain "SwinTransformer"
/graphify ./raw --svg # export graph.svg
/graphify ./raw --graphml # export graph.graphml (Gephi, yEd)
/graphify ./raw --neo4j # generate cypher.txt for Neo4j
/graphify ./raw --mcp # start MCP stdio server
Works with any mix of file types:
| Type | Extensions | Extraction |
|---|---|---|
| Code | .py .ts .js .go .rs .java .c .cpp .rb .cs .kt .scala .php |
AST via tree-sitter + call-graph pass |
| Docs | .md .txt .rst |
Concepts + relationships via Claude |
| Papers | .pdf |
Citation mining + concept extraction |
| Images | .png .jpg .webp .gif |
Claude vision - screenshots, diagrams, any language |
What you get
God nodes - highest-degree concepts (what everything connects through)
Surprising connections - ranked by composite score. Code-paper edges rank higher than code-code. Each result includes a plain-English why.
Suggested questions - 4-5 questions the graph is uniquely positioned to answer
Token benchmark - printed automatically after every run. On a mixed corpus (Karpathy repos + papers + images): 71.5x fewer tokens per query vs reading raw files.
Every edge is tagged EXTRACTED, INFERRED, or AMBIGUOUS - you always know what was found vs guessed.
Worked examples
| Corpus | Type | Reduction | Eval |
|---|---|---|---|
| Karpathy repos + 5 papers + 4 images | Mixed | 71.5x | worked/karpathy-repos/review.md |
| httpx (Python HTTP client) | Code | small corpus¹ | worked/httpx/review.md |
| Code + paper + Arabic image | Multi-type | small corpus¹ | worked/mixed-corpus/review.md |
¹ Small corpora fit in one context window - graph value is structural clarity, not compression.
Tech stack
NetworkX + Leiden (graspologic) + tree-sitter + Claude + vis.js. No Neo4j required, no server, runs entirely locally.
Contributing
Worked examples are the most trust-building contribution. Run /graphify on a real corpus, save output to worked/{slug}/, write an honest review.md evaluating what the graph got right and wrong, submit a PR.
Extraction bugs - open an issue with the input file, the cache entry (graphify-out/cache/), and what was missed or invented.
See ARCHITECTURE.md for module responsibilities and how to add a language.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file graphifyy-0.1.5.tar.gz.
File metadata
- Download URL: graphifyy-0.1.5.tar.gz
- Upload date:
- Size: 79.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fa13c6eb49af64b7b6ea4b6f3fb7602daa458aaf04f05e50c5532ac284b6a40
|
|
| MD5 |
909d7b631e3e7e64a4c285304f73a80b
|
|
| BLAKE2b-256 |
b415e8513c4f18c9e0bb45660654294e324ec4cfb8cfc8691c9d309aeeca8dc8
|
File details
Details for the file graphifyy-0.1.5-py3-none-any.whl.
File metadata
- Download URL: graphifyy-0.1.5-py3-none-any.whl
- Upload date:
- Size: 68.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b807cad1366dde9d8366e90416a42da86767011f41db8b2e52763950fc93068
|
|
| MD5 |
96df04b8c4853a38e5be3ba622298779
|
|
| BLAKE2b-256 |
f9ca2546cb1938dc17e00f06507ba52c2ae0d5073464f9296aa02284c98f33dc
|