GenerateSaaS

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/api

Windows (PowerShell)

$env:OPENCOMPANION_BACKEND_URL='https://your-app.example/api'; irm https://github.com/Duzbee/OpenCompanion/releases/latest/download/install.ps1 | iex

The --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

  1. Downloads the artifact for your OS and architecture, plus the release SHA256SUMS.
  2. Verifies the download against that checksum. A missing or mismatched checksum aborts the install - nothing unverified is ever written.
  3. Installs into a versioned layout under ~/.opencompanion (macOS/Linux) or %LOCALAPPDATA%\OpenCompanion (Windows): the payload lands in versions/<version>/ and a stable launcher points current at it. Keeping the previous version in place is what makes rollback instant.
  4. Links the opencompanion launcher onto your PATH.
  5. 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.

On this page