Skip to main content

Installation Guide

Routa supports three deployment methods:
  1. Desktop Application (Recommended) — Tauri-based native app with embedded Rust server
  2. Web Deployment — Next.js application on Vercel or self-hosted
  3. Docker — Containerized deployment with PostgreSQL or SQLite

Desktop

Native performance, embedded database, offline capable

Web

Serverless deployment, multi-user, PostgreSQL backend

Docker

Self-hosted, isolated, easy scaling

System Requirements

Desktop Application

  • Operating System: Windows 10+, macOS 11+, or Linux (Ubuntu 20.04+)
  • Node.js: 22.x or later
  • Rust: 1.70+ (installed automatically by rustup)
  • Memory: 4GB RAM minimum, 8GB recommended
  • Disk Space: 500MB for application + workspace storage

Platform-Specific Dependencies

Ubuntu/Debian
sudo apt update
sudo apt install -y \
  libwebkit2gtk-4.0-dev \
  build-essential \
  curl \
  wget \
  file \
  libssl-dev \
  libgtk-3-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev
Fedora
sudo dnf install -y \
  webkit2gtk4.0-devel \
  openssl-devel \
  curl \
  wget \
  file \
  gtk3-devel \
  librsvg2-devel
  • Install Xcode Command Line Tools:
xcode-select --install
  • Install Homebrew (if not already installed):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Installation Methods

Desktop Application

1

Install Rust

If you don’t have Rust installed:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
Verify installation:
rustc --version
cargo --version
2

Clone Repository

git clone https://github.com/yourusername/routa.git
cd routa
3

Install Node Dependencies

npm install --legacy-peer-deps
The --legacy-peer-deps flag is required for npm due to peer dependency conflicts in some dependencies.
4

Build and Run

npm run tauri dev
This starts the desktop app in development mode with hot reload.
5

Configure on First Launch

On first launch, you’ll need to:
  1. Set API Keys: Configure your AI provider API keys in Settings
  2. Create Workspace: Set up your first workspace directory
  3. Install ACP Agents: (Optional) Install OpenCode, Claude CLI, or other agents
The SQLite database will be automatically created at:
  • Windows: %APPDATA%/com.routa.app/routa.db
  • macOS: ~/Library/Application Support/com.routa.app/routa.db
  • Linux: ~/.local/share/com.routa.app/routa.db

CLI Installation (Optional)

Build the Rust CLI for terminal-based coordination:
cargo build --release --manifest-path crates/routa-cli/Cargo.toml
The binary will be at crates/routa-cli/target/release/routa. Add it to your PATH:
# Linux/macOS
sudo cp crates/routa-cli/target/release/routa /usr/local/bin/

# Or add to PATH in your shell profile
export PATH="$PATH:$(pwd)/crates/routa-cli/target/release"
Verify:
routa --version

Post-Installation Setup

1

Configure API Keys

Add your AI provider API keys in one of these ways:
  • Web UI: Settings → API Configuration
  • Environment Variables: Add to .env.local or .env
  • Desktop App: Settings panel on first launch
Supported providers:
  • Anthropic (Claude)
  • OpenAI (GPT models)
  • Google (Gemini)
  • Custom OpenAI-compatible APIs
2

Install ACP Agents (Optional)

Install agent binaries for delegation:
npm install -g opencode-ai@latest
# Or use npx (no install required)
3

Create Your First Workspace

  1. Open the application
  2. Navigate to Workspaces
  3. Click New Workspace
  4. Set name and directory path
  5. Optionally configure Git repository
4

Verify Installation

Test the coordination system:
  1. Open the Chat panel
  2. Enter: “Create a hello.py file that prints Hello World”
  3. Watch the agent coordination flow
  4. Verify the file was created

Configuration Files

Environment Variables Reference

ROUTA_DB_DRIVER
string
default:"sqlite"
Database driver: sqlite or postgres
ROUTA_DB_PATH
string
default:"./routa.db"
SQLite database file path (only used when ROUTA_DB_DRIVER=sqlite)
DATABASE_URL
string
PostgreSQL connection string (only used when ROUTA_DB_DRIVER=postgres)Format: postgresql://user:password@host:port/database?sslmode=require
ANTHROPIC_AUTH_TOKEN
string
Anthropic API key for Claude models
OPENAI_API_KEY
string
OpenAI API key for GPT models
ANTHROPIC_BASE_URL
string
default:"https://api.anthropic.com"
Custom Anthropic-compatible API endpoint
API_TIMEOUT_MS
number
default:"600000"
API request timeout in milliseconds (10 minutes default)
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
boolean
default:"false"
Disable non-essential telemetry for Claude Code
GITHUB_TOKEN
string
GitHub personal access token for webhook and virtual workspace features
GITHUB_POLLING_ENABLED
boolean
default:"false"
Enable GitHub issue polling adapter (alternative to webhooks)
GITHUB_POLLING_INTERVAL
number
default:"30"
Polling interval in seconds (minimum: 10)

Troubleshooting

Symptoms: Errors during npm run tauri dev or cargo buildSolutions:
  • Update Rust: rustup update
  • Clear build cache: cargo clean
  • On Linux, install missing dependencies (see platform-specific section)
  • On Windows, ensure Visual Studio Build Tools are installed
  • Check disk space (needs ~2GB for debug builds)
Symptoms: Connection refused or Database locked errorsSolutions:
  • For SQLite: Check file permissions and ensure directory exists
  • For PostgreSQL: Verify DATABASE_URL is correct and database is running
  • Test connection: psql $DATABASE_URL
  • Run migrations: npm run db:push
  • For “database locked”: Close other connections or use PostgreSQL
Symptoms: Peer dependency conflicts or build failuresSolutions:
  • Use the --legacy-peer-deps flag with npm
  • Try pnpm: pnpm install --shamefully-hoist
  • Clear cache: npm cache clean --force
  • Delete node_modules and reinstall
  • Ensure Node.js version is 22.x or later
Symptoms: Build errors or container won’t startSolutions:
  • Ensure Docker daemon is running
  • Update Docker to latest version
  • Clear build cache: docker builder prune
  • Check available disk space
  • On Windows/Mac, increase Docker memory allocation (Settings → Resources)
  • Review logs: docker compose logs app
Symptoms: Cannot delegate to OpenCode, Claude, or other agentsSolutions:
  • Verify agent binary is installed and in PATH
  • Test manually: opencode --version or claude --version
  • Check Settings → ACP Providers for correct configuration
  • For npx-based agents: Ensure internet connection
  • Review agent logs in the UI or database
Symptoms: EADDRINUSE: address already in use :::3000Solutions:
  • Change port: PORT=3001 npm run dev
  • Find and kill process: lsof -ti:3000 | xargs kill (Linux/Mac)
  • Or: npx kill-port 3000
  • For Docker: Change port mapping in docker-compose.yml

Next Steps

Quickstart

Run your first multi-agent coordination in 5 minutes

Configuration

Configure workspaces, MCP servers, and custom specialists

Core Concepts

Learn about specs, tasks, and coordination patterns

API Reference

Explore the REST and protocol APIs

Upgrading

To upgrade to a newer version:
git pull origin main
npm install --legacy-peer-deps
npm run tauri build
Install the new build from the target/release/bundle/ directory.
Always backup your database before upgrading!

Build docs developers (and LLMs) love