Official agent skill

Posthog Desktop

by PostHog in PostHog/posthog-foss

Scopes work to the desktop app at products/desktop — a nested standalone pnpm/turbo/Biome workspace imported from the now-archived PostHog/code repo, with posthog/posthog the only source of truth…

OfficialMITAuto-check passedBackend & APIs

Install Posthog Desktop

skills CLI
$ npx skills add PostHog/posthog-foss --skill posthog-desktop -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install PostHog/posthog-foss posthog-desktop --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/PostHog/posthog-foss.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/posthog-desktop .claude/skills/posthog-desktop && rm -rf skills-src

Use ~/.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/

Facts

Skill name
posthog-desktop
GitHub stars
721
Token cost
~1.6k tokens
SKILL.md length
646 words
Files
1
Skills in repo
213
Repo updated
First seen
Licence
MIT

At a glance

Scopes work to the desktop app at products/desktop — a nested standalone pnpm/turbo/Biome workspace imported from the now-archived PostHog/code repo, with posthog/posthog the only source of truth…

  • Works in 4 steps: The user explicitly tells you to. → A backend API the app calls needs to… → Desktop CI / config that lives at the… → …
  • The user says /posthog-desktop
  • SKILL.md covers Scope contract, Toolchain — root CLAUDE.md…, Cross-boundary: the Django API and Provenance, plus 2 more sections
  • Calls pnpm and node

What it does

Posthog Desktop is an agent skill from PostHog/posthog-foss, published by the product's own GitHub organization. Scopes work to the desktop app at products/desktop — a nested standalone pnpm/turbo/Biome workspace imported from the now-archived PostHog/code repo, with posthog/posthog the only source of truth for PRs, CI and publishing, and not part of the root frontend or Django build. Use when the user says /posthog-desktop, or works on the Electron desktop app, apps/code, apps/web, apps/mobile, packages/core, packages/ui, packages/workspace-server, @posthog/api-client, @posthog/agent, or the agent framework. Pins the…

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Backend development, Monorepo tooling and Building AI agents. It works with PostHog, Django, pnpm and GitHub Actions. 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.

When your agent uses it

  • The user says /posthog-desktop
  • Works on the Electron desktop app
  • Packages/workspace-server
  • @posthog/api-client

Example prompts

  • “s toolchain and conventions in place of the monorepo”
  • “Use the posthog-desktop skill to scope work to the desktop app at products/desktop — a nested standalone pnpm/turbo/Biome workspace imported from…”
  • “/posthog-desktop”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. The user explicitly tells you to.
  2. A backend API the app calls needs to change. The client is
  3. Desktop CI / config that lives at the root by design. The list is fixed
  4. The agent runtime changes. @posthog/agent, agent-contracts, enricher, git and

What it can do on your machine

Read from SKILL.md and the folder at commit 2c48221. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Posthog Desktop loads about 1.6k tokens when it runs. Until then it costs about 190 tokens; SKILL.md has 646 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~190
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

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.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

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.

SKILL.md

The full file from PostHog/posthog-foss at commit 2c48221, republished under its MIT licence (© PostHog). 646 words, ~1,643 tokens.

