Opik Analytics Instrumentation
comet-ml/opik
Shows how to add product analytics events to Opik's frontend, Java backend and Python SDK, all reporting through Segment to PostHog with an opik_ name prefix.
Starts, connects to, and troubleshoots a PostHog devbox, a remote Coder workspace for PostHog development that can also run the full stack, through hogli devbox: commands.
$ npx skills add PostHog/posthog-foss --skill setting-up-devbox -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install PostHog/posthog-foss setting-up-devbox --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/PostHog/posthog-foss.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/setting-up-devbox .claude/skills/setting-up-devbox && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "setting-up-devbox" agent skill from https://github.com/PostHog/posthog-foss/tree/master/.agents/skills/setting-up-devbox into .claude/skills/setting-up-devbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setting-up-devbox", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/PostHog/posthog-foss/tree/master/.agents/skills/setting-up-devboxType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add PostHog/posthog-foss --skill setting-up-devbox -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install PostHog/posthog-foss setting-up-devbox --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PostHog/posthog-foss.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/setting-up-devbox .agents/skills/setting-up-devbox && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "setting-up-devbox" agent skill from https://github.com/PostHog/posthog-foss/tree/master/.agents/skills/setting-up-devbox into .agents/skills/setting-up-devbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setting-up-devbox", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add PostHog/posthog-foss --skill setting-up-devbox -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install PostHog/posthog-foss setting-up-devbox --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PostHog/posthog-foss.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/setting-up-devbox .cursor/skills/setting-up-devbox && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "setting-up-devbox" agent skill from https://github.com/PostHog/posthog-foss/tree/master/.agents/skills/setting-up-devbox into .cursor/skills/setting-up-devbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setting-up-devbox", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/PostHog/posthog-foss.git --path .agents/skills/setting-up-devbox--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add PostHog/posthog-foss --skill setting-up-devbox -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install PostHog/posthog-foss setting-up-devbox --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PostHog/posthog-foss.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/setting-up-devbox .gemini/skills/setting-up-devbox && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "setting-up-devbox" agent skill from https://github.com/PostHog/posthog-foss/tree/master/.agents/skills/setting-up-devbox into .gemini/skills/setting-up-devbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setting-up-devbox", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install PostHog/posthog-foss setting-up-devboxInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add PostHog/posthog-foss --skill setting-up-devbox -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/PostHog/posthog-foss.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/setting-up-devbox .github/skills/setting-up-devbox && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "setting-up-devbox" agent skill from https://github.com/PostHog/posthog-foss/tree/master/.agents/skills/setting-up-devbox into .github/skills/setting-up-devbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setting-up-devbox", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add PostHog/posthog-foss --skill setting-up-devbox -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install PostHog/posthog-foss setting-up-devbox --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PostHog/posthog-foss.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/setting-up-devbox .opencode/skills/setting-up-devbox && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "setting-up-devbox" agent skill from https://github.com/PostHog/posthog-foss/tree/master/.agents/skills/setting-up-devbox into .opencode/skills/setting-up-devbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setting-up-devbox", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
setting-up-devboxStarts, connects to, and troubleshoots a PostHog devbox, a remote Coder workspace for PostHog development that can also run the full stack, through hogli devbox: commands.
Setting Up Devbox is an agent skill from PostHog/posthog-foss, published by the product's own GitHub organization. Starts, connects to, and troubleshoots a PostHog devbox, a remote Coder workspace for PostHog development that can also run the full stack, through hogli devbox: commands. Use when asked to spin up or resume a devbox, open a shell or editor on it, run a command on it, mirror a local checkout to it (devbox:sync), run the PostHog app on it and share a link, clone, update, share, or free disk on a devbox, store gh or Claude Code tokens for it, or diagnose a failing devbox command (tailnet, DNS, Coder CLI version…
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/access-troubleshooting.md` and `references/sync.md`).
It works with PostHog. The repository describes itself as: PostHog FOSS is a read-only mirror of PostHog, with all proprietary code removed. NOTE: This repo is synced automatically from the main PostHog repo. Please raise any issues and… The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2c48221. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitjqbashFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
app--devbox-jane-d--jane-d.coder.dev.posthog.devFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GH_TOKENCLAUDE_CODE_OAUTH_TOKENOP_SERVICE_ACCOUNT_TOKENANTHROPIC_API_KEYOPENAI_API_KEYPOSTHOG_GIT_SIGNING_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Setting Up Devbox loads about 2.6k tokens when it runs, and up to ~4k if it reads all its reference files. Until then it costs about 162 tokens; SKILL.md has 1,304 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
n Linux, the reachability check can run `sudo tailscale set --accept-routes` and prompt for a password.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from PostHog/posthog-foss at commit 2c48221, republished under its MIT licence (© PostHog). 1,304 words, ~2,553 tokens.
.claude/skills/setting-up-devbox/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.A devbox is a Coder workspace on EC2 for PostHog development.
Drive it through hogli devbox:* and don't reimplement what those commands do.
A new box has the repo at ~/posthog on master, prewarmed dependencies, and Claude Code installed.
hogli devbox:<command> --help has the current flags.
This skill covers the order of operations and what the help text leaves out.
People use a box in different ways: a shell or editor for general development, a remote target for a local checkout, or a host for the running PostHog app. Work out which one the user wants, and don't start the PostHog stack unless they ask for the app.
Copy this checklist and track it:
- [ ] 1. hogli devbox:doctor: the tailnet and control plane checks are ok
- [ ] 2. hogli devbox:setup has run on this machine
- [ ] 3. hogli devbox:start: the box is running
- [ ] 4. The user is connected the way they asked for
- [ ] 5. hogli devbox:stop when the user is donehogli devbox:doctor is read-only: it never prompts or changes host config.
Commands that reach a box run the same reachability check first, so fix a failure here before anything else.
posthog.com. Doctor prints it and names a wrong tailnet as the cause.group:employees in the tailnet policy. Nobody needs a PR to get access.[missing] Commit signing agent does not block starting or using a box. It matters only for signed commits made on the box.hogli devbox:setup is interactive, so ask the user to run it in their own terminal.
It installs the Coder CLI at the server's version into ~/.hogli/bin, logs in, installs the pinned mutagen binary for devbox:sync, and writes the coder.* SSH host entries that devbox:ssh and devbox:exec use.
~/.hogli/bin is not on PATH, so call that CLI as ~/.hogli/bin/coder when a step needs coder directly.
Each optional step has a --configure-<step> and --skip-configure-<step> flag: ssh, git-identity, git-signing, region, dotfiles, claude.
Run it again when a command prints Coder CLI vX does not match server vY, because it reinstalls the matching CLI.
On Linux, the reachability check can run sudo tailscale set --accept-routes and prompt for a password.
Run setup interactively once before an agent drives devbox commands unattended.
hogli devbox:startThis creates the box on first use and resumes it after a stop.
It brings up the PostHog stack only when the workspace has --start-app set, which is covered in Run the PostHog app.
--disk (100 or 200 GiB) applies only when the box is created.
--region (us-east-1 or eu-central-1) starts that region's default box and creates it if it doesn't exist, so leave it off when resuming an existing box.
A box's region can't change.
The default box is devbox-<coder-user>, and a labeled box is devbox-<coder-user>-<label>.
Boxes in eu-central-1 add an -eu suffix, for example devbox-<coder-user>-eu.
hogli devbox:list shows the exact names.
Target a labeled box with -n <label> on commands that act on a box.
Match what the user asked for:
hogli devbox:ssh.hogli devbox:open --vscode, --cursor, or --web.hogli devbox:exec, described in Run commands on the box.hogli devbox:sync.hogli devbox:stop keeps the disk and stops billing.
Stops, starts, and devbox:update keep /home.
hogli devbox:destroy deletes it, so don't keep anything irreplaceable only on a box.
hogli devbox:exec -- <command> runs one command over SSH and returns its exit code.
Wrap the command in bash -lc '...'.
A non-login shell doesn't reliably load the shell profile, so tools on a login-shell PATH such as ~/.local/bin report "command not found".
Put -- between hogli's flags and the command's own.
devbox:exec and devbox:ssh fail to connect until devbox:setup has written the SSH config.
Use this section only when the user wants the app, for example to QA a change or share a link.
hogli devbox:start --start-app. The flag stays set on the workspace, so every later start brings the stack up in the background until hogli devbox:start --no-start-app turns it off. Either flag takes effect only when the box is created or starts from stopped; on a running box hogli skips it and prints a note.hogli devbox:exec -- bash -lc 'cd ~/posthog && ./bin/hogli up -d -y'.The stack keeps booting after the start command returns.
Poll in a bounded loop until this prints 200 or 302.
A 000 or 502 means the stack is still booting.
hogli devbox:exec -- bash -lc "curl -s -o /dev/null -w '%{http_code}' --max-time 10 http://127.0.0.1:8010/"When resuming QA on an existing box, check it before recreating sync, restarting the stack, or making a new box:
hogli devbox:status
hogli devbox:exec -- bash -lc 'cd ~/posthog && git status --short --branch && git rev-parse --short HEAD'
hogli devbox:sync --jsonKeep going when the app serves the intended branch and SHA, the target route loads, and its APIs work. Note unrelated degraded processes instead of chasing full health.
The template exposes the app as a Coder subdomain app that only the box owner can open:
https://app--<workspace>--<coder-user>.<coder-host><coder-host> is the host of Coder URL in hogli devbox:doctor, and hogli devbox:list shows the workspace name.
For example, devbox-jane-d owned by jane-d on coder.dev.posthog.dev is https://app--devbox-jane-d--jane-d.coder.dev.posthog.dev.
The user must be on the tailnet, and the browser goes through Coder sign-in first.
Verify the link before handing it over. Coder runs the template's health check against the app, so read that status instead of sending a request with the user's session token:
~/.hogli/bin/coder list --output json | jq -r '.[] | select(.name=="<workspace>") | .latest_build.resources[]?.agents[]?.apps[]? | select(.slug=="app") | .health'healthy means Coder routes the URL to a working app.
initializing means the check hasn't passed yet, and unhealthy means it keeps failing.
hogli devbox:forward is the alternative when the user wants localhost.
It tunnels box port 8010 to localhost:8010 and holds the terminal until stopped.
Pass --port 8011 when a local stack already uses 8010.
hogli devbox:secret:set GH_TOKEN reads the value from a hidden prompt or from --file. Never put a token on a command line or in the conversation. A secret reaches only boxes started after it is set, so run hogli devbox:restart on a running box. The template documents CLAUDE_CODE_OAUTH_TOKEN, GH_TOKEN, OP_SERVICE_ACCOUNT_TOKEN, ANTHROPIC_API_KEY, OPENAI_API_KEY, and POSTHOG_GIT_SIGNING_KEY, which hogli devbox:setup --configure-git-signing sets. devbox:secret:list shows names, env vars, and descriptions, never values.hogli devbox:clone --as <label> copies a running box's full disk, including any secrets on it, into devbox-<coder-user>-<label> in the source box's region. Stop the stack on the source first for a consistent copy. It asks for confirmation, so pass -y only after the user agrees. Only the owner can clone a box.hogli devbox:update applies the latest template when the box is outdated.hogli devbox:cleanup:disk -n <label> cleans a labeled box. With no workspace it cleans this machine instead, and the default box has no label, so clean the default box with hogli devbox:exec -- bash -lc 'cd ~/posthog && ./bin/hogli devbox:cleanup:disk'. --docker also prunes stopped containers, and --cargo also removes Rust build output, which forces a full rebuild.hogli devbox:share --user <coder-user> --role use grants access, and devbox:users lists usernames. devbox:unshare removes access only after hogli devbox:restart.hogli devbox:logs -f.hogli devbox:setup --configure-dotfiles saves a dotfiles repo that the box applies on start, running its executable install.sh. A new repo URL reaches a box when it next starts from stopped or runs devbox:update, not on devbox:restart. Neither is required, so don't push one over the other.code-server (devbox:open --web) has no SSH agent forwarding, so commit signing fails there. Use VS Code Desktop, Cursor, or JetBrains over SSH to sign commits.© PostHog, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in .agents/skills/setting-up-devbox of PostHog/posthog-foss.
Open the folder on GitHubat commit 2c48221
Setting Up Devbox next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Setting Up Devbox this skillPostHog/posthog-foss | 721 | — | ~2.6k | Automated safety check: Notes | MIT | |
| Opik Analytics Instrumentationcomet-ml/opik | 22k | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| C15tc15t/c15t | 1.9k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Define Feature Flagmacro-inc/macro | 4.6k | — | ~780 | Automated safety check: Pass | AGPL-3.0 | |
| Soku CLIAbout-Intelligence/soku-cli | 304 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Compare Array Bundle SizePostHog/posthog-js | 613 | — | ~599 | Automated safety check: Pass | Custom licence |
comet-ml/opik
Shows how to add product analytics events to Opik's frontend, Java backend and Python SDK, all reporting through Segment to PostHog with an opik_ name prefix.
c15t/c15t
Work with c15t consent management docs, APIs, and integrations for Next.js, React, and JavaScript.
macro-inc/macro
Define a frontend feature flag with defineFlag and wire its readers.
About-Intelligence/soku-cli
Guides an agent through the soku command line tool for ads, GA4 and PostHog data reads, ads writes, SEO hosting, automations, files and skill management.
PostHog/posthog-js
Quickly compare the posthog-js array.js bundle size in the current working tree against a git baseline using the repository's esbuild proxy.
OpenHands/OpenHands
This skill should be used when the user asks to "add tracking", "add a PostHog event", "change telemetry consent", "instrument onboarding", "debug analytics", or changes telemetry.ts…
PostHog/posthog-foss
Author useful, low-noise log alerts on services in a PostHog project.
PostHog/posthog-foss
Operating procedure for the conflict-autoresolver agent: sweep open PostHog/posthog PRs that conflict with master, resolve the trivial conflicts (generated artifacts deterministically, source…
PostHog/posthog-foss
Help users debug PostHog Error Tracking stack-trace symbolication for any supported platform — JavaScript/TypeScript web, React Native (Hermes), Android (Proguard / R8), or iOS / macOS (dSYM).
PostHog/posthog-foss
Investigates distributed application performance using PostHog APM (OpenTelemetry span) data via MCP.
PostHog/posthog-foss
Debug and inspect LLM/AI agent traces using PostHog's MCP tools.
PostHog/posthog-foss
Diagnose why a product metric changed (dropped, spiked, or plateaued) by orchestrating breakdowns, actors, paths, lifecycle, retention, and annotations queries.
Works with
Starts, connects to, and troubleshoots a PostHog devbox, a remote Coder workspace for PostHog development that can also run the full stack, through hogli devbox: commands. Setting Up Devbox is an agent skill from PostHog/posthog-foss, published by the product's own GitHub organization. Starts, connects to, and troubleshoots a PostHog devbox, a remote Coder workspace for PostHog development that can also run the full stack, through hogli devbox: commands.
Setting Up Devbox fits situations like: asked to spin up; resume a devbox; run a command on it; mirror a local checkout to it (devbox:sync).
Run `npx skills add PostHog/posthog-foss --skill setting-up-devbox -a claude-code`. Or copy the skill folder (.agents/skills/setting-up-devbox in PostHog/posthog-foss) into .claude/skills/setting-up-devbox in your project. Claude Code loads it when a task matches its description.
Run `npx skills add PostHog/posthog-foss --skill setting-up-devbox -a codex`. Or copy the skill folder (.agents/skills/setting-up-devbox in PostHog/posthog-foss) into .agents/skills/setting-up-devbox in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PostHog/posthog-foss --skill setting-up-devbox -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/setting-up-devbox, .gemini/skills/setting-up-devbox, .github/skills/setting-up-devbox and .opencode/skills/setting-up-devbox in your project.
Going by SKILL.md and its folder, Setting Up Devbox needs the command-line tools its instructions call (git, jq and bash) and credentials named GH_TOKEN, CLAUDE_CODE_OAUTH_TOKEN, OP_SERVICE_ACCOUNT_TOKEN and ANTHROPIC_API_KEY. Our summary lists: Docker; A credential in CLAUDE_CODE_OAUTH_TOKEN; A credential in OP_SERVICE_ACCOUNT_TOKEN.
SKILL.md names 1 domain. In commands or code: app--devbox-jane-d--jane-d.coder.dev.posthog.dev; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Setting Up Devbox is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Setting Up Devbox: Opik Analytics Instrumentation (comet-ml/opik, 22k stars), C15t (c15t/c15t, 1.9k stars), Define Feature Flag (macro-inc/macro, 4.6k stars) and Soku CLI (About-Intelligence/soku-cli, 304 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
PostHog (a GitHub organization, an official publisher) maintains it in PostHog/posthog-foss, which has 721 GitHub stars. The repository holds 213 skills in this directory. The repository was last updated on October 7, 2026.
Source: PostHog/posthog-foss on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.