Operating systems
| OS |
Support tier |
Notes |
| Linux (glibc, kernel 5.10+) |
Tier 1 |
CI runs ubuntu-latest on every push. Reference deployment target. |
| Linux (musl / Alpine) |
Tier 1 |
Container image is Alpine-based. |
| macOS 13+ (Ventura or newer) |
Tier 1 |
CI runs macos-latest on every push. Bubble Tea TUI verified. |
| Windows 10 / 11 |
Tier 2 |
Binaries are built and shipped, but CI does not run the full race matrix on Windows. Chat transports work; the Podman + Quadlet reference deployment assumes Linux. |
| FreeBSD / OpenBSD |
Best-effort |
Pure-Go build, but no CI job. Community reports welcome. |
CPU architectures
| Architecture |
Support tier |
Release naming |
amd64 (x86-64) |
Tier 1 |
_linux_amd64, _darwin_amd64, _windows_amd64 |
arm64 (aarch64) |
Tier 1 |
_linux_arm64, _darwin_arm64 (Apple Silicon) |
armv7 (32-bit ARM) |
Best-effort |
Buildable via GOARCH=arm GOARM=7; not released. |
riscv64 |
Best-effort |
Buildable via GOARCH=riscv64; not released. |
CGO_ENABLED=0 on every target — modernc.org/sqlite is pure Go, so cross-compilation is friction-free.
Container runtimes
| Runtime |
Support tier |
Notes |
| Podman 4.4+ (rootless) |
Tier 1 |
Reference deployment. Uses systemd Quadlet units for declarative hardening. |
| Docker 24+ |
Tier 1 |
The Dockerfile works unchanged. Runtime hardening is your responsibility (no Quadlet equivalent). |
containerd + nerdctl |
Tier 2 |
Same image; nerdctl consumes the same OCI artefact. |
| Kubernetes 1.27+ |
Tier 2 |
See Guides: Kubernetes deployment. |
Provider authentication methods
| Provider |
Auth mechanism |
Config keys |
claudecli (default) |
Inherits Claude Code's OAuth tokens from ~/.claude/. No key in rousseau's config. |
claudecli.binary, claudecli.permission_mode |
anthropic |
Direct API key. |
ANTHROPIC_API_KEY env var, or anthropic.api_key |
openai |
OpenAI API key or third-party token. |
OPENAI_API_KEY, or openai.api_key |
openrouter |
OpenRouter API key. Uses OpenAI schema with openrouter.base_url preset. |
openrouter.api_key |
ollama |
Local endpoint, no key required (ollama.api_key defaults to not-required). |
ollama.base_url preset to http://localhost:11434/v1 |
bedrock |
Standard AWS credential chain (env vars, ~/.aws/credentials, IMDS, IAM role). |
bedrock.region, bedrock.profile, bedrock.model |
vertex |
GCP service-account JSON, or Application Default Credentials. |
vertex.project, vertex.region, vertex.credentials_file |
Transport backing libraries
Every transport is a thin adapter over an upstream client. Support is bounded by the upstream project's viability.
| Transport |
Upstream |
Protocol |
| WhatsApp |
go.mau.fi/whatsmeow |
Unofficial WhatsApp Web protocol (Signal-compatible). |
| Signal |
signal-cli subprocess |
Signal JSON-RPC. |
| Telegram |
Direct Bot API client |
Long polling. |
| Matrix |
Direct client-server API client |
HTTPS polling. |
| Slack |
Direct Socket Mode client |
Outbound WebSocket. |
| Discord |
Direct Gateway client |
Outbound WebSocket + intents. |
| iMessage |
BlueBubbles HTTP client |
BlueBubbles polling. Requires a macOS host running BlueBubbles Server. |
| Email |
Standard net/smtp + IMAP client |
IMAP + SMTP over TLS. |
| SMS |
Direct Twilio / Vonage REST |
Outbound only. |
Optional runtime dependencies
| Dependency |
Required for |
Version |
claude CLI |
provider: claudecli (default). |
Latest. |
signal-cli |
Signal transport. |
0.13+. Requires a JVM. |
| BlueBubbles Server |
iMessage transport. |
1.9+. Runs on a macOS host. |
whisper.cpp CLI |
WhatsApp voice-note transcription (whatsapp.voice.enabled: true). |
1.5+. Not shipped in the container image. |
podman |
Reference deployment. |
4.4+ for Quadlet support. |
systemd (user session) |
Reference deployment. |
249+ for Quadlet. |
Compiler and toolchain
| Component |
Version |
Notes |
| Go |
1.26+ |
go.mod pins the module graph exactly. |
| golangci-lint |
v2 |
18 linters, exact pins in .golangci.yml. |
| govulncheck |
Latest |
Run on every CI build. |
| cosign |
2.2+ |
Only for verifying signed releases. |
Next