Opencode

Connect Opencode's terminal coding assistant to BitRouter

Opencode Integration

Quick Start

# 1. Start BitRouter
bitrouter serve

# 2. Configure Opencode for BitRouter
opencode config provider bitrouter
opencode config set bitrouter.url http://localhost:8787

# 3. Launch Opencode
opencode

What You Get

  • 75+ provider support - All through BitRouter's unified interface
  • Terminal-first design - Clean TUI with BitRouter integration
  • Provider switching - Seamlessly swap between models
  • Session persistence - Save/restore with JSONL format
  • LSP integration - Enhanced code understanding

Installation

Prerequisites

# Install Opencode
curl -fsSL https://opencode.ai/install | bash

# Or via package manager
npm install -g @opencode/cli
# brew install opencode

Connect to BitRouter

Choose your mode:

Option 1: Native Integration

opencode config provider bitrouter
opencode config set bitrouter.url http://localhost:8787
opencode

Option 2: BYOK Mode

opencode config mode byok
opencode config set api.base http://localhost:8787
opencode

Option 3: Zen + BitRouter

opencode config mode zen
opencode config set zen.proxy http://localhost:8787
opencode --hybrid-routing

Essential Configuration

Provider-Agnostic Routing

# ~/.bitrouter/config.yaml
routes:
  # Main coding tasks
  - match: "opencode/code/*"
    provider: anthropic
    model: claude-3-5-sonnet-latest
    
  # Quick operations
  - match: "opencode/quick/*"
    provider: openai
    model: gpt-4o-mini
    
  # Local models via Ollama
  - match: "opencode/local/*"
    provider: ollama
    model: codellama:34b
    endpoint: http://localhost:11434

Multi-Session Support

sessions:
  opencode:
    persistence: true
    storage: ~/.opencode/sessions
    features:
      auto_save: true
      branching: true
      undo_redo: true
      sharing: true
    routing:
      new: "opencode/session/new"
      restore: "opencode/session/restore"

LSP Integration

lsp:
  enabled: true
  servers:
    - language: python
      command: pylsp
      route: "opencode/lsp/python"
    - language: typescript
      command: typescript-language-server
      route: "opencode/lsp/typescript"
    - language: rust
      command: rust-analyzer
      route: "opencode/lsp/rust"

Common Recipes

Recipe: Cost-Optimized Development

routes:
  - match: "opencode/*"
    rules:
      - if: task_type == "simple"
        model: gpt-4o-mini
      - if: task_type == "complex"
        model: claude-3-5-sonnet-latest

Recipe: Multi-Provider Fallback

routes:
  - match: "opencode/*"
    provider: anthropic
    fallback:
      - openai
      - deepseek
      - ollama

Recipe: Zen Mode Integration

zen:
  enabled: true
  models:
    - name: "zen-coder"
      route: "opencode/zen/coder"
      fallback: "claude-3-5-sonnet-latest"

TUI Features

Enhanced Terminal Interface

tui:
  opencode:
    theme: catppuccin
    features:
      - syntax_highlighting
      - multi_pane
      - session_tabs
    routing:
      interactive: "opencode/tui/*"

Monitoring

Session Analytics

# View Opencode sessions
bitrouter sessions list --agent opencode

# Monitor active session
bitrouter monitor --agent opencode --session <id>

# Export session data
bitrouter export session --agent opencode --format json

Provider Performance

# Benchmark providers
bitrouter providers benchmark

# Provider switching stats
bitrouter providers stats --agent opencode

# Cost breakdown
bitrouter costs breakdown --agent opencode

Troubleshooting

🔴 Connection Issues

# Check BitRouter
curl http://localhost:8787/health

# Verify Opencode config
opencode config show

# Test connection
opencode test connection --provider bitrouter

🟡 Provider Switching

# List providers
bitrouter providers list

# Test routing
bitrouter test route "opencode/test"

# Reset config
opencode config reset providers

🔵 Session Problems

# Check storage
ls -la ~/.opencode/sessions

# Clear corrupted
opencode sessions clear --corrupted

# Verify format
opencode sessions validate

Advanced Features

Undo/Redo System

history:
  opencode:
    enabled: true
    max_depth: 100
    routing:
      undo: "opencode/history/undo"
      redo: "opencode/history/redo"

MCP Integration

mcp:
  opencode:
    servers:
      - name: filesystem
        route: "opencode/mcp/fs"
      - name: github
        route: "opencode/mcp/github"

Custom Providers

custom_providers:
  opencode:
    - name: "internal-llm"
      endpoint: "https://llm.company.com"
      route: "opencode/custom/*"
      auth: bearer

Learn More

How is this guide?

Last updated on

On this page