# Live view (/docs/live)

**Live** in the sidebar shows every event the moment RoChart accepts it, straight from the ingest pipeline. Events show up within a second of being sent, before they reach any chart. Use it to check new tracking right after you publish, to watch an update go live, or as a second screen during an event in your game.

## The screen [#the-screen]

- **Pixel field**: every event lights one pixel in its colour, then fades. A busy game shimmers. A quiet one glows now and then.
- **Events / min**: events in the last 60 seconds.
- **People · 5 min**: people with at least one event in the last 5 minutes.
- **Per second**: a scrolling bar per second for the last 2 minutes.
- **Top events · 5 min**: the most frequent events right now. Click one to show only that event.
- **The stream**: newest at the top. Each row shows the event, the player (name when known, otherwise their distinct id), the country and platform, and how long ago it happened.

When the screen opens, it starts with the 50 most recent matching events and the last 5 minutes of counts, so it's never empty. It keeps the newest 200 rows.

Events are coloured by family:

| Colour | Events |
| --- | --- |
| Green | Players joining and leaving (`$session_start`, `$session_end`) |
| Orange | Purchases (`$purchase`) |
| Blue | Your own events |
| Grey | Server bookkeeping (`$server_heartbeat`, `$server_shutdown`) and other `$` events |
| Amber | Identity (`$identify`, `$set`, `$groupidentify`) |
| Teal | Feature flag calls |
| Pink | Feedback |

**Click a row** to see all of its properties in a side panel, open the person, or narrow the stream to that event or that person.

## Filters [#filters]

| Filter | What it does |
| --- | --- |
| **Events** | Only these event names. Pick several. |
| **Server heartbeats** | Off by default: every server reports in once a minute, which would drown the stream. Turn it on to see them. Events you picked by name are always shown. |
| **Filter** | Event property filters, such as `$device_type = Phone` or `mode = duos`. |
| **Person** | One person's distinct id or person id. |
| **Search** | Free text, matched against the event name, distinct id and every property. |

The header numbers count only matching events. Filters are part of the page address, so you can bookmark a filtered view or send it to a teammate.

## History [#history]

Switch **Live → History** for events that already happened: pick a date range, an event and property filters, click a row for its properties, and page back as far as you like. Heartbeats are left out unless you pick that event. Old `/activity` links open History.

## Pause and fullscreen [#pause-and-fullscreen]

- **Pause** (<kbd>Space</kbd>) holds the list still while you read. The numbers keep counting, and a **N new events** pill shows what's waiting. Click it, or resume, to catch up. Scrolling down the list holds it the same way.
- **Fullscreen** (<kbd>F</kbd>) hides the sidebar and goes full screen. <kbd>Esc</kbd> leaves it. A link with `?full=true` opens without the sidebar, which suits a TV.

If events arrive faster than a screen can list them (hundreds per second), the list shows a sample and the numbers still count everything.

## For agents [#for-agents]

The MCP tool `tail_events` returns events received in the last N seconds, with the same filters. It also returns a `cursor`. Pass it on the next call to get only the events that arrived since. The REST equivalent is `GET /api/projects/<id>/live/tail?seconds=60`.

`GET /api/projects/<id>/live` is the stream behind this screen, as [Server-Sent Events](https://developer.mozilla.org/docs/Web/API/Server-sent_events). It sends `backfill` first, then `events` batches as they arrive, and a `ping` every 15 seconds. Filters are query parameters: `event` (repeatable), `heartbeats=0`, `properties` (a JSON array of event property filters), `person` and `search`. It works with a session or a project API key.

Bot traffic from websites is dropped at ingest, so it never shows up here. To hide `$server_heartbeat`, pick the events you want to see.