Download SKILL.mdSave it as .claude/skills/posthog-desktop/SKILL.md (or your agent's skills folder).
name
posthog-desktop
description
Scopes work to the desktop app at products/desktop — a nested standalone pnpm/turbo/Biome workspace imported from the now-archived PostHog/code repo, with posthog/posthog the only source of truth for PRs, CI and publishing, and not part of the root frontend or Django build. Use when the user says /posthog-desktop, or works on the Electron desktop app, apps/code, apps/web, apps/mobile, packages/core, packages/ui, packages/workspace-server, @posthog/api-client, @posthog/agent, or the agent framework. Pins the working directory to products/desktop, swaps in that tree's toolchain and conventions in place of the monorepo's, and defines the few paths outside the tree that may be touched (Django APIs the app calls, desktop-* CI at the root).

Working in products/desktop

products/desktop/ is the PostHog desktop app (Electron + agent framework), imported from the now-archived PostHog/code repo and kept as a nested standalone workspace: own pnpm-workspace.yaml, own lockfile, own Biome config, Node 22. It is excluded from the root pnpm-workspace.yaml, from ruff/mypy, from root Jest, from oxlint/oxfmt, from stylelint and from pytest. posthog/posthog is the only source of truth: PRs, CI and publishing all happen here, never in PostHog/code.

Read products/desktop/AGENTS.md before writing code in this tree. It is the source of truth for architecture, layer boundaries, DI, and style. This skill only covers the scoping contract around it.

Scope contract

Default: everything you read, edit, run and test lives under products/desktop/. Run all commands with that as cwd. Do not go fishing in frontend/, posthog/, or other products/* for patterns — the desktop tree has its own, and copying monorepo idioms in is a defect.

Step outside only when one of these is true:

  1. The user explicitly tells you to.
  2. A backend API the app calls needs to change. The client is packages/api-client/; the endpoints it hits live in the Django monorepo (see below).
  3. Desktop CI / config that lives at the root by design. The list is fixed: .github/workflows/desktop-*.yml, .github/actions/desktop-*/, .github/scripts/desktop/, and the exclusion entries in pnpm-workspace.yaml, pyproject.toml, pytest.ini, package.json (lint:css), frontend/jest.config.ts, .dockerignore, .oxlintrc.json, .oxfmtrc.json, .config/.markdownlint-cli2.jsonc, .github/workflows/ci-{frontend,storybook,backend}.yml (+ .depot/workflows/ci-backend.yml). Touch these only to keep an exclusion correct; say so when you do.
  4. The agent runtime changes. @posthog/agent, agent-contracts, enricher, git and harness live in a sibling workspace at packages/agent/ (same toolchain, own lockfile), because cloud sandboxes boot the agent without the desktop app. Work there, then run pnpm build:agent from products/desktop/ so desktop's turbo cache sees the change.

Anything else outside the tree: stop and ask.

Toolchain — root CLAUDE.md does not apply here

Root monorepo saysIn products/desktop use
ruff / mypy / pytestnothing — no Python app code here
oxlint + Oxfmt, pnpm --filter=@posthog/frontend fixpnpm lint (Biome check --write), pnpm format
Jest, hogli testVitest (pnpm test), Playwright (pnpm test:e2e)
pnpm --filter=@posthog/frontend typescript:checkpnpm typecheck (turbo, all packages)
Kea logics, typegen:writeZustand stores + InversifyJS services; no kea, no typegen
LemonUI in frontend/ and products/*/frontend/@posthog/quill + Tailwind + Radix Themes
hogli build:openapi → generated frontend typespackages/api-client/src/generated.ts (hand-maintained here)
4-space / repo Prettier habitsBiome, 2-space, double quotes

Commands (from products/desktop/): pnpm install, pnpm dev, pnpm build, pnpm typecheck, pnpm lint, pnpm test, pnpm test:e2e, pnpm --filter <pkg> <task>, node scripts/check-host-boundaries.mjs.

Never run root-level pnpm install expecting it to cover desktop, and never let a desktop dependency change alter the root lockfile — the root install must stay byte-identical.

Show full SKILL.md (219 more words)Show less

Cross-boundary: the Django API

packages/api-client/ calls monorepo endpoints — tasks (/api/projects/:id/tasks/...), signals, agent applications, environments/MCP installations, /api/users/. When a change needs the backend:

  • Read the Django side to get the contract right; that is in scope without asking.
  • Editing it is a separate, monorepo-side change: root CLAUDE.md rules apply again (/improving-drf-endpoints, /django-migrations, serializer help_text, hogli build:openapi).
  • Keep the two sides in one PR only if they must ship together; otherwise land the backend first.
  • Wiring the app at a local Django instance (OAuth app, RSA keys, flags) is products/desktop/docs/LOCAL-DEVELOPMENT.md.

Provenance

The tree was imported from the standalone PostHog/code repo, which is now archived. There is no resync process: the monorepo copy is the only maintained one, and fixes land here like any other monorepo change. product.yaml declares ownership (team-posthog-code) for reviewer auto-assignment and Slack routing; do not delete it.

Desktop-local skills

products/desktop/.claude/skills/ ships its own: test-electron-app (drive the running app over CDP :9222), quill-code, storybook-stories, onboarding-videos. Prefer these over monorepo equivalents while in this tree.

Before reporting done

  • pnpm typecheck and pnpm lint from products/desktop/, plus pnpm test for touched packages.
  • After touching packages/core: biome lint packages/core, zero noRestrictedImports.
  • After touching @posthog/platform: rebuild or typecheck its dist/.
  • After moving logic out of apps/code: node scripts/check-host-boundaries.mjs --prune.
  • Confirm the diff touches nothing outside products/desktop/ — or name what it touches and why.

© PostHog, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/posthog-desktop of PostHog/posthog-foss.

Open the folder on GitHubat commit 2c48221

Compare with similar skills

Posthog Desktop 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.

Posthog Desktop compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Posthog Desktop this skillPostHog/posthog-foss721—~1.6kAutomated safety check: PassMIT
Linea Dependency MaintenanceConsensys-Incorporated/linea-attestation-registry1771 repos~3.7kAutomated safety check: WarnMIT
Update Dependenciesalorence/django-modern-rpc111—~1.3kAutomated safety check: PassMIT
Django CI Test Optimizationhashgraph-online/awesome-codex-plugins1.2k—~812Automated safety check: PassMIT
ReleaseWebMCP-org/npm-packages103—~1.6kAutomated safety check: NotesMIT
Silk Profilerbaserow/baserow6.1k—~2.9kAutomated safety check: PassCustom licence

Similar skills

  • Linea Dependency Maintenance

    Consensys-Incorporated/linea-attestation-registry

    Safely plan and execute dependency maintenance for JavaScript/TypeScript (npm, pnpm) and GitHub Actions, including npm lockfiles, pnpm workspaces, catalogs, overrides, SHA-pinned action versions…

    177 GitHub starsUsed in 1 repo~3.7k tokens
    DevelopmentAuto-check: warnings
  • Update Dependencies

    alorence/django-modern-rpc

    Routine update of all project dependencies — uv itself, uv.lock (all groups), tool versions pinned in GitHub workflows and .pre-commit-config.yaml (uv, ruff, mypy...), and SHA-pinned GitHub Actions.

    111 GitHub stars~1.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Django CI Test Optimization

    hashgraph-online/awesome-codex-plugins

    Optimize Django and pytest-django test execution in CI with cache configuration, slow-test splitting, database reuse strategy, parallel workers, pytest-xdist, CircleCI/GitHub Actions/Jenkins/Travis…

    1.2k GitHub stars~812 tokensUpdated today
    Backend & APIsAuto-check passed
  • Release

    WebMCP-org/npm-packages

    Release the @mcp-b monorepo with Changesets and pnpm, using npm trusted publishing in GitHub Actions.

    103 GitHub stars~1.6k tokensUpdated 3 days ago
    DevelopmentAuto-check: notes
  • Silk Profiler

    baserow/baserow

    Investigate backend performance using Django Silk profiling data.

    6.1k GitHub stars~2.9k tokensUpdated today
    Backend & APIsAuto-check passed
  • Medusa Internal Admin Agents

    medusajs/medusa-agent-skills

    Walks through adding an AI agent for store operators to a Medusa project: data models, module service, agent runtime, streaming API route and admin chat UI.

    225 GitHub stars~1.9k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed

More from PostHog/posthog-foss

All 213 skills in this repo
  • Authoring Log Alerts

    PostHog/posthog-foss

    Official

    Author useful, low-noise log alerts on services in a PostHog project.

    721 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Autoresolving PR Conflicts

    PostHog/posthog-foss

    Official

    Operating procedure for the conflict-autoresolver agent: sweep open PostHog/posthog PRs that conflict with master, resolve the trivial conflicts (generated artifacts deterministically, source…

    721 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Official

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

    721 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Exploring Apm Traces

    PostHog/posthog-foss

    Official

    Investigates distributed application performance using PostHog APM (OpenTelemetry span) data via MCP.

    721 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Exploring LLM Traces

    PostHog/posthog-foss

    Official

    Debug and inspect LLM/AI agent traces using PostHog's MCP tools.

    721 GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Investigate Metric

    PostHog/posthog-foss

    Official

    Diagnose why a product metric changed (dropped, spiked, or plateaued) by orchestrating breakdowns, actors, paths, lifecycle, retention, and annotations queries.

    721 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Posthog Desktop

What does Posthog Desktop do?

Scopes work to the desktop app at products/desktop — a nested standalone pnpm/turbo/Biome workspace imported from the now-archived PostHog/code repo, with posthog/posthog the only source of truth…. Posthog Desktop is an agent skill from PostHog/posthog-foss, published by the product's own GitHub organization. Scopes work to the desktop app at products/desktop — a nested standalone pnpm/turbo/Biome workspace imported from the now-archived PostHog/code repo, with posthog/posthog the only source of truth for PRs, CI and publishing, and not part of the root frontend or Django build.

When should I use Posthog Desktop?

Posthog Desktop fits situations like: the user says /posthog-desktop; works on the Electron desktop app; packages/workspace-server; @posthog/api-client.

How do I install Posthog Desktop in Claude Code?

Run `npx skills add PostHog/posthog-foss --skill posthog-desktop -a claude-code`. Or copy the skill folder (.agents/skills/posthog-desktop in PostHog/posthog-foss) into .claude/skills/posthog-desktop in your project. Claude Code loads it when a task matches its description.

How do I install Posthog Desktop in Codex?

Run `npx skills add PostHog/posthog-foss --skill posthog-desktop -a codex`. Or copy the skill folder (.agents/skills/posthog-desktop in PostHog/posthog-foss) into .agents/skills/posthog-desktop in your project. Codex loads it when a task matches its description.

Can I use Posthog Desktop in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PostHog/posthog-foss --skill posthog-desktop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/posthog-desktop, .gemini/skills/posthog-desktop, .github/skills/posthog-desktop and .opencode/skills/posthog-desktop in your project.

What does Posthog Desktop need to run?

Going by SKILL.md and its folder, Posthog Desktop needs the command-line tools its instructions call (pnpm and node). Our summary lists: Python 3.

Does Posthog Desktop access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Posthog Desktop safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Posthog Desktop use?

Posthog Desktop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Posthog Desktop use?

About 1.6k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Posthog Desktop?

Skills that share tags, products or a category with Posthog Desktop: Linea Dependency Maintenance (Consensys-Incorporated/linea-attestation-registry, 177 stars), Update Dependencies (alorence/django-modern-rpc, 111 stars), Django CI Test Optimization (hashgraph-online/awesome-codex-plugins, 1.2k stars) and Release (WebMCP-org/npm-packages, 103 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Posthog Desktop?

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.