Skip to content

Installation

Every install path for Revka — Homebrew, install.sh bootstrap, pre-built binaries, source builds, Scoop, Windows setup scripts, and Docker.

Revka ships as a single Rust binary (revka) that runs everywhere from a Raspberry Pi to a production cloud cluster. This page covers every supported way to get that binary onto your machine: the one-line bootstrap, package managers (Homebrew, Scoop), the Windows setup script, pre-built release binaries, source builds, and Docker.

If you just want the fastest path, use the one-click bootstrap. After installing, run the onboarding wizard and then head to the Quickstart.

Pre-built binaries have negligible requirements — they just download and run. Source builds are heavier:

ResourceMinimum for source build
RAM2 GB (plus swap)
Free disk6 GB
Rust toolchain1.87+

The bootstrap installer enforces these with a preflight check before compiling. You can tune the thresholds with REVKA_BOOTSTRAP_MIN_RAM_MB (default 2048) and REVKA_BOOTSTRAP_MIN_DISK_MB (default 6144). On constrained devices such as a Raspberry Pi, prefer --prefer-prebuilt (see below) to skip compilation entirely.

install.sh is a POSIX shell installer that automates the whole flow: it checks RAM/disk, optionally installs Rust and the OS compiler toolchain, builds from source or downloads a verified pre-built binary, runs revka onboard, and can start the daemon. It has both guided (interactive) and fully non-interactive modes, plus a Docker-first mode.

Terminal window
curl -fsSL https://raw.githubusercontent.com/KumihoIO/Revka/main/install.sh | bash

If you run this outside a repository checkout, the script clones a temporary workspace, builds, installs, and cleans up after itself.

By default the script is app-only and assumes an existing Rust toolchain. Its default actions are:

Terminal window
cargo build --release --locked
cargo install --path . --force --locked

The bootstrap can either compile from source (full control over Cargo features) or pull a verified pre-built binary from GitHub Releases (no compiler needed, much faster).

Terminal window
./install.sh --prefer-prebuilt # download binary first, fall back to source
./install.sh --prebuilt-only # binary only — fail if no matching asset
./install.sh --force-source-build # never use a pre-built binary

Seed the provider and API key so onboarding runs without prompts — ideal for CI and scripted bootstraps:

Terminal window
./install.sh --api-key "sk-..." --provider openrouter
# Or via environment variables
REVKA_API_KEY="sk-..." REVKA_PROVIDER="openrouter" ./install.sh
FlagPurpose
--guided / --no-guidedForce interactive mode on or off
--install-system-depsInstall the OS compiler/build toolchain
--install-rustInstall Rust via rustup when missing
--prefer-prebuiltDownload a pre-built binary first, fall back to source
--prebuilt-onlyBinary only; no source fallback
--force-source-buildDisable the pre-built path entirely
--dockerDocker/Podman bootstrap mode
--skip-build(Docker mode) reuse a local image or pull from GHCR
--skip-installBuild only; do not install the binary
--api-key <key>Skip the API-key prompt
--provider <id>Provider name (default: openrouter)
--model <id>Model ID override
--cargo-features <list>Extra Cargo feature flags for the source build
--skip-onboardSkip provider/API-key configuration
--install-sidecars / --skip-sidecarsControl the Python MCP sidecar install
--with-session-managerAlso install the Node.js Session Manager sidecar

Useful environment variables: REVKA_API_KEY, REVKA_PROVIDER, REVKA_MODEL, REVKA_CARGO_FEATURES, REVKA_CONTAINER_CLI, REVKA_DOCKER_DATA_DIR, REVKA_DOCKER_IMAGE, REVKA_BOOTSTRAP_MIN_RAM_MB, REVKA_BOOTSTRAP_MIN_DISK_MB, and REVKA_SKIP_VERIFY.

Run ./install.sh --help to see the complete list.

Pre-built binaries & signature verification

Section titled “Pre-built binaries & signature verification”

The bootstrap (and revka update) detect your platform and download the matching release asset from GitHub Releases.

Target triplePlatform
x86_64-unknown-linux-gnuLinux x86-64
aarch64-unknown-linux-gnuLinux ARM64 (Raspberry Pi 4/5, 64-bit)
armv7-unknown-linux-gnueabihfLinux ARMv7 (Raspberry Pi 2/3)
arm-unknown-linux-gnueabihfLinux ARMv6
x86_64-apple-darwinmacOS Intel
aarch64-apple-darwinmacOS Apple Silicon
aarch64-linux-androidAndroid ARM64 (Termux)

