# Installing Maestro The fastest way to get `maestrod` (per-host daemon) and `maestro` (CLI) onto a host is the install wizard: ```sh cargo install --git https://git.naps.pt/naps62/maestro maestro-installer maestro-install ``` The wizard: 1. Runs `cargo install` for `maestro-daemon` and `maestro-cli` (pinned to the committed `Cargo.lock` via `--locked`). 2. Optionally runs `maestrod configure` to drop a `~/.config/maestrod/config.toml`. 3. On systemd hosts, optionally writes a user unit at `~/.config/systemd/user/maestrod.service`, reloads systemd, and offers to enable + start it. Both binaries land in `~/.cargo/bin` — make sure that's on your `$PATH`. ## Flags | Flag | Purpose | |---|---| | `--git ` | Install from a different git repo (default: this one). | | `--branch ` | Pin a branch with `--git`. | | `--path ` | Install from a local workspace checkout (`--path` + `-p `). | | `--no-locked` | Drop `--locked` from `cargo install` (resolves a fresh dep tree). | | `--exec-start ` | Override the systemd unit's `ExecStart` (default `~/.cargo/bin/maestrod`). | | `--no-systemd` | Skip the systemd step even if detected. | | `--no-configure` | Skip the `maestrod configure` step. | | `-y`, `--yes` | Non-interactive: install binaries + drop systemd unit + reload + enable, but **don't** auto-run `configure` or auto-start the unit (those need real config). | ## What the systemd unit looks like The wizard writes a *user* unit (`systemctl --user`), since `maestrod` runs per-user and uses tmux sockets under `$XDG_RUNTIME_DIR`. Body: ```ini [Unit] Description=Maestro per-host daemon (maestrod) Documentation=https://git.naps.pt/naps62/maestro After=network-online.target [Service] Type=simple ExecStart=%h/.cargo/bin/maestrod Restart=on-failure RestartSec=5 [Install] WantedBy=default.target ``` Check status / logs: ```sh systemctl --user status maestrod journalctl --user -u maestrod -f ``` ## Manual install (no wizard) ```sh cargo install --git https://git.naps.pt/naps62/maestro --locked maestro-daemon cargo install --git https://git.naps.pt/naps62/maestro --locked maestro-cli maestrod configure maestrod # foreground; or wire your own service manager ``` ## Non-Linux hosts The wizard works on macOS for the `cargo install` + `maestrod configure` parts. The systemd step is automatically skipped (probe of `/run/systemd/system`). launchd integration is not yet supported — start `maestrod` from your shell or your own service manager.