Omnibus
Skill 84 of 200
Set up PostHog in a user’s GitHub repository from a chat, without a terminal.
2 minutes · 514 words · 5 sections
Install
npx skills add PostHog/skills --skill installing-posthog-from-chatnpx skills add PostHog/skills/plugin marketplace add PostHog/skillsThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
Wizard is PostHog’s setup agent. With wizard-install-start it runs in a cloud workspace on a GitHub repository, makes the code changes, and opens a pull request. The user reviews and merges that pull request. Nothing changes on their default branch until they do.
Work through the steps in order. Skip a step when its outcome is already known from the conversation.
The run uses the project’s GitHub connection, so the project needs one.
integrations-list and look for an integration with kind github.<base URL>/integrations/connect/github/?project_id=<project id>&connect_from=mcp. They install the PostHog GitHub App and choose which repositories it can access. Wait until they say they are done, then call integrations-list again.Call integrations-github-repos-retrieve with the GitHub integration’s ID. Use search when the user named the repository, and page with offset when has_more is true.
Pass the repository as full_name (owner/name).
The setup agent works at the repository root. If the user describes a monorepo where the app lives in a subdirectory, tell them the run may not find it, and offer to try anyway.
Call wizard-install-start with:
repository: the owner/name from step 2.branch: only when the user wants a branch other than the default one. The pull request targets that branch.idempotency_key: a fresh unique value for this request. Reuse the same value if you retry after a network error, so the retry returns the same run.Errors the user can act on:
| Error code | What to do |
|---|---|
github_not_connected | Go back to step 1. |
repository_not_accessible | Ask the user to add the repository to the PostHog GitHub App, then retry with a new idempotency_key. |
run_already_active | The user already has a run in progress in this project. Ask them to wait for it, or check it in PostHog. |
| HTTP 429 | The user reached the hourly or daily limit for setup runs. Relay the message. Don’t retry right away. |
Tell the user the run started and share the url from the response, where they can follow it in PostHog.
Call wizard-install-status with the run_id about every 30 seconds while status is created or running. A run usually takes several minutes.
next_step to the user when it changes. It is written to be passed on as is.tasks when it helps, but don’t send an update on every poll.status is completed, failed, or cancelled.When the client cannot wait that long in one turn, tell the user the run is in progress and check again when they come back.
completed with pull_request_url: share the link. Say the user should review the changes and merge the pull request to finish setting up PostHog.completed without pull_request_url: the setup agent changed nothing, often because PostHog is already set up. Relay next_step.failed: relay next_step and error_message. Offer to start a new run when next_step suggests one.Set up PostHog in a user's GitHub repository from a chat, without a terminal. Wizard, PostHog's setup agent, runs in the cloud, adds the SDK and first events, and opens a pull request. Use only when you can't read or edit the user's code, which is common in web chat apps such as ChatGPT on the web or Claude on the web. Typical requests: install, add, or set up PostHog in their app or repository, or open a pull request that adds PostHog. When you're working in the user's repository, use installing-posthog-in-a-codebase instead. Covers connecting GitHub, picking the repository, starting the run, polling it, and sharing the pull request.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 8 November 2026.SKILL.md, not by matching a directory convention. 2 distinct layouts observed: skills/omnibus/*/SKILL.md, skills/posthog/all/skills/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by PostHog, declaring 6 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./PostHog/skills.md, and each skill at its own .md URL.