/exploring-live-traffic
Inspects PostHog Web analytics Live tab data — current users online, last-30-minutes pageviews, top pages, referrers, devices, browsers, countries, bot traffic, and the per-minute bot/users charts. Use when the user asks "who is on my site right now?", "what is happening live?",
$ npx -y skills add posthog/posthog --skill exploring-live-traffic --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/exploring-live-traffic
Context preview
The summary Claude sees to decide when to auto-load this skill.
Inspects PostHog Web analytics Live tab data — current users online, last-30-minutes pageviews, top pages, referrers, devices, browsers, countries, bot traffic, and the per-minute bot/users charts. Use when the user asks "who is on my site right now?", "what is happening live?",
SKILL.md
exploring-live-traffic.SKILL.mdname: exploring-live-traffic
description: 'Inspects PostHog Web analytics Live tab data — current users online, last-30-minutes pageviews, top pages, referrers, devices, browsers, countries, bot traffic, and the per-minute bot/users charts. Use when the user asks "who is on my site right now?", "what is happening live?", "what bots are crawling me?", asks about the "live tab" / "live dashboard", wants live numbers (last 30 min), or wants help filtering or drilling into the live view. Also covers building product-analytics insights that mirror what the tiles show.'
Exploring Web analytics live traffic
The Web analytics Live tab (`/web/live`) shows real-time activity over a 30-minute sliding window plus a 60-second "users online" count. It is the place to answer "what is happening on my site right now?" — pageviews, named bots, devices, geo, top paths, top referrers, and a live event feed.
This skill teaches you (the agent) how to:
- recognize a request that belongs on the Live tab
- read the tile model (what each card shows, where the data comes from)
- manipulate the only filter that exists (host)
- build product-analytics insights that match a Live tile when the user wants
longer time ranges or deeper drill-down than the live window offers
The Live tab is **not** a HogQL playground — its data comes from a livestream backed by short HogQL backfills. When the user wants to query "right now" data with HogQL, point them at the tab; when they want historical breakdowns, build an insight with the patterns below.
When to use this skill
Use this skill when the user:
- asks "who is on my site right now?", "what is happening live?", "show me live traffic"
- mentions the "Live" tab, the "Live dashboard", or the live page (`/web/live`)
- asks about live bot traffic ("which bots are crawling me?", "is GPTBot scraping us?")
- wants to filter live traffic by domain / host
- wants to compare what they see on the Live tab to a longer time window — e.g.
"the live tab shows GPTBot is hammering us, can you give me a 7-day chart of that?"
Do not use this skill for non-realtime web analytics work — for that, use the standard Web analytics tab (`/web`).
Tab structure
URL: `/web/live`
The tab has two filter affordances and a grid of tiles. Date range is **fixed**: 30 minutes sliding window for everything except "Users online" (last 60 seconds).
Filters
There is only **one** filter on the live tab: the host (domain) selector.
- It comes from `webAnalyticsFilterLogic.selectedHost`.
- It is **shared with the rest of Web analytics**, so changing it on `/web` propagates to
`/web/live` and vice-versa.
- It is gated by feature flag `WEB_ANALYTICS_LIVE_DOMAIN_FILTER`. If the flag is off, no
host filter UI is rendered and all tiles show data across every domain.
- Setting the host filter narrows: the SSE stream, the HogQL backfill queries (so the
initial 30 min is host-scoped), and the "users online" count.
- There is no date picker, no compare control, no property filters, no test-account
filter on the Live tab. Do not promise the user controls that don't exist.
When the user asks "filter live traffic by domain `<host>`", direct them to the **Domain** selector at the top of the Live tab. There is no URL param to set it directly — it persists in `localStorage` via `webAnalyticsFilterLogic`.
Stat cards (top strip)
| Card | What | Window | | --------------- | ----------------------------------------------- | ------ | | Users online | Distinct device IDs seen in the last 60 seconds | 60s | | Unique visitors | Distinct device IDs in the last 30 min | 30m | | Pageviews | `$pageview` count in the last 30 min | 30m |
Content cards
| Card | What | Notes | | ----------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | Active users per minute | Bar chart, new vs returning visitors | last 30 min | | Top pages | Animated leaderboard, `$pathname` + view count | top 10, 30 min | | Top referrers | Animated leaderboard, `$referring_domain` | top 10, 30 min | | Devices | Breakdown bars, `$device_type` | top 6 + Other | | Browsers | Breakdown bars with logos, `$browser` | top 6 + Other | | Top countries | Breakdown bars, `$geoip_country_code` | top 6 + Other; replaced by a Country/City tab card if `WEB_ANALYTICS_LIVE_CITY_BREAKDOWN` is on | | Bot requests per minute | Bar chart, bot events / minute | flag `WEB_ANALYTICS_BOT_ANALYSIS` | | Bot traffic | Named bots ranked by event share, with category tag | flag `WEB_ANALYTICS_BOT_ANALYSIS`; rows are clickable and open an insight for that specific bot | | Countries (world map) | SVG world map heat | flag `WEB_ANALYTICS_LIVE_MAP` | | Live events | Streamed event feed (event, person, URL, timestamp) | last 50 events |
Every tile (except the live
Read more
name: exploring-live-traffic description: 'Inspects PostHog Web analytics Live tab data — current users online, last-30-minutes pageviews, top pages, referrers, devices, browsers, countries, bot traffic, and the per-minute bot/users charts. Use when the user asks "who is on my site right now?", "what is happening live?", "what bots are crawling me?", asks about the "live tab" / "live dashboard", wants live numbers (last 30 min), or wants help filtering or drilling into the live view. Also covers building product-analytics insights that mirror what the tiles show.'
Exploring Web analytics live traffic
The Web analytics Live tab (`/web/live`) shows real-time activity over a 30-minute sliding window plus a 60-second "users online" count. It is the place to answer "what is happening on my site right now?" — pageviews, named bots, devices, geo, top paths, top referrers, and a live event feed.
This skill teaches you (the agent) how to:
- recognize a request that belongs on the Live tab
- read the tile model (what each card shows, where the data comes from)
- manipulate the only filter that exists (host)
- build product-analytics insights that match a Live tile when the user wants
longer time ranges or deeper drill-down than the live window offers
The Live tab is **not** a HogQL playground — its data comes from a livestream backed by short HogQL backfills. When the user wants to query "right now" data with HogQL, point them at the tab; when they want historical breakdowns, build an insight with the patterns below.
When to use this skill
Use this skill when the user:
- asks "who is on my site right now?", "what is happening live?", "show me live traffic"
- mentions the "Live" tab, the "Live dashboard", or the live page (`/web/live`)
- asks about live bot traffic ("which bots are crawling me?", "is GPTBot scraping us?")
- wants to filter live traffic by domain / host
- wants to compare what they see on the Live tab to a longer time window — e.g.
"the live tab shows GPTBot is hammering us, can you give me a 7-day chart of that?"
Do not use this skill for non-realtime web analytics work — for that, use the standard Web analytics tab (`/web`).
Tab structure
URL: `/web/live`
The tab has two filter affordances and a grid of tiles. Date range is **fixed**: 30 minutes sliding window for everything except "Users online" (last 60 seconds).
Filters
There is only **one** filter on the live tab: the host (domain) selector.
- It comes from `webAnalyticsFilterLogic.selectedHost`.
- It is **shared with the rest of Web analytics**, so changing it on `/web` propagates to
`/web/live` and vice-versa.
- It is gated by feature flag `WEB_ANALYTICS_LIVE_DOMAIN_FILTER`. If the flag is off, no
host filter UI is rendered and all tiles show data across every domain.
- Setting the host filter narrows: the SSE stream, the HogQL backfill queries (so the
initial 30 min is host-scoped), and the "users online" count.
- There is no date picker, no compare control, no property filters, no test-account
filter on the Live tab. Do not promise the user controls that don't exist.
When the user asks "filter live traffic by domain `<host>`", direct them to the **Domain** selector at the top of the Live tab. There is no URL param to set it directly — it persists in `localStorage` via `webAnalyticsFilterLogic`.
Stat cards (top strip)
| Card | What | Window | | --------------- | ----------------------------------------------- | ------ | | Users online | Distinct device IDs seen in the last 60 seconds | 60s | | Unique visitors | Distinct device IDs in the last 30 min | 30m | | Pageviews | `$pageview` count in the last 30 min | 30m |
Content cards
| Card | What | Notes | | ----------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | Active users per minute | Bar chart, new vs returning visitors | last 30 min | | Top pages | Animated leaderboard, `$pathname` + view count | top 10, 30 min | | Top referrers | Animated leaderboard, `$referring_domain` | top 10, 30 min | | Devices | Breakdown bars, `$device_type` | top 6 + Other | | Browsers | Breakdown bars with logos, `$browser` | top 6 + Other | | Top countries | Breakdown bars, `$geoip_country_code` | top 6 + Other; replaced by a Country/City tab card if `WEB_ANALYTICS_LIVE_CITY_BREAKDOWN` is on | | Bot requests per minute | Bar chart, bot events / minute | flag `WEB_ANALYTICS_BOT_ANALYSIS` | | Bot traffic | Named bots ranked by event share, with category tag | flag `WEB_ANALYTICS_BOT_ANALYSIS`; rows are clickable and open an insight for that specific bot | | Countries (world map) | SVG world map heat | flag `WEB_ANALYTICS_LIVE_MAP` | | Live events | Streamed event feed (event, person, URL, timestamp) | last 50 events |
Every tile (except the live
:hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session replay, flags, experiments, error tracking, logs, and more – capture all the context agents need to diagnose problems, uncover opportunities, and ship fixes. Steer it all from Slack, web, desktop, or the MCP.
Repo: posthog/posthog
Other skills on posthog.
- /analyzing-expensive-users
Analyze the most expensive users in AI observability and explain why they cost so much. Use when the user asks about top spenders, expensive users, per-user LLM cost, user-level cost drivers, or patterns behind high AI observability spend.
Open skill - /creating-online-evaluations
Author continuously-running online evaluations in PostHog AI observability, grounded in real failure modes you've identified. Use when the user wants evaluations that automatically score new generations or whole traces going forward — "create an eval to catch X", "continuously
Open skill - /exploring-ai-failures
Find where an AI/LLM application is failing in production and surface the failure patterns, working from real traces. Use when someone wants to understand what's going wrong with an AI feature, find and categorize failure modes, triage errors, or investigate quality issues
Open skill - /exploring-llm-clusters
Investigate AI observability clusters — understand usage patterns in AI/LLM traffic, compare cluster behavior, compute cost/latency metrics, and drill into individual traces within clusters.
Open skill - /exploring-llm-costs
Investigate LLM spend in PostHog — total cost over time, cost by model, provider, user, trace, or custom dimension, token and cache-hit economics, and cost regressions. Use when the user asks "how much are we spending on LLMs?", "which model / user / feature is most expensive?",
Open skill - /exploring-llm-evaluations
Investigate AI observability evaluations — `hog` (deterministic code-based), `llm_judge` (LLM-prompt-based), and `sentiment` (user-message sentiment). Find existing evaluations, inspect their configuration, run them against specific generations, query individual results, and
Open skill

