How it works
One local Bun daemon spawns your agent, captures every event, and streams it to a local dashboard.
vigie runs a single Bun daemon process on your machine. No remote servers, no cloud, no external dependencies. Everything stays local.
The single-process architecture
When you start vigie daemon start, a Bun process wakes up and does three things:
- Embeds an HTTP + WebSocket server on localhost:19191 that serves the dashboard (React SSR)
- Listens for CLI commands over a Unix socket at
~/.vigie/daemon.sock - Spawns and supervises agent sessions via PTY (pseudo-terminal)
Event capture
Every time your agent runs, vigie captures:
- Files: every read, edit, delete, and directory scan
- Commands: every shell command, with exit code and stderr/stdout
- Tokens: prompt + completion token counts, cost estimation
- Context: current context window percentage, warnings at ~65%+
- Time: exact timestamps for loop detection and replay
All events stream through WebSocket to the dashboard instantly.
Data storage
Sessions, terminal chunks, and input history live in SQLite at ~/.vigie/data.db — a single local file. No network sync, no cloud backup, no telemetry.
The flow
Browser (localhost:19191)
↓↑ HTTP + WebSocket
Daemon (single Bun process)
↓↑ PTY spawn
Agent (Claude Code, aider, codex, ...)
↓↑ stdin/stdout/stderr
Your project files
Your CLI command → Unix socket → Daemon → spawns agent → captures output → stores in SQLite → streams to browser.
Nothing leaves your machine.
Where to next
- The dashboard — how to read the real-time feed
- Supervision signals — what vigie watches for
- Privacy & data — what is stored and where