Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@

---

<p align="center">
<img src="demo/demo.gif" alt="Graphify Toolkit Demo" width="700">
</p>

---

Graphify builds a JSON knowledge graph from your source code, documentation, and project structure. Query it from your terminal — find dependencies, trace impact, discover architectural bottlenecks.

**No SaaS account. No API keys. Just `bash`, `jq`, and `python3`.**
Expand Down
129 changes: 129 additions & 0 deletions demo/demo.cast
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
{"version": 2, "width": 80, "height": 24, "timestamp": 1786187550, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
[0.007486, "o", "\u001b[H\u001b[2J\u001b[3J"]
[0.008161, "o", "\r\n \u001b[1mGraphify Toolkit\u001b[0m \u001b[2mv1.0\u001b[0m\r\n \u001b[2mTurn any codebase into a queryable knowledge graph\u001b[0m\r\n\r\n"]
[1.010953, "o", "\u001b[2m$ \u001b[0mg"]
[1.0437, "o", "r"]
[1.076599, "o", "a"]
[1.109154, "o", "p"]
[1.141787, "o", "h"]
[1.174396, "o", "i"]
[1.207251, "o", "f"]
[1.240128, "o", "y"]
[1.272738, "o", " "]
[1.30561, "o", "b"]
[1.338436, "o", "u"]
[1.3714, "o", "i"]
[1.404231, "o", "l"]
[1.437084, "o", "d"]
[1.470009, "o", " "]
[1.502888, "o", "."]
[1.535757, "o", "\r\n"]
[2.038158, "o", "\r\n \u001b[0;36mScanning project files...\u001b[0m\r\n"]
[2.541111, "o", " \u001b[0;32m+\u001b[0m 142 files analyzed\r\n \u001b[0;32m+\u001b[0m 387 nodes extracted \u001b[2m(functions, classes, modules, configs)\u001b[0m\r\n \u001b[0;32m+\u001b[0m 614 edges mapped \u001b[2m(imports, calls, extends, configures)\u001b[0m\r\n"]
[2.844082, "o", " \u001b[0;32m+\u001b[0m Graph written to \u001b[2mgraphify-out/graph.json\u001b[0m \u001b[2m(248 KB)\u001b[0m\r\n\r\n"]
[3.8467, "o", "\u001b[2m$ \u001b[0mg"]
[3.87798, "o", "r"]
[3.910269, "o", "a"]
[3.941368, "o", "p"]
[3.973091, "o", "h"]
[4.005658, "o", "i"]
[4.037835, "o", "f"]
[4.070256, "o", "y"]
[4.103274, "o", " "]
[4.135665, "o", "q"]
[4.16839, "o", "u"]
[4.200856, "o", "e"]
[4.233071, "o", "r"]
[4.265732, "o", "y"]
[4.297212, "o", " "]
[4.328712, "o", "\""]
[4.361519, "o", "W"]
[4.394362, "o", "h"]
[4.427094, "o", "a"]
[4.459945, "o", "t"]
[4.492883, "o", " "]
[4.525613, "o", "d"]
[4.55728, "o", "e"]
[4.589098, "o", "p"]
[4.621664, "o", "e"]
[4.65436, "o", "n"]
[4.687149, "o", "d"]
[4.720005, "o", "s"]
[4.752823, "o", " "]
[4.785908, "o", "o"]
[4.819002, "o", "n"]
[4.851351, "o", " "]
[4.884464, "o", "t"]
[4.917338, "o", "h"]
[4.950325, "o", "e"]
[4.983075, "o", " "]
[5.015628, "o", "a"]
[5.048175, "o", "u"]
[5.081125, "o", "t"]
[5.113949, "o", "h"]
[5.147205, "o", " "]
[5.180258, "o", "m"]
[5.212324, "o", "o"]
[5.245185, "o", "d"]
[5.277938, "o", "u"]
[5.310749, "o", "l"]
[5.342877, "o", "e"]
[5.375654, "o", "?"]
[5.408393, "o", "\""]
[5.441224, "o", "\r\n"]
[5.944399, "o", "\r\n \u001b[1m5 dependents found:\u001b[0m\r\n\r\n \u001b[0;36mauth/middleware.ts\u001b[0m \u001b[2m--imports--> \u001b[0m\u001b[1mapi/routes.ts\u001b[0m\r\n"]
[5.944463, "o", " \u001b[0;36mauth/middleware.ts\u001b[0m \u001b[2m--imports--> \u001b[0m\u001b[1mapi/admin.ts\u001b[0m\r\n \u001b[0;36mauth/session.ts\u001b[0m \u001b[2m--calls---> \u001b[0m\u001b[1mdb/users.ts\u001b[0m\r\n"]
[5.944725, "o", " \u001b[0;36mauth/config.ts\u001b[0m \u001b[2m--configures->\u001b[0m\u001b[1mapp/server.ts\u001b[0m\r\n"]
[5.944768, "o", " \u001b[0;36mauth/types.ts\u001b[0m \u001b[2m--extends--> \u001b[0m\u001b[1mshared/types.ts\u001b[0m\r\n\r\n"]
[7.448331, "o", "\u001b[2m$ \u001b[0m"]
[7.448412, "o", "g"]
[7.480071, "o", "r"]
[7.51247, "o", "a"]
[7.544926, "o", "p"]
[7.57818, "o", "h"]
[7.611012, "o", "i"]
[7.644002, "o", "f"]
[7.676556, "o", "y"]
[7.709476, "o", " "]
[7.742156, "o", "p"]
[7.774926, "o", "a"]
[7.807865, "o", "t"]
[7.84093, "o", "h"]
[7.874124, "o", " "]
[7.907981, "o", "\""]
[7.94084, "o", "a"]
[7.974047, "o", "u"]
[8.007034, "o", "t"]
[8.039688, "o", "h"]
[8.072787, "o", "/"]
[8.106391, "o", "s"]
[8.139693, "o", "e"]
[8.172539, "o", "s"]
[8.205515, "o", "s"]
[8.237455, "o", "i"]
[8.270383, "o", "o"]
[8.303646, "o", "n"]
[8.335728, "o", "."]
[8.368723, "o", "t"]
[8.401658, "o", "s"]
[8.435128, "o", "\""]
[8.468, "o", " "]
[8.501111, "o", "\""]
[8.534353, "o", "a"]
[8.567234, "o", "p"]
[8.60021, "o", "i"]
[8.633098, "o", "/"]
[8.66612, "o", "b"]
[8.69915, "o", "i"]
[8.732289, "o", "l"]
[8.765176, "o", "l"]
[8.798146, "o", "i"]
[8.83093, "o", "n"]
[8.863771, "o", "g"]
[8.896646, "o", "."]
[8.929618, "o", "t"]
[8.96245, "o", "s"]
[8.995952, "o", "\""]
[9.028991, "o", "\r\n"]
[9.531934, "o", "\r\n \u001b[1mShortest path (3 hops):\u001b[0m\r\n\r\n \u001b[0;36mauth/session.ts\u001b[0m -> \u001b[0;36mauth/middleware.ts\u001b[0m -> \u001b[0;36mapi/routes.ts\u001b[0m -> \u001b[0;36mapi/billing.ts\u001b[0m\r\n\r\n"]
[11.035186, "o", " \u001b[1mZero cloud.\u001b[0m \u001b[2mJust bash, jq, and python3.\u001b[0m\r\n\r\n"]
Binary file added demo/demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
58 changes: 58 additions & 0 deletions demo/record-demo.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/bash
set -e
G=$'\033[0;32m' R=$'\033[0;31m' Y=$'\033[0;33m' B=$'\033[1m' D=$'\033[2m' Z=$'\033[0m' C=$'\033[0;36m'

type_cmd() {
printf "${D}\$ ${Z}"
for ((i=0; i<${#1}; i++)); do printf "%s" "${1:$i:1}"; sleep 0.03; done
echo ""
}

clear
echo ""
echo " ${B}Graphify Toolkit${Z} ${D}v1.0${Z}"
echo " ${D}Turn any codebase into a queryable knowledge graph${Z}"
echo ""
sleep 1

type_cmd "graphify build ."
sleep 0.5

echo ""
echo " ${C}Scanning project files...${Z}"
sleep 0.5
echo " ${G}+${Z} 142 files analyzed"
echo " ${G}+${Z} 387 nodes extracted ${D}(functions, classes, modules, configs)${Z}"
echo " ${G}+${Z} 614 edges mapped ${D}(imports, calls, extends, configures)${Z}"
sleep 0.3
echo " ${G}+${Z} Graph written to ${D}graphify-out/graph.json${Z} ${D}(248 KB)${Z}"
echo ""
sleep 1

type_cmd "graphify query \"What depends on the auth module?\""
sleep 0.5

echo ""
echo " ${B}5 dependents found:${Z}"
echo ""
echo " ${C}auth/middleware.ts${Z} ${D}--imports--> ${Z}${B}api/routes.ts${Z}"
echo " ${C}auth/middleware.ts${Z} ${D}--imports--> ${Z}${B}api/admin.ts${Z}"
echo " ${C}auth/session.ts${Z} ${D}--calls---> ${Z}${B}db/users.ts${Z}"
echo " ${C}auth/config.ts${Z} ${D}--configures->${Z}${B}app/server.ts${Z}"
echo " ${C}auth/types.ts${Z} ${D}--extends--> ${Z}${B}shared/types.ts${Z}"
echo ""
sleep 1.5

type_cmd "graphify path \"auth/session.ts\" \"api/billing.ts\""
sleep 0.5

echo ""
echo " ${B}Shortest path (3 hops):${Z}"
echo ""
echo " ${C}auth/session.ts${Z} -> ${C}auth/middleware.ts${Z} -> ${C}api/routes.ts${Z} -> ${C}api/billing.ts${Z}"
echo ""
sleep 1.5

echo " ${B}Zero cloud.${Z} ${D}Just bash, jq, and python3.${Z}"
echo ""
sleep 3
Loading