devproxy

A local address
for every worktree.

Run agents in parallel without losing track of their apps. devproxy starts the app in each worktree on a free port and gives it a predictable HTTPS URL, so the right checkout is always one click away.

One Go binary · local Caddy · macOS and Linux

THE WORKTREE LOOPYOUR MACHINE / NO HOSTED SERVICE

~/fernbook/auth-flow

$devproxy run --project fernbook web -- next dev -p '{port}'
OPEN THIS WORKTREE AT fernbook-auth-flow.localhost
Port allocated automaticallyRoute lives while the command runs

More worktrees.
More moving parts.
One way to find them.

One agent works on authentication. Another builds checkout. Both need to run the app, and both need to know which version the browser is showing.

Ports are temporary. Worktree names mean something. devproxy makes the project and worktree name the address you use every time.

The URL tells you what is running.

Each checkout gets its own process and route through one local Caddy instance.

PROJECT / FERNBOOK
WORKTREELOCAL HTTPS ADDRESSPORT
main fernbook-main.localhost:4321
auth-flow fernbook-auth-flow.localhost:5173
checkout fernbook-checkout.localhost:3888

Illustrative ports. The address follows the project and worktree names even when a port changes.

Built for the way agents actually work.

The CLI owns the workflow. The browser dashboard helps you inspect what is registered. Both talk to the same local daemon.

Follow the setup guide

Start a command, get a route.

devproxy run picks a free port, starts your app, registers its URL, and renews the route while the command runs.

Keep worktrees separate.

Project and checkout names become a stable local origin. Open the right app without looking up a port or changing bookmarks.

Use HTTPS locally.

A dedicated Caddy instance handles certificates and forwards traffic, including WebSockets for hot reload.

Give the next worktree an address.

Start the local daemon once. Then run your app from any checkout.

$devproxy start
Set up devproxy