Build from source
Prerequisites
Section titled “Prerequisites”- 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
Run in development
Section titled “Run in development”cd rebuilduv sync --locked --python python3.12npm cinpm run build:native # macOS onlynpm startDevelopment 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 |
Run the tests
Section titled “Run the tests”cd rebuilduv run pytest -q # backend workflows, connectors, OAuthnpm run test:ui # renderer in headless Chromenpm run test:native # macOS helperSet ATLAS_TEST_BROWSER=chromium to run UI tests with Playwright’s Chromium instead of an installed Chrome.
Build installers
Section titled “Build installers”cd rebuildnpm ciuv sync --group packagingnpm run dist:macnpm run test:packageWrites dist/Olyvr-Workspace-<version>-arm64.dmg on Apple Silicon (x64 on Intel). Build on each architecture you need; the binaries are not universal.
cd rebuildnpm ciuv sync --group packagingnpm run dist:winnpm run test:packageWrites dist\Olyvr-Workspace-<version>-x64.exe.
cd rebuildnpm ciuv sync --group packagingnpm run dist:linuxxvfb-run -a npm run test:packageWrites dist/Olyvr-Workspace-<version>-x86_64.AppImage. It needs a glibc at least as new as the build machine’s.
Account sign-in clients
Section titled “Account sign-in clients”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_JSONOLYVR_MICROSOFT_CLIENT_JSON
Without them, the installer has no built-in client, and users must add their own in Settings.