Shift your product into self-driving mode

You have a new pull request ready for review. (Yep, really.)

While you slept, PostHog dug through your product data, found what was worth fixing, and had agents do the work. All you need to do is hit merge.

Unlimited reports. Priced by pull request. 3 free each month.

Learn about inboxNew to PostHog? Sign up
The Inbox surfacing reports and pull requests across PostHog Code and the cloud

How a product improves itself

Notable things happening in your product

A signal is a single observation about your product. Signal sources are the pipes that produce them:

Error tracking

Exceptions and stack traces grouped into issues

Session replay

Dead clicks, quick backs, long stalls

Scouts

Scheduled agents with durable memory

External tools

Zendesk, Linear, GitHub issues

On their own, raw signals are noisy. Grouped into a report, they become a single thing you can act on.
Notable things happening in your product

…then it loops

Every change ships with the instrumentation to measure it – the agent adds the events, feature flags, and experiments as it goes. After it merges, PostHog checks whether the metric actually moved. If it didn't, that's a new signal (and the change can be rolled back).

A hedgehog illustrating the self-improving product loop
A hedgehog transforming into a self-driving machine

PostHog agents run on their own, but don't run wild

Self-driving is autonomy from instruction, not from you. Agents work in the background without you prompting them to make progress, but nothing ships on autopilot.

  • It's stuck in a sandbox. Work happens in the cloud, nowhere near your repo. Agents follow your branch protections, CI, and review rules.
  • The work can't merge itself. Nothing reaches production until a human clicks merge. Robots don't touch the big green button.
  • PRs > Issues. Raw signals are deduped and clustered into reports. Actionable ones become PRs. You only pay for real work completed.
  • Your secrets are safe. Literally, and so is your code. Private repos stay private, and so does your data. (We're training AI models, but not on your code.)

Merged into PostHog by self-driving

See them all →
fixexports

let screenshot creators retrieve their export

merged#6993127m ago
featskills

add body paging to skill-get to recover truncated bodies

merged#714253h ago
fixreplay-vision

stop flashing 404 while feature flags load

merged#698266h ago
fixhogql

surface posthog.* data-plane tables in information_schema

merged#714237h ago
fixcohorts

retry cohort recalc on transient readonly ClickHouse error

merged#676279h ago
fixhogql

degrade autocomplete gracefully on malformed source query

merged#715429h ago
fixerror-tracking

extract exception array props for hasAny in HogQL

merged#680279h ago
fixhogql

honor DISTINCT for count() in the Snowflake printer

merged#706099h ago
fixsignals

use web URL for inbox report link in autostart PR footer

merged#7150412h ago
choresignals

bake tiktoken encoding cache into images

merged#7095212h ago
fixreplay

trim full person properties from session-recording-get

merged#7057816h ago
fixerror-tracking

surface rejection reasons in code owners import errors

merged#705941d ago
fixexports

let screenshot creators retrieve their export

merged#6993127m ago
featskills

add body paging to skill-get to recover truncated bodies

merged#714253h ago
fixreplay-vision

stop flashing 404 while feature flags load

merged#698266h ago
fixhogql

surface posthog.* data-plane tables in information_schema

merged#714237h ago
fixcohorts

retry cohort recalc on transient readonly ClickHouse error

merged#676279h ago
fixhogql

degrade autocomplete gracefully on malformed source query

merged#715429h ago
fixerror-tracking

extract exception array props for hasAny in HogQL

merged#680279h ago
fixhogql

honor DISTINCT for count() in the Snowflake printer

merged#706099h ago
fixsignals

use web URL for inbox report link in autostart PR footer

merged#7150412h ago
choresignals

bake tiktoken encoding cache into images

merged#7095212h ago
fixreplay

trim full person properties from session-recording-get

merged#7057816h ago
fixerror-tracking

surface rejection reasons in code owners import errors

merged#705941d ago
fixflags

redirect hyphenated /feature-flags to underscore route

merged#710681d ago
featflags

add flag_keys filter to evaluation reasons

merged#684541d ago
fixflags

distinguish blast-radius errors and save-time 403s

merged#680661d ago
fixinbox

handle 404 from refund summary on flag mismatch

merged#712631d ago
fixflags

narrow hypercache verifier team query to only needed columns

merged#709301d ago
fixhypercache

degrade primary Redis reads instead of raising

merged#706001d ago
fixerror-tracking

treat deleted team as no-op in fingerprint auto-merge

merged#665091d ago
fixuploaded-media

return 404 when object-storage key is missing

merged#710501d ago
fixinsights

compute ratio-of-sums for trends formula totals

merged#706531d ago
fixmonaco

guard editor onMount against unmounted component

merged#710241d ago
fixdata-warehouse

guard datetime partition key against unparseable strings

merged#707831d ago
fixerror-tracking

route cymbal pg pools through common-database

merged#705271d ago
fixflags

redirect hyphenated /feature-flags to underscore route

merged#710681d ago
featflags

add flag_keys filter to evaluation reasons

merged#684541d ago
fixflags

distinguish blast-radius errors and save-time 403s

merged#680661d ago
fixinbox

handle 404 from refund summary on flag mismatch

merged#712631d ago
fixflags

narrow hypercache verifier team query to only needed columns

merged#709301d ago
fixhypercache

degrade primary Redis reads instead of raising

merged#706001d ago
fixerror-tracking

treat deleted team as no-op in fingerprint auto-merge

merged#665091d ago
fixuploaded-media

return 404 when object-storage key is missing

merged#710501d ago
fixinsights

compute ratio-of-sums for trends formula totals

merged#706531d ago
fixmonaco

guard editor onMount against unmounted component

merged#710241d ago
fixdata-warehouse

guard datetime partition key against unparseable strings

merged#707831d ago
fixerror-tracking

route cymbal pg pools through common-database

merged#705271d ago

It runs on the data you already have

Your product is a context goldmine. Self-driving puts that data to work. The more sources PostHog can see, the sharper the fixes get.

Signals
In-app activity
Logs
Errors
Payments
Session recordings
Traces
Funnel dropoff
Feature flags
Experiment results
Internal threads
Support tickets
Backlog
Transcriptions

Works in your workflow

The same Inbox and agents show up across five surfaces(everywhere you go, there's PostHog).

PostHog web app

The full product in your browser. Explore your data, review proposed work, and dig into the evidence.

PostHog Slack app

@PostHog brings PostHog into Slack channels. Route reports to the ones each team already watches (hedgehog mode not included).

PostHog MCP

Look ma, no hands! Pull self-driving context into other tools, and pull context from your other tools into self-driving.

PostHog CLI

Self-driving from your terminal. Query your data and drive agents right where you already work, and wire it into your scripts and CI.

PostHog CodeBeta

A desktop app for driving parallel agents to edit your product. The same Inbox and reports live here.

Steering a self-driving report from a Slack thread

Build in public (with the whole team)

Self-driving isn't only autonomous. Some fixes are better hashed out by three people in a thread.

Solve it together

Work through a report or PR with collaborators in Slack. Add context, steer the agent, and decide what ships.

Sorted by priority

Each report arrives tagged P0–P4 by impact, so the channel sees what needs attention now and what can wait.

A P0 self-driving report delivered to a Slack channel
A P1 · Replay self-driving report delivered to a Slack channel
A P1 · Zendesk self-driving report delivered to a Slack channel
A P2 self-driving report delivered to a Slack channel
A P3 self-driving report delivered to a Slack channel
A P4 self-driving report delivered to a Slack channel
A P0 self-driving report delivered to a Slack channel
A P1 · Replay self-driving report delivered to a Slack channel
A P1 · Zendesk self-driving report delivered to a Slack channel
A P2 self-driving report delivered to a Slack channel
A P3 self-driving report delivered to a Slack channel
A P4 self-driving report delivered to a Slack channel
A P0 self-driving report delivered to a Slack channel
A P1 · Replay self-driving report delivered to a Slack channel
A P1 · Zendesk self-driving report delivered to a Slack channel
A P2 self-driving report delivered to a Slack channel
A P3 self-driving report delivered to a Slack channel
A P4 self-driving report delivered to a Slack channel

Suspiciously chill for how much it's doing

Building with AIBuilding with AI
Prompted

It builds what you spec

This is what you're used to (you set the spec and the agents do the work). Prompt a task from PostHog AI, PostHog Code, or the Slack app, and agents build it.

Full product context Understands your users, not just the diff it's editing.

Reactive

It acts on your data

This is what the Inbox is for. It watches the data you already have in PostHog and turns anything worth acting on into a researched report, often with a fix attached.

Always on Reads logs and tickets for fun. Sick, honestly.

Proactive

It looks for work

This is where it gets good. Scouts dig through your data and flag problems you haven't thought about (yet). Your product improves everywhere, every day.

Remembers everything Including that. Especially, that.

So, what's left for you?

Work lands while you sleep. You wake up to diffs and reports waiting for review. Then what?

You're (still) the driver

Like a Waymo, a self-driving product doesn't decide where you're going (it just makes getting there easier). You choose where the product goes next.

A hedgehog pointing to the side

Skip to the good part

Somebody's gotta clean up around here. Turns out it doesn't have to be you. Bug fixes and maintenance work land in your inbox. Hit merge and move on with your day.

A hedgehog eating popcorn

Outship everyone

Product capability used to scale with headcount. Now it's handled (without adding any). A small team with self-driving can outship companies 10x the size.

A hedgehog working at a laptop

Set up your InboxBeta

Install PostHog, then run the wizard – it turns on your signal sources, connects GitHub, and sets up your scouts. Your first reports start landing in ~20–30 minutes.

Learn more

New to all this? Read the self-driving docs.

FAQ

Community questions