Docs
Everything you need to wire VibeLog into your agents
Quickstart
VibeLog records agent sessions the way a flight recorder records an aircraft: every prompt, tool call, output, and token count, written to an append-only log on your own disk. Install the CLI, then run your agent through it.
npm install -g vibelogapp # record Claude Code sessions + serve this dashboard on localhost:3232 vibelog start # demo mode — simulated agents, indistinguishable to the dashboard vibelog start --mock
The first run creates ~/.vibelog and serves this UI on localhost — it never binds to a public interface. Sessions your agents are running right now appear on Mission control within a second.
Concepts
Sessions
A session is one run of one agent: a prompt in, work in the middle, a result out. Sessions carry an id, the model, the git branch they ran on, and a cost computed from recorded token counts at the rates you set.
The tape
Every session renders as a tape — a strip of the whole run where each mark is an event. Tall marks are prompts and outputs, medium marks are tool calls, short marks are reasoning. You can read a session's shape before you read a word of it: a healthy run settles into a steady rhythm of tool calls; a stuck one shows long silent gaps or a cluster of red.
Events
Events are the atoms: prompt, reasoning, tool call, output, checkpoint, error. Each records its offset from session start, its duration, and its token count where one applies.
CLI reference
vibelog start record Claude Code sessions + serve the dashboard vibelog start --mock simulate a busy machine (demos, development) vibelog start --port=N dashboard port (default 3232) vibelog start --no-dash collector only, no dashboard server vibelog start --host team mode: open the dashboard to your LAN vibelog connect <ip> team mode: send this machine's sessions to a host
Press ⌘K / Ctrl+K anywhere in the dashboard to search every recorded session — titles, prompt text, file paths, bash commands, outputs, models, and branches.
Every command reads and writes only inside ~/.vibelog. There is no login, no telemetry, and no network access. Real mode tails the transcripts Claude Code already writes under ~/.claude/projects — no changes to how you launch your agent.
Team mode
One dashboard for every machine on your LAN. One person hosts; everyone else connects. Sessions from each machine appear on the host's dashboard labeled with the machine's hostname, and Mission control groups them per machine.
# on the machine that will show the dashboard vibelog start --host # prints the address teammates should use # on every other machine vibelog connect 192.168.1.20
Still fully local: connected machines POST their session data straight to the host's /api/ingest over your LAN. No cloud, no accounts.
Security, stated plainly: team mode has no authentication in v1. While --host is running, anyone who can reach that port on your network can read every recorded session — prompts and outputs included — and post sessions of their own. Use it on networks you trust, and never port-forward it to the internet. Without --host, the dashboard binds to localhost only.
Data format
The collector writes one JSON snapshot to ~/.vibelog/state.json: a timestamp and an array of sessions, each with its events. The dashboard streams it over SSE from /api/stream — a full snapshot when you connect, then only the sessions that changed. The file format is stable and boring on purpose — you can parse it with a shell one-liner.
{"now":1783133038322,"source":"claude-code",
"project":{"projectName":"acme-web","gitBranch":"fix/invoice-tz"},
"sessions":[
{"id":"S-0998","agent":"claude-code","model":"claude-fable-5","status":"live",
"gitBranch":"fix/invoice-tz","gitRepo":"acme-web","projectName":"acme-web",
"projectId":"a1c3e5f7-…","tokensIn":50591,"tokensOut":4309,"costUsd":0.21,
"events":[{"at":0,"kind":"prompt","label":"Task","tokens":1204},
{"at":14,"kind":"tool","label":"Read src/invoices/scheduler.ts","durMs":180}]}
]}FAQ
Where does my data go?
Nowhere. Recordings live in ~/.vibelog on the machine that ran the agent. Sharing with a team means pointing VibeLog at a directory you already sync — a repo, a network drive — not an account.
Does recording slow my agent down?
No. The collector reads the transcripts your agent already writes — nothing runs in the agent's path.
Which agents work?
Claude Code works today: vibelog start tails its JSONL transcripts with no changes to how you launch it. Other agents that write JSONL logs are next; --mock shows the full experience meanwhile.