Getting started
Install home, initialize the config root, configure modules, and run the first commands.
Requirements
Prebuilt binaries are published for:
- Linux x86_64 (
bun-linux-x64-baseline, with no AVX requirement) - macOS arm64
The installer writes to ~/.local/bin/home when that directory is on your
PATH. It can offer /usr/local/bin/home on an interactive install when
needed.
Install
curl -fsSL https://home.uptonm.dev/install.sh | bashThis redirects to the canonical installer; you can also run the raw URL directly:
curl -fsSL https://raw.githubusercontent.com/uptonm/home/main/scripts/install.sh | bashConfirm the binary is available:
home --version
home --helpInitialize
Create ~/.config/home/ and choose a secrets backend:
home initThen configure every module interactively:
home configureYou can configure only the services you use:
home unifi configure
home protect configure
home assistant configure
home sonos configure
home beszel configureSonos can discover players over SSDP multicast without configuration. Configure its subnet only when the CLI needs cross-VLAN discovery.
Check readiness
home status
home doctorstatus gives a concise readiness view. doctor adds configuration,
dependency, version, and update diagnostics.
Exit codes are stable:
| Code | Meaning |
|---|---|
0 | Success |
1 | User or input error |
2 | System or service error |
3 | Module not configured |
Use structured output
Every command accepts --json:
home unifi devices list --json
home protect events recent --type motion --limit 5 --json
home assistant logbook list --since 24h --json
home sonos players list --jsonThat output is intended for jq, scripts, and local agents. The human-readable
view and the machine contract come from the same command implementation.
Install agent skills
home skill installThis writes one focused skill per configured module. See Agent skills for the contract and safety model.
Update
home upgrade --check
home upgrade --yesThe CLI checks for releases at most once per day in a detached background
refresh. It stays silent for --json, pipes, and CI.