http://localhost:3000, http://localhost:5173, and http://localhost:8000 into your browser for every project, the Toolkit reverse proxy lets you access http://dashboard.localhost, http://api.localhost, and http://docs.localhost. No sudo, no browser extensions, no /etc/hosts edits required. This works natively because .localhost resolves to 127.0.0.1 in every modern browser and OS per RFC 6761.
The proxy daemon must be running for
*.localhost subdomains to resolve. Start it with toolkit ui (which starts the daemon and opens the web dashboard) or run toolkit daemon directly in the background.How It Works
When you runtoolkit run or toolkit proxy add, Toolkit registers a route in its lightweight local proxy server. The proxy server listens on port 80 (or a fallback port) and forwards any request for <subdomain>.localhost to the correct internal port on 127.0.0.1. The mapping is stored persistently so routes survive daemon restarts.
WebSocket & HMR support. The proxy fully supports WebSocket upgrades and Hot Module Replacement (HMR) — works seamlessly with Next.js, Vite, React, and Socket.io without any extra configuration. Your live-reload and fast-refresh workflows continue to function exactly as expected.
toolkit run <appName> <cmd...>
The primary workflow. Launch a dev server and automatically receive a clean *.localhost URL. Toolkit starts your command, waits for it to bind a port, registers the proxy route, and prints the public URL — all in one step.
toolkit proxy add <subdomain> <targetPort>
Manually register a subdomain for an already-running server. Use this when your dev server is already started and you just want to wire it up to a clean URL.
toolkit proxy remove <subdomain>
Unregister a proxy route. Traffic to <subdomain>.localhost will stop being forwarded — the underlying server process is not affected.
toolkit proxy list
Display all active proxy routes registered with the daemon: subdomain, target URL, originating app, PID (if launched via toolkit run), request count, and last-active timestamp.
--json Output
toolkit proxy list --json emits an array of active route objects:
toolkit proxy add --json emits the newly created ProxyRoute object:
toolkit proxy remove --json emits a confirmation object: