Skip to main content
A session is a group of events that share a sessionId — the lifetime of one IDE launch or one autonomous bot run.

How sessions differ from traces

A session contains many traces. A trace contains many events.

Session lifecycle

  • Claude Code: opens a fresh session_id when you launch the editor or start a new chat. Every hook event during that run carries it.
  • Library mode (autonomous bots): you control the session ID. Pass metadata.sessionId explicitly on each voight.log() call, or let the SDK group events by other means.

Sessions grouped by day

If you launch Claude Code multiple times in the same day with the same project, each launch becomes its own session row. The dashboard’s /dashboard/sessions page groups these by (agentId, dayKey):
  • One card per agent per day
  • Badge +N more if there were multiple launches
  • Click to drill into the individual sessions
This keeps the page scannable when you’re running many short sessions.

Session detail page

/dashboard/sessions/<id> shows:
  • Header: agent, start/end time, total duration, total events, errors, tx count
  • Timeline of all traces in the session
  • Inspector panel with aggregated KPIs (tokens, cost, p50/p95 latency)
  • Per-trace breakdown

Session status

A session is one of:

Filtering

Available filters on /dashboard/sessions:
  • Time window: 24h / 7d / 30d / all
  • Agent: any agent in your account
  • Status: active / idle / done / errored
The same FilterBar component drives Audit log + Overview live timeline, so once you learn it in one place it works everywhere.

API

See the /me/sessions reference for full schema.