A borderless circular heads-up display that watches Claude Code in real time. Sessions, subagents, memory files, tasks, and every hook event — all orbiting a glowing core on your desktop.
Jarvis Monitor reads the files Claude Code already writes to disk — and adds a tiny hook receiver so every tool call shows up the moment it fires.
git clone, npm install, npm start. Electron opens a frameless circular window — drop it on a second monitor or let Komorebi tile it.
Edit config.json to list one or more sources — Windows, WSL, anywhere with a ~/.claude directory. Each source gets its own color.
Drop two lines into ~/.claude/settings.json. PreToolUse and PostToolUse start POSTing to localhost — the HUD pulses on every tool call.
Sessions become satellites. Subagents orbit their sessions. Memory and task counts ride along. Active nodes pulse warm gold; idle stays cyan.
Every active session in projects/<key>/<sessionId>.jsonl becomes a node orbiting its project — so you can see the whole tree of work at once.
Each agent-* directory under a session lights up as a satellite around its parent. Watch the swarm form, then dissolve, as work finishes.
Files under projects/<key>/memory/ render as small dots near their project. Your auto-memory, visualized as it grows.
Pending tasks in tasks/<sessionId>/ surface directly on the session detail. Pin a node to see its full task list in the HUD panel.
PreToolUse and PostToolUse hooks POST to a local port. Each call fires an expanding pulse from the core — you feel the agent breathing.
Watch a Windows install and a WSL install at once. Each source gets its own color, its own ring, and a shared core — one HUD, every Claude.
Jarvis Monitor is just an Electron window watching files you already own. Nothing leaves your machine, nothing phones home.
Just file watchers on ~/.claude and a tiny HTTP receiver on localhost. No new state introduced.
The app makes zero outbound requests. The hook port binds to 127.0.0.1 only — your prompts and tool calls never go further.
Paths, ports, and source labels live in a local config.json. Copy the example, tweak to taste, and your setup stays yours.
Plain JavaScript, chokidar, and a small HTTP server. Fork it, theme it, wire it into Komorebi — it's a desk toy that wants to be modded.
Grab the source, point it at your Claude install, and watch the orbit form.