Install
One command installs OpenCompanion on macOS, Linux, or Windows - it downloads the daemon for your OS, verifies it against the release checksums, and runs setup to pair and connect your CLIs.
One command downloads the self-contained daemon (a vendored runtime plus the bundled daemon) for your OS and architecture, verifies it against the release SHA256SUMS, links the opencompanion launcher onto your PATH, and runs opencompanion setup. Pass your app's API base with --url so setup pairs with it right away.
macOS and Linux
curl -fsSL https://github.com/Duzbee/OpenCompanion/releases/latest/download/install.sh | sh -s -- --url https://your-app.example/apiWindows (PowerShell)
$env:OPENCOMPANION_BACKEND_URL='https://your-app.example/api'; irm https://github.com/Duzbee/OpenCompanion/releases/latest/download/install.ps1 | iexThe --url is your app's API base (its origin plus API path, for example .../api), not the marketing site. Leave it off to install the daemon without pairing, then run opencompanion pair later.
What the installer does
- Downloads the artifact for your OS and architecture, plus the release
SHA256SUMS. - Verifies the download against that checksum. A missing or mismatched checksum aborts the install - nothing unverified is ever written.
- Installs into a versioned layout under
~/.opencompanion(macOS/Linux) or%LOCALAPPDATA%\OpenCompanion(Windows): the payload lands inversions/<version>/and a stable launcher pointscurrentat it. Keeping the previous version in place is what makes rollback instant. - Links the
opencompanionlauncher onto your PATH. - Runs
opencompanion setup- pair with the app, connect your coding CLIs, and install the always-on service, in one step.
Re-run the same command any time to upgrade in place. Nothing about your app is baked into the daemon: point OPENCOMPANION_RELEASE_BASE at a mirror to fetch the daemon from elsewhere.
After it runs
setup prints a device-approval URL and a short code. Open it in a browser where you are signed in to the app and approve the pairing. Then:
- Connect a coding CLI with
opencompanion connect(detect, install, and log in Claude Code, Codex, or opencode; Hermes is system-installed and connected from your PATH). - The daemon runs as an always-on OS service (a launchd agent, a systemd user service, or a Windows logon task) and picks up dispatched work 24/7.
Next: approve and pair, then set your policy.
Headless and VPS installs
On a server with no terminal to prompt at, setup degrades gracefully: it pairs, reports the CLIs it detected, and installs the service without prompting. On Linux, enable lingering so the user service keeps running after you log out:
loginctl enable-linger "$USER"Verifying the build
Releases are built in the open and published with a SHA256SUMS manifest and provenance attestations you can verify before you install. Official macOS releases are code-signed with a Developer ID Application certificate when the signing secrets are configured, so forks and unsigned local builds may not be; the Windows build is not code-signed yet, so SmartScreen may warn on first run - the checksum and provenance prove the download either way. See the OpenCompanion repo for provenance and build-from-source instructions.
PATH note
If the launcher directory is not already on your PATH, the installer prints the directory to add (~/.local/bin on macOS/Linux; the install dir on Windows, which needs a new terminal). Add it so you can run opencompanion directly.
OpenCompanion
Run your own subscription coding CLIs for an app you pair with, from a machine you control. Install the open-source daemon, approve it once, and the app dispatches work your machine executes under a local policy and audit log.
Pairing
Pairing links OpenCompanion on your machine to one app using device authorization - you approve it in your browser, and the daemon stores the session locally. Pair as many apps as you like.