Local domains,
from your terminal.

hostly is an interactive CLI 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.

$npm install -g hostly
Open source, MIT licensed. Requires Caddy and Node 18+.

See It In Action

Run hostly and manage everything from one interactive menu

hostly — zsh
$ hostly
Local Domain Manager
❯ Domains
Proxy & Caddy
Certificate
Daemon
Quit
↑↓ navigate selectctrl+c quit
Main menu

Everything you need

Interactive Terminal UI

Add, edit, and remove domains from a keyboard-driven menu — no flags to memorize

Trusted HTTPS

Caddy's local CA signs real certificates your browser accepts — no warnings

Reverse Proxy

Route any custom domain to a local port via the Caddy admin API

Boot Daemon

hostly sync restores your routes after a restart, run by launchd or systemd

Built for the
command line

Everything hostly does, it does from your shell.

Reverse Proxy

Point app.local to 127.0.0.1:3000 and api.local to 127.0.0.1:8080. Routes are pushed to Caddy over its admin API.

HTTP, HTTPS, or both

Pick a scheme per domain. https auto-redirects from http, http stays plain, or serve both with no redirect.

Manages /etc/hosts

hostly writes a fenced block to your hosts file and edits it via sudo only when needed. Your own entries are left untouched.

Boot Daemon

Install a launchd agent (macOS) or systemd user unit (Linux) that runs hostly sync on boot to restore Caddy routes.

Drift Detection

Each domain shows ✓ synced or ⚠ drift so you can see at a glance whether the hosts file and Caddy match your registry.

Zero-Config Registry

Domains are stored as plain JSON in your OS config directory. Trust the local CA once and HTTPS works across every browser.

Up and running
in three steps

One command to install, one to run.

1

Install hostly & Caddy

hostly is a Node CLI and uses Caddy as its reverse proxy. Install both and make sure caddy is on your PATH.

$ npm install -g hostly
$ brew install caddy # or your package manager
2

Run hostly & add a domain

Launch the interactive menu, open Domains → Add domain, and enter a host, target port, and scheme. Trust the local CA once from the Certificate screen.

Host: app.local
Port: 3000
Scheme: https
3

Open in your browser

That's it. Visit https://app.local in any browser — valid certificate, no warnings, proxied to your local dev server. Install the boot daemon so routes survive a restart.

Open source, forever free.

hostly is MIT licensed and built in the open. Found a bug or want a feature? Issues and pull requests are welcome on GitHub.