Getting Started
hostly is an interactive terminal app that maps custom domains like app.local to your local dev servers — with trusted HTTPS, a reverse proxy, and a boot daemon. No GUI, no config files to hand-edit.
Requirements
- Node.js 18+ — hostly is a Node CLI
- Caddy (opens in a new tab) — used as the reverse proxy and local Certificate Authority. It must be installed and available on your
PATH. - macOS or Linux — the boot daemon supports launchd (macOS) and systemd (Linux). Domain and proxy management also work elsewhere, but daemon install does not.
Check that Caddy is reachable:
caddy versionInstall
npm install -g hostlyLaunch
hostlyhostly asks for sudo up front (it caches your credentials with sudo -v) because editing /etc/hosts requires elevation. Then it opens the main menu:
❯ Domains
Proxy & Caddy
Certificate
Daemon
QuitNavigate with the arrow keys, select with Enter, and quit with Ctrl+C.
Add Your First Domain
- Open Domains from the main menu
- Select + Add domain
- Enter the values when prompted:
- Host — e.g.
app.local - Port — the port your dev server listens on, e.g.
3000 - Scheme —
https(redirects http → https),http(no TLS), orboth
- Host — e.g.
- hostly writes the domain to
/etc/hosts(viasudoif needed) and pushes a route to Caddy.
Trust HTTPS
For https domains to load without browser warnings, install Caddy's local CA into your system trust store once:
- Open Certificate from the main menu
- Select Trust local CA (install root certificate)
After this, https://app.local loads with a valid certificate. You may need to restart your browser the first time.
Survive Restarts
Caddy does not persist its admin-API config across restarts, so routes are lost when Caddy stops. Install the boot daemon to re-apply them automatically:
- Open Daemon from the main menu
- Select Install boot daemon
This installs a launchd agent (macOS) or systemd user unit (Linux) that runs hostly sync at boot. /etc/hosts already persists, so the daemon only restores Caddy routes.
What's Next
- See everything hostly can do in Features
- Full command reference in Commands
- Hitting a wall? Check Troubleshooting
- Want to contribute? See Contributing