# SOUND headless daemon 1.3.0

Built 2026-07-07T12:19:08.057Z for darwin-arm64.

## Install

```bash
./scripts/install-daemon.sh
```

Installs to /Applications/SOUND-daemon/, writes a launchd LaunchAgent at
~/Library/LaunchAgents/com.streamline.sound.plist, and starts the daemon.

If an existing install or Electron-launchd-agent is present, it's backed up
to a timestamped `.bak-<epoch>` path so you can roll back.

## Update (in place)

```bash
./scripts/update-daemon.sh
```

Backs up the current install, swaps in the new one, restarts the daemon,
and auto-rolls-back if the new daemon fails to bind port 51823 within 60s.

## Uninstall

```bash
./scripts/uninstall-daemon.sh
```

Unloads the launchd agent, removes the install dir, and OFFERS to restore
a previously-backed-up Electron plist if one is found.

User data at `~/Library/Application Support/SOUND/` and `~/.sound-app/`
is NEVER touched by these scripts.

## Requirements

- Node.js (system install via `brew install node` or equivalent)
- macOS (Apple Silicon or Intel — match the tarball arch)

## Env overrides for the scripts

- `SOUND_INSTALL_DIR` — install location (default: /Applications/SOUND-daemon)
- `SOUND_PLIST_PATH` — launchd plist path (default: ~/Library/LaunchAgents/com.streamline.sound.plist)
- `NODE` — node binary path (default: /opt/homebrew/bin/node)

These let you test install/update/uninstall against an isolated location
without affecting a production install.
