PostHog Slack app commands and limitations
Contents
You mention @PostHog to start a task. Everything else – routing rules, project routing, the command list itself – is configuration, and lives behind the /posthog slash command:
| Command | What it does |
|---|---|
@PostHog <task description> | Create a task for the agent to work on |
/posthog rules list | Show all routing rules |
/posthog rules add "description" org/repo | Add a routing rule |
/posthog rules remove <number(s)> | Remove routing rules by number (e.g. remove 1 or remove 1,2) |
/posthog project | Show which PostHog project your mentions route to in this workspace |
/posthog project <id> | Set the PostHog project your mentions route to in this workspace |
/posthog project workspace <id> | Set the workspace-wide default project (Slack admins/owners only) |
/posthog help | Show the command list |
Bare /posthog shows the command list too.
A slash command answers only you, so you can reconfigure the bot without posting a message the whole channel reads. It reads the same in a channel and in a DM too.
Mentioning the bot with a command doesn't run it. For example, @PostHog project 42 just gets /posthog back, so it can't become a coding task about its own syntax.
The project commands only matter if your Slack workspace is connected to multiple PostHog projects. The App Home tab has the same project settings as a dropdown, which saves you looking up an id. Use whichever is closer to hand: the tab if you're already in it, a slash command if you're in the conversation. Routing rules are commands only. See Pick a project.
Routing rules
Routing rules let you map a mention's content to a specific repo so the agent doesn't have to ask. A rule has a free-text description that's matched against the mention and an org/repo target it routes to:
A rule needs both parts. /posthog rules add "frontend bug" with no repo is refused, and the bot replies with the full spelling to use.
When several rules match, the first one in rules list wins. Use /posthog rules remove 1,2 to drop rules you no longer want. The numbers correspond to the positions printed by rules list.
How the agent picks a repo
When you mention @PostHog, it reads your routing rules first. A rule that matches sends the task straight to its repo. If no rule matches and you have several repos connected, the bot opens a picker in the thread. If you have only one, it uses that one.
Limitations
Before you lean on the Slack app, here's a list of things to know:
- Ephemeral sandbox. Each task runs in a fresh sandbox that lives roughly six hours. Long iterations need re-prompting once it recycles.
- Personal GitHub auth is per user. Every teammate who wants to ship a PR has to connect their own GitHub once. First-time setup has known rough edges.
- Attachment limits. The agent reads images, PDFs, and plain-text attachments (logs, markdown, CSV, JSON, YAML) – up to five per message, 10 MB each. Other file types are skipped with a note.
- Runtime is fixed per task. You can switch models mid-run, but only within the same runtime family (Claude or Codex). Moving to the other family requires starting a new thread.
- The model and project you name are read, not parsed. A model request or a project name in your message is read by an LLM, so an unusual phrasing can be missed. A miss leaves the run on your saved defaults, which is the safe outcome.
- No
/posthogfor external members. A Slack Connect channel shares a conversation, not an app install. Someone from the other workspace can mention@PostHog, but the slash command isn't installed for them, so they can't change any setting. - 500-repo cap on the picker. If your team's GitHub install exposes more than 500 repos, the list is truncated. Add a routing rule for repos that fall off the end.
- Workflow timeouts. The 10-minute timeout covers accepting a mention and starting the agent, not the task itself. A running task can keep working well past that, until its sandbox recycles. The repo picker times out after 15 minutes.
- Behavior is still moving. Prompt construction and review-bot trust heuristics are being actively iterated. Expect shifts between beta builds.