Arbos

Install

The Mac app is the short path. The rest is optional.

Mac

  1. Download Arbos (the newest dev build). Apple silicon, macOS 13 or newer. A zip unpacks to Arbos.app.
  2. Open the download and drag Arbos into Applications.
  3. Open Arbos. Builds are Developer ID signed and notarized, so macOS opens them without a warning.
  4. Microphone. The first time you dictate or start a call, macOS asks. Allow it. Settings › Permissions shows the state and can test the microphone.
  5. Model key. Settings › Model: paste an OpenRouter key and pick a model. OpenAI keys and any OpenAI-compatible endpoint work too.
  6. ⌘T, choose a folder. That folder is now a project with its own agent. Type, or hold fn to speak.

The same settings live in a file:

# ~/.config/arbos/config.toml
provider = "openrouter"             # or "openai", or "custom" with api_base
api_key_env = "OPENROUTER_API_KEY"  # or api_key = "sk-or-..."
model = "anthropic/claude-opus-5"

From source

Rust nightly (rust-toolchain.toml selects it) and, on macOS, the Xcode command line tools.

git clone https://github.com/unarbos/arbos.git && cd arbos
cargo install --path crates/arbos-kernel   # the kernel: runs the agents
cd desktop && cargo install --path .       # the app; finds arbos-kernel in ~/.cargo/bin
arbos-desktop

ARBOS_KERNEL_BIN=/path/to/arbos-kernel points the app at a kernel elsewhere. The kernel runs alone too: arbos-kernel serve in a project folder, arbos-kernel run "task" for one headless turn.

iPhone

One long full-duplex call with your project, plus the main chat one swipe up. Not on the App Store yet; build it with Xcode onto your own phone.

  1. Xcode 16 or newer, iOS 17 or newer, a free Apple developer team.
  2. Open ios/Arbos.xcodeproj and pick your team under Signing & Capabilities.
  3. Endpoints and tokens go in ios/Arbos/Secrets.plist (ios/scripts/gen-secrets.sh writes it from 1Password).
  4. Select your phone and press Run.

Voice server

Speech runs on a server you control. One WebSocket per call, two engines behind it: duplex (one speech-to-speech model, a GPU with about 24 GB, no turn-taking) or pipeline (VAD → Whisper → the model → Kokoro; any GPU or a CPU).

cd voice-server
VOICE_HOME=$PWD VOICE_TOKEN=<a long random string> deploy/run.sh

Then tell the app where it is, in the same config.toml:

voice_url = "wss://voice.example.com/ws"
voice_token_env = "VOICE_TOKEN"        # or voice_token = "..."

Lend a machine to the mesh

Any machine running the worker can be used by your other Arbos instances. It connects outbound; no ports to open.

ARBOS_HUB=wss://hub-api.arbos.life ARBOS_HUB_TOKEN=<token> \
  ~/arbos-hub/bin/arbos-kernel worker --dir ~/arbos-hub/projects --machine <name>

Add --cap xcode --cap ios on a Mac with Xcode. deploy/hub/worker.sh wraps this in a restart loop; deploy/hub/hub-run.sh runs your own hub.

The README has the long version. Stuck? Open an issue.