Real-time visualization of Claude Code sessions. Agents, tools and file operations are represented as animated nodes in an SVG scene.
npm installnpm run server # Backend on port 3001
npm run dev # Frontend on port 5173src/
├── main.tsx # React entry point
├── App.tsx # Root component — SSE connection, event TTL (8 s)
├── types.ts # TypeScript interfaces (SessionEvent, Agent, Tool, FileOperation)
├── theme.ts # Color palette and layout constants (radii, sizes)
└── components/
├── Scene.tsx # Main SVG — node rings, Bézier links
├── AgentNode.tsx # Circle — active agent (orange) / completed (brown)
├── ToolOrb.tsx # Diamond — tool colored by category
├── FileNode.tsx # Rectangle — read file (beige) / written file (orange)
└── ControlPanel.tsx # Bottom overlay — play/pause, event counter
server/
└── index.js # Node.js server — parses .jsonl files and streams via SSE
- The server reads session logs from
~/.claude/projects(.jsonlfiles) - Events are streamed via
/api/events(Server-Sent Events) - The frontend keeps active events for 8 seconds (sliding TTL)
node server/index.js --list # List available projects
node server/index.js --project <name> # Target a specific project- Play/Pause — freeze or resume event display
- Active event counter
- React 18 + TypeScript + Vite
framer-motion— node and SVG link animations- Vanilla Node.js backend (no framework)
