Skip to content

Build from source

  • Node.js (CI uses version 26) and npm
  • uv with Python 3.12
  • Go, to build the bundled subscription proxy. CI uses Go 1.26. The build script installs CLIProxyAPI v7.2.149 automatically if it isn’t staged yet.
  • macOS only: Xcode Command Line Tools, for the Swift helper and DMG tooling
Terminal window
cd rebuild
uv sync --locked --python python3.12
npm ci
npm run build:native # macOS only
npm start

Development data is kept in rebuild/.state/desktop, separate from an installed copy.

Useful environment variables:

Variable Effect
ATLAS_MODEL_BASE, ATLAS_MODEL_KEY, ATLAS_MODEL Model endpoint without saving it in Settings
ATLAS_USER_DATA Use a different data folder
ATLAS_PORT Pin the local engine to one port instead of 9420–9429
ATLAS_PYTHON Use a specific Python interpreter
Terminal window
cd rebuild
uv run pytest -q # backend workflows, connectors, OAuth
npm run test:ui # renderer in headless Chrome
npm run test:native # macOS helper

Set ATLAS_TEST_BROWSER=chromium to run UI tests with Playwright’s Chromium instead of an installed Chrome.

Terminal window
cd rebuild
npm ci
uv sync --group packaging
npm run dist:mac
npm run test:package

Writes dist/Olyvr-Workspace-<version>-arm64.dmg on Apple Silicon (x64 on Intel). Build on each architecture you need; the binaries are not universal.

To bundle Google and Microsoft sign-in clients in an installer, set these before building. Each holds the client JSON downloaded from Google Cloud or Azure:

  • OLYVR_GOOGLE_CLIENT_JSON
  • OLYVR_MICROSOFT_CLIENT_JSON

Without them, the installer has no built-in client, and users must add their own in Settings.