Pretty domains for
local development
Map localhost:3000 to https://myapp.local with trusted
certificates, WebSocket passthrough, and zero config.
$ slim start myapp --port 3000
✓ https://myapp.local → localhost:3000
$ slim start api --port 8080
✓ https://api.local → localhost:8080
$ slim list
DOMAIN PORT STATUS
myapp.local 3000 ● healthy
api.local 8080 ● healthy
MIT Licensed · macOS & Linux · Single Binary
$ curl -sL https://slim.sh/install.sh | sh Install using script above or build from source.
Automatic HTTPS Trusted certificates, green lock, no warnings.
WebSocket & HMR Next.js, Vite, and others work out of the box.
Multiple Domains Each gets its own certificate and proxy.
Access Logging Full, minimal, or off. Tail and filter by domain.
Health Monitoring See which upstreams are reachable at a glance.
Zero Config First run handles CA, trust, and port forwarding.
Commands
Everything is one slim command away.
slim start <name> Map a domain to a port
slim start <name> Map a domain to a port # Map your Next.js app
$ slim start myapp --port 3000
# Add your API server
$ slim start api -p 8080
# Enable access logging
$ slim start dashboard -p 5173 --log-mode full
# Wait for upstream to be ready
$ slim start myapp -p 3000 --wait --timeout 30s slim list See what's running
slim list See what's running # Show all domains with health status
$ slim list
# Output as JSON
$ slim list --json slim logs View access logs
slim logs View access logs # Tail all access logs
$ slim logs
# Follow logs for a specific domain
$ slim logs -f myapp
# Clear all logs
$ slim logs --flush slim stop Stop proxying
slim stop Stop proxying # Stop a specific domain
$ slim stop myapp
# Stop all domains and shutdown daemon
$ slim stop slim uninstall Remove everything
slim uninstall Remove everything # Removes everything: CA, certs, hosts entries,
# port-forward rules, and config
$ slim uninstall How it works
A single Go binary that handles everything under the hood.
1
Generates a root CA and trusts it in macOS Keychain or Linux CA store.
2
Creates per-domain certificates on demand, served via SNI for each
.local domain. 3
Manages
/etc/hosts entries automatically, pointing domains to 127.0.0.1. 4
Forwards ports 80/443 via
pfctl or iptables so the proxy runs unprivileged. 5
Reverse proxies requests with HTTP/2, WebSocket upgrades, and CORS headers.