Follow the request.

It’s all
connected.

One stable endpoint for your GitHub webhooks and OAuth callbacks—even when your development environments keep changing.

Open source. Self-host today. Mildly conspiratorial.

Red string connects GitHub push events, pull requests, and OAuth callbacks through one Pepe endpoint to localhost, preview, and production. A sticky note reads: There is a host for this.

01 / The usual suspects

Your environments move.
Your callbacks shouldn’t.

For local development, shared repos,
and sandboxes with a short life expectancy.

THE VANISHING URL

New dev URL.
Same front door.

Rebuild a preview or move to a different dev machine. Register its current address with Pepe; GitHub and Google keep calling the same public endpoint.

The URL changed. The trail didn’t.

Connect your environment ↗
TOO MANY SUSPECTS

One team.
One GitHub webhook.

Everyone has a branch and their own environment. Pepe remembers which workspace owns each PR, so its comments and reviews reach the right developer.

No “whose laptop got that?”

Follow the PR ↗
THE DISPOSABLE HIDEOUT

Agents spin up sandboxes.
Callbacks follow.

Give each sandbox its own Pepe session and webhook queue. Your agents can work in parallel, with each PR’s events routed to its registered workspace.

Short-lived hosts. Long-term memory.

Wire it into your agent ↗
THE LAPTOP WENT QUIET

Close your laptop.
Keep the evidence.

If a webhook receiver goes offline, Pepe holds its events. Reconnect to pick them up, or replay a stored delivery when you need another look.

The webhook can wait.

See queues and replay ↗

02 / The theory

One public URL.
Every environment.

GitHub needs somewhere to call.
You have more than one somewhere.

  1. 01

    Deploy Pepe.

    Give your webhooks and OAuth callbacks one stable place to land.

    The meeting point
  2. 02

    Connect GitHub.

    Point GitHub at Pepe. One front door, however many hosts sit behind it.

    The incoming evidence
  3. 03

    Follow the string.

    Pepe routes the request to the host that should handle it.

    It was connected all along

03 / The case file

There is a
host for this.

A local environment. A preview.
The real thing. Same front door.

An illustrative routing diagram.
No actual requests are sent.

Request inspectorDEMO
IncomingGitHub → Pepe
Pick a destination
Destination foundlocalhost:3000Your local development host.

See? It’s all connected.

Case status: open

Less callback chaos.
More conspiracy board.

The open-source router is available today. Self-host it now, or join the private beta if you’d rather we host it.