~/.meridian/meridian.db and updates in real time as new sessions are written — no refresh needed, no cloud sync required. Open it at any point during your day to see exactly how you’ve been spending your time, broken down by app, category, and minute.
Opening the dashboard
The dashboard starts automatically when you runmeridian start and listens on port 3000. To open it, navigate to:
Dashboard views
The dashboard has three main views accessible from the navigation bar.Home
The home page (/) is your at-a-glance summary of the current workday. It’s organised as three layers of detail — overview, zoom, then details-on-demand — so the default view stays calm and you pull in more depth only when you want it.
Layer 1 — Today at a glance
The top of the page leads with a single sentence summarising the day so far — for example, “3h 12m focused, 28% of it alongside Claude — plus 24m of autonomous agent work while you were away.” Autonomous work and fragmented days are only mentioned when they’re notable, so the headline stays meaningful. Directly beneath, the DayTimeline shows the entire day as two aligned tracks:- Presence track — solid where you were active at the keyboard, faint where you were idle or away.
- Agent band — a strip beneath the presence track, solid where a coding agent (Claude Code, Codex) was engaged.
Layer 2 — TodayMetrics
Below the timeline, a row of three headline numbers gives you the day in one glance:| Metric | Meaning |
|---|---|
| Focus | Total time you were active at the keyboard today. |
| AI-assisted | The share of your focus time that overlapped with an engaged coding agent — i.e. supervised agent time as a percentage of focus. |
| Switches | Count of foreground app changes today. Brief sub-15-second window flicker is filtered out, so this reflects real context shifts rather than capture noise. Lower numbers indicate deeper focus. |
Layer 3 — Details on demand
Each metric tile is a button. Click one to expand a panel underneath with the full breakdown:- Focus expands into Active, Idle / away, and AI-assisted time.
- AI-assisted expands into Supervised (agent ran while you were active), Autonomous (agent ran while you were away), and Agent total.
- Switches expands into the raw context-switch count and an explanation of the 15-second flicker filter.
Active session, totals strip, and tasks
The rest of the page contains:Active Session Card
Shows the app currently in focus, how long it has been active, and the top window titles seen in this session. Updates on each daemon poll cycle (every 60 seconds).
Totals strip
A four-tile summary below TodayMetrics: Focus, Idle, Coding agent (Claude Code / Codex time, shown as a share of focus), and Switches.
Task buckets
Today’s sessions grouped by the task key Meridian classified them under, so you can see how time split across tickets and projects.
Category Breakdown
A horizontal bar chart showing how your focus time is distributed across activity categories. Each bar is color-coded to match the timeline above.
Coding-agent time is never summed into Focus. Supervised agent time is a subset of focus — the AI-assisted slice — and autonomous agent time sits entirely outside focus (because you were idle). The TodayMetrics row and the totals strip both surface coding-agent time as a share of focus rather than an additive total, so the numbers never read as more wall-clock than actually elapsed.
Sessions list
Navigate to/sessions to see every completed session for the current day, ordered newest-first with pagination. Each card shows the app name, start and end time, duration, top window titles, assigned category, and confidence score.
Apps view
Navigate to/apps to see all-time usage statistics aggregated by application: total time, session count, average session length, and the last time each app was seen. A focus donut chart at the top highlights your top apps by cumulative time.
Activity categories
Meridian classifies each session into one of ten fixed categories. Each category has a distinct color used consistently across the timeline, the category breakdown chart, and every session card:| Category | Description |
|---|---|
coding | Active development in an editor or IDE |
code_review | Pull request review, diff reading |
meeting | Video calls, conferencing apps |
communication | Messaging, email |
design | Design tools such as Figma |
documentation | Writing docs, wikis, notes |
planning | Roadmapping, ticket grooming, project management tools |
deployment_devops | CI/CD, terminal, infrastructure work |
research | Browser research, reading |
idle_personal | Idle periods or non-work apps |
Logs and maintenance
To tail the dashboard’s log output:The dashboard reads directly from
~/.meridian/meridian.db. It does not make any network requests and does not send your activity data anywhere. All rendering happens locally in your browser.Troubleshooting
http://localhost:3000 returns an error or doesn't load
http://localhost:3000 returns an error or doesn't load
Check that the UI service is running:If the UI service is not listed as running, restart all services:Then tail the UI log to see any startup errors:
The active session card shows stale data
The active session card shows stale data
The daemon writes new data every 60 seconds (configurable via
POLL_INTERVAL_SECS). If the card hasn’t updated in longer than a minute or two, check that the daemon is running with meridian status and review the daemon log with meridian logs.The dashboard was installed without the UI (--no-ui flag)
The dashboard was installed without the UI (--no-ui flag)
If you ran
./install.sh --no-ui, the dashboard was not built. Build and register it now: