diff --git a/README.md b/README.md index 1c8ade0..e12cb87 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,12 @@ --- +

+ Graphify Toolkit Demo +

+ +--- + 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`.** diff --git a/demo/demo.cast b/demo/demo.cast new file mode 100644 index 0000000..641e125 --- /dev/null +++ b/demo/demo.cast @@ -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"] diff --git a/demo/demo.gif b/demo/demo.gif new file mode 100644 index 0000000..a8829c9 Binary files /dev/null and b/demo/demo.gif differ diff --git a/demo/record-demo.sh b/demo/record-demo.sh new file mode 100644 index 0000000..9e39246 --- /dev/null +++ b/demo/record-demo.sh @@ -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