Running (dev vs start)
How hstack starts server/daemon/UI, browser auto-open, watch mode, and safe restarts.
start vs dev
hstack start/hstack stack start <name>: production-like (prefer built UI; fewer watchers)hstack dev/hstack stack dev <name>: development (watch mode, faster iteration)
If you’re unsure, use hstack tui stack dev <stack> (or hstack stack dev <stack> in non-interactive environments).
TUI mode (recommended for interactive development)
For local interactive work, prefer wrapping your run command in the hstack TUI:
hstack tui stack dev dev
# mobile dev-client + QR:
hstack tui stack dev dev --mobileIn non-interactive terminals / CI (or if the TUI is unavailable), run the underlying command directly:
hstack stack dev devBrowser origin isolation (important)
When you run multiple stacks, browser state (cookies/localStorage) can collide if you always use http://localhost:....
hstack prefers stack-specific origins for non-main stacks when it matters (so stacks don’t fight over browser auth/session state).
Tip: if you see “auth looks wrong” between stacks, check:
- which stack you’re using (
hstack stack info <name>) - which UI URL you opened (use the one printed by hstack)
Browser auto-open (--no-browser)
In interactive runs, hstack dev / hstack start may auto-open the UI in your browser.
- Disable:
--no-browser - Global disable:
HAPPIER_STACK_NO_BROWSER=1
Watch mode (hot-reload-ish)
In interactive TTY runs, hstack dev enables watch mode by default:
happier-clichanges → rebuild + restart the daemon- some long-lived processes can be restarted safely when hstack knows they are stack-owned
Control flags:
- Force enable:
hstack dev --watch - Disable:
hstack dev --no-watch
If hstack prints that a restart is disabled because the PID is unknown, re-run with --restart so hstack can spawn and track the process.
Safe restarts
Both hstack start and hstack dev support --restart:
hstack dev --restart
hstack start --restartFor a named stack:
hstack stack dev exp1 -- --restart
hstack stack start exp1 -- --restartStopping stacks safely
Stop a single stack:
hstack stack stop exp1Stop multiple stacks:
hstack stop --except-stacks=main --yesUseful flags:
--aggressive: stop additional daemon-tracked sessions (still stack-owned)--sweep-owned: final sweep for processes that still carry the stack env in their process env--no-docker: skip Docker-managed infra shutdown
CLI build behavior (happier-cli)
When running stacks, hstack may ensure the CLI is built when needed (so the daemon can start).
Controls:
HAPPIER_STACK_CLI_BUILD_MODE=auto|always|neverHAPPIER_STACK_CLI_BUILD=0(hard-disable)