diff --git a/README.md b/README.md
index 1c8ade0..e12cb87 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,12 @@
---
+
+
+
+
+---
+
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