Simple command to get clean HTTPS local domains for your projects
myapp.test → localhost:3000
myapp.test/api → localhost:8080
dashboard.test → localhost:5173
app.loc → localhost:4000
curl -sL https://slim.sh/install.sh | shor build from source
git clone https://github.com/kamranahmedse/slim.git
cd slim
make build
make installRequires Go 1.25 or later.
Create a custom HTTPs Domain for local development using slim start
slim start myapp --port 3000
# https://myapp.test → localhost:3000To share your local project on a public URL
slim share --port 3000
# https://cheeky-panda.slim.showStart or stop a local service using
slim startorslim stop
slim start myapp --port 3000
slim start api --port 8080
slim stop myapp # stop one domain
slim stop # stop all domainsIf you don't specify the TLD, you get a
.testdomain. Specify a full domain to use any TLD:
slim start app.loc --port 3000 # https://app.loc → localhost:3000
slim start my.demo --port 4000 # https://my.demo → localhost:4000Note: Avoid
.local— it's reserved for mDNS and can cause slow DNS resolution on macOS/Linux.
Route different URL paths to different upstream ports on a single domain:
slim start myapp --port 3000 --route /api=8080 --route /ws=9000Define all services for a project in a
.slim.yamlfile at the project root:
services:
- domain: myapp
port: 3000
routes:
- path: /api
port: 8080
- domain: dashboard
port: 5173
- domain: app.loc
port: 4000
log_mode: minimal # full | minimal | off
cors: true # enable CORS headers on proxied responsesslim up # start all services
slim up --config /path/to/.slim.yaml # specify a config path
slim down # stop all project servicesExpose a local server to the internet with a public
slim.showURL. Requiresslim loginfirst.
slim share --port 3000 # random subdomain
slim share --port 3000 --subdomain demo # https://demo.slim.show
slim share --port 3000 --password secret # password protected
slim share --port 3000 --ttl 30m # auto-expires after 30 minutes
slim share --port 3000 --domain myapp.example.com # custom domainslim list # inspect running domains
slim list --json
slim logs # view access logs
slim logs --follow myapp # tail logs for a domain
slim logs --flush # clear log file
slim doctor # run diagnostic checks$ slim doctor
✓ CA certificate valid, expires 2035-02-28
✓ CA trust trusted by OS
✓ Port forwarding active (80→10080, 443→10443)
✓ Hosts: myapp.test present in /etc/hosts
! Daemon not running
✓ Cert: myapp.test valid, expires 2027-06-03
Run slim update to update to latest version.
Remove everything: CA, certs, hosts entries, port-forward rules, config
slim uninstall