Every downloaded archive is verified against the SHA256SUMS file published in the same release. If cosign is installed, the installer also verifies the keyless signature on SHA256SUMS (SHA256SUMS.sig + SHA256SUMS.pem) against the GitHub OIDC identity:

  • Issuer: https://token.actions.githubusercontent.com
  • Identity: the KumihoIO/Revka release workflow

If cosign is absent, the SHA256 checksum is still enforced and signature verification is skipped with a notice. To bypass all verification (not recommended), set REVKA_SKIP_VERIFY=1.

The simplest path on macOS and Linux:

Terminal window
brew install revka
brew upgrade revka
brew uninstall revka

Homebrew places the binary at /opt/homebrew/bin/revka (Apple Silicon) or /usr/local/bin/revka (Intel) and uses a var/revka/ directory for runtime data, so you can run Revka as a launchd service:

Terminal window
brew services start revka

From the repository root, the interactive script auto-detects your environment and walks you through installation:

Terminal window
setup.bat

Skip the menu with a mode flag:

FlagBuild
--prebuiltDownload the pre-compiled binary (fastest)
--minimalDefault features only
--standardMatrix + Lark/Feishu + Postgres
--fullAll features

setup.bat checks RAM (warning below 2 GB), checks for Rust, and invokes cargo install. It targets x86_64-pc-windows-msvc.

RequirementRequired?Notes
GitYesgit-scm.com/download/win
Rust 1.87+YesAuto-installed by setup.bat if missing
Visual Studio Build ToolsYes (source builds)C++ workload — required for the MSVC linker
Node.jsNoOnly needed to build the web dashboard from source

Source builds on Windows require the MSVC linker, which ships with Visual Studio Build Tools. If you don’t already have Visual Studio with the C++ workload:

  1. Download from visualstudio.microsoft.com/visual-cpp-build-tools.
  2. Select the “Desktop development with C++” workload.
  3. Install, then restart your terminal.

If your build fails with linker errors, this missing workload is almost always the cause. If cargo build runs out of memory, use setup.bat --prebuilt to download a binary instead.

  1. Restart your terminal so PATH changes take effect.
  2. Initialize Revka: revka onboard
  3. Configure your API key in %USERPROFILE%\.revka\config.toml.
  4. Start the gateway + dashboard at http://127.0.0.1:42617: revka gateway (or run the full runtime with revka daemon).

When you need compile-time features, build directly with Cargo. The build is reproducible with --locked, and --features selects integrations:

Terminal window
cargo build --release --locked --features hardware,channel-matrix
cargo install --path . --force --locked

On constrained machines, cap parallelism to avoid out-of-memory failures:

Terminal window
CARGO_BUILD_JOBS=1 cargo build --release --locked

See Cargo feature flags & ADRs for the full feature list, and Network deployment, Raspberry Pi & proxy for ARM/embedded builds (--features hardware,peripheral-rpi).

Two published multi-arch images live on GitHub Container Registry:

  • ghcr.io/kumihoio/revka:latestdistroless (no shell), minimal attack surface. Entrypoint: revka daemon.
  • ghcr.io/kumihoio/revka:debianDebian bookworm-slim with bash, git, and curl. Use this when the agent needs shell-based tools.
Terminal window
docker run -d \
-e API_KEY=sk-... \
-e PROVIDER=openrouter \
-v revka-data:/revka-data \
-p 42617:42617 \
ghcr.io/kumihoio/revka:latest

Common environment variables: API_KEY (or REVKA_API_KEY), PROVIDER (default openrouter), REVKA_MODEL, REVKA_GATEWAY_PORT (default 42617), and REVKA_ALLOW_PUBLIC_BIND=true (required for container networking). The container runs as UID 65534 (nobody) with HOME=/revka-data.

The canonical liveness check (also used by the image HEALTHCHECK) is:

Terminal window
docker exec revka revka status --format=exit-code

For the bootstrap-driven Docker flow:

Terminal window
./install.sh --docker
REVKA_CONTAINER_CLI=podman ./install.sh --docker # Podman

This builds a local image and runs onboarding in a container, persisting data to ./.revka-docker (override with REVKA_DOCKER_DATA_DIR). Podman runs are issued with --userns keep-id and :Z volume labels automatically.

For Compose, one-click PaaS templates (Coolify, Dokploy, EasyPanel), and full container reference, see Docker, Compose & one-click PaaS.

After any install path, confirm the binary works and the environment is healthy:

Terminal window
revka --version
revka doctor # structured config / workspace / environment diagnostics
revka self-test # full diagnostic suite
revka self-test --quick # offline checks only

revka doctor validates your config file, provider, API key, workspace, sidecars, and CLI tools — run it first whenever something looks off. See revka doctor, status & self-test.