A control panel
for localhost

Trusted HTTPS on your machine, public URLs for what you're building, and every request your apps make — as switches in one dashboard. No config. No cloud. Nothing to remember.

$ brew install piperace/piperace/piperace && piperace
$ npm i -g @piperace/cli

The dashboard opens when it finishes — no account needed to start. Already installed? Run piperace.

Your system:
piperace — Control Center
App Local HTTPS Public URL
front-end localhost:3000 https://front-end.local front-end.piperace.fun
api localhost:8000 https://api.local Not shared
blog localhost:8080 https://blog.local Not shared
3 sites on trusted HTTPS · 1 shared publicly

One window, the whole workflow

The tabs across the top of the dashboard, and what each one is for.

🚀 Apps
Serve it, share it

Every local port in one list. One switch puts an app on https://myapp.local with a certificate your machine already trusts — offline, no warnings. The other gives it a public HTTPS URL that survives restarts, works behind NAT, and has a QR code for opening on a phone.

🔍 Traffic
See what actually happened

Every request in and out, with the app that made it named — not one undifferentiated stream. Mock an endpoint, inject latency or an error, hold a request mid-flight and edit it, replay the one that failed. Without touching your code.

🤖 AI agent
Hand it to an agent

Piperace speaks MCP, so Claude Code and others read the real request and response rather than your description of it — and can mock, break and replay to run an experiment instead of guessing. Secrets are redacted first. Nothing leaves your machine.

Download and open the dashboard — no account needed

Or view all binaries

The details done right

The parts you only notice when they are missing.

Addresses that stay put

Your subdomain is the same after every restart, and so is the .local name. Register a webhook or an OAuth callback once and stop editing it.

HTTP, TCP and TLS

Web apps, databases, raw sockets. Wildcard TLS means every subdomain is HTTPS with nothing to configure, and visitors land on your app — no interstitial to click through.

Commands an agent has to ask for

Let an agent run docker logs without handing it a shell. Allowed commands run; anything else is not refused — the agent asks, the request appears on your screen with its reason, and one click lets it through.

Inspect without moving anything

Point piperace at the port your clients already use and it takes that port over. The OAuth callback still resolves, the mobile build with the host compiled in still works — and now you can read what they send.

Yours, or a colleague's

Share the dashboard itself, or a shell over SSH, with a link that carries its own token. Install it as an app and it gets a Dock icon and its own window; on macOS it also lives in the menu bar.

No speed limit

Nothing throttles your tunnel — it runs as fast as the link allows. Transfer is counted, not squeezed: 50 GB a month on Pro, and you can see where you are in your dashboard.

On the roadmap

What is being built next. Join the beta and we will say when it lands.

In development
UDP tunnels

Game servers, VoIP and IoT protocols need UDP. We're actively building first-class UDP tunnel support.

Coming soon
Custom domains

Today every public URL is on piperace.fun. Bringing your own domain is next.