Skip to content
Data
Skill

/simulate-returning-user

Send synthetic single-session multi-page traffic to a URL and confirm PostHog $pageview events fire across page views. Use when verifying that cookies persist correctly, that the same distinct_id is reused across navigations, or when debugging session-stitching issues.

From plugin
posthog
38k156 skills11 agents1 command2 MCP
Install
$ npx -y skills add posthog/posthog --skill simulate-returning-user --agent claude-code

How 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/simulate-returning-user

Context preview

The summary Claude sees to decide when to auto-load this skill.

Send synthetic single-session multi-page traffic to a URL and confirm PostHog $pageview events fire across page views. Use when verifying that cookies persist correctly, that the same distinct_id is reused across navigations, or when debugging session-stitching issues.

SKILL.md

simulate-returning-user.SKILL.md
name: simulate-returning-user
description: >
  Send synthetic single-session multi-page traffic to a URL and confirm
  PostHog $pageview events fire across page views. Use when verifying that
  cookies persist correctly, that the same distinct_id is reused across
  navigations, or when debugging session-stitching issues.

Simulate returning-user traffic

Drives a single browser context across N page views (cookies and localStorage persist), navigating between pages and reporting which PostHog events fired. This matches the behavior of a single visitor browsing multiple pages on the same site.

When to use

  • Confirm that PostHog reuses the same `distinct_id` across page views in a

session (no fresh anonymous IDs per page).

  • Confirm `$pageview` fires on every page view, not just the first.
  • Reproduce "session not stitching" or "events split across multiple users"

reports.

How to invoke

Call the `simulate_returning_user` MCP tool with:

  • `url` (required) — the page to visit each iteration.
  • `page_views` (default `3`) — number of page views in the session.
  • `interval` (default `5.0`) — seconds between page views.
  • `posthog_host` (default `https://us.i.posthog.com`).

To exercise multi-page navigation, call the tool once per URL — the cookies won't carry across calls (each call is a separate Playwright context). For true multi-page browsing within one session, edit the URL list passed to the underlying CLI: `traffic-sim returning-user --url A --url B --url C`.

Interpreting the result

The structured response shape matches `simulate_new_user`. Key signals:

  • `verified: true` and `pageviews >= page_views` — the session works.
  • Same `distinct_id` across all pageviews (visible in PostHog UI under the

run_id query param) — session stitching works.

  • Different `distinct_id` per visit — likely a cookie domain or

storage-permissions issue. Inspect the raw `posthog_requests` for `$session_id` values to diagnose.

Read more
Ships withposthog

: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.

Get the whole plugin

Other skills on posthog.