# Live view (/docs/live)

**Live** in the sidebar shows every event the moment Datahop 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 ship it, to watch a launch, or as a screen on the office TV.

## The screen [#the-screen]

- **Pixel field**: every event lights one pixel in its colour, then fades. A busy site 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 person (name or email when known, otherwise their distinct id), the page, the country, browser and device, 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 | Pageviews (`$pageview`, `$pageleave`) |
| Violet | Autocapture (`$autocapture`, `$rageclick`) |
| Blue | Your own 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. |
| **Pageviews** / **Autocapture** | Hide pageviews or autocapture events, so your own events stand out. Events you picked by name are always shown. |
| **Filter** | Event property filters, such as `plan = pro` or `$pathname contains /checkout`. |
| **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.

## 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 in the browser. <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), `pageviews=0`, `autocapture=0`, `properties` (a JSON array of event property filters), `person` and `search`. It works with a session or a project API key.

Bot traffic is dropped at ingest, so it never shows up here.
