DevProxy is a cross-platform CLI for stable HTTPS .local domains that proxy to local development services on Windows, macOS, and Linux. On Windows, it also works well with apps running in WSL, Docker, or native Windows processes as long as the service is reachable through loopback.
Full documentation is hosted at https://maxiviper117.github.io/dev-proxy/.
-
Install Caddy and trust its CA:
scoop install caddy caddy trust
On macOS,
brew install caddyis the common install path. On Linux, use the official packages for your distribution. See the docs for the full Windows, macOS, and Linux setup guide. -
Install DevProxy:
npm install -g @maxiviper117/devproxy
-
Run your local project on a port (for example,
8000).
Important
Elevated permissions required: This next step (4) modifies your system hosts file, so you must run it in an administrator / elevated terminal session (Windows: run Terminal/PowerShell as Administrator; macOS/Linux: use sudo).
-
Register the service:
Option A — Quick registration (can be run from anywhere):
devproxy add api.myapp --port 8000
Option B — Project-scoped registration (run inside your project directory):
devproxy init --name api.myapp --port 8000
initdoes two things:- Registers the service globally (same as
add) — adds the domain to DevProxy's registry, updates your hosts file, and reloads Caddy. - Creates
.devproxy/config.jsonin your current directory, saving the servicenameandport.
Because the config lives in your project, you can re-run
devproxy initlater without remembering the original flags. Commit.devproxy/config.jsonto version control so your team can run the same command to set up the project locally. - Registers the service globally (same as
-
Open your domain:
https://api.myapp.local
Tip
If you registered with init, you can also run devproxy open from your project root (where .devproxy/config.json exists) and it will open the domain directly in your browser.
-
Optionally open the local dashboard:
devproxy ui
The dashboard opens in your default browser on
127.0.0.1:3579by default. Usedevproxy ui --port <port>to choose another preferred port, ordevproxy ui --no-opento start the dashboard without launching a browser.
| Command | Description |
|---|---|
devproxy init --name <name> --port <port> |
Register a service and create project config in one step |
devproxy add <name> --port <port> |
Register a new service |
devproxy update <name> [--name <name>] [--port <port>] |
Rename a service or change its port |
devproxy open [name] |
Open a service in your browser |
devproxy ui [--port <port>] [--no-open] |
Open the local browser dashboard |
devproxy list |
List all registered services |
devproxy status |
Report Caddy state and upstream health |
devproxy remove <name> |
Remove a registered service |
devproxy doctor |
Check setup and diagnostics |
devproxy sync-hosts |
Align DevProxy hosts entries with the registry |
devproxy certs |
Print Caddy root CA certificate information |
devproxy trust |
Trust the Caddy local root CA certificate |
devproxy start |
Start or reload Caddy |
devproxy stop |
Stop Caddy |
- Windows, macOS, or Linux
- Node.js 22 or newer
- Caddy installed and available on
PATH - Local services reachable from the host running DevProxy
