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
opencodeWhat 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 opencodeConnect to BitRouter
Choose your mode:
Option 1: Native Integration
opencode config provider bitrouter
opencode config set bitrouter.url http://localhost:8787
opencodeOption 2: BYOK Mode
opencode config mode byok
opencode config set api.base http://localhost:8787
opencodeOption 3: Zen + BitRouter
opencode config mode zen
opencode config set zen.proxy http://localhost:8787
opencode --hybrid-routingEssential 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:11434Multi-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-latestRecipe: Multi-Provider Fallback
routes:
- match: "opencode/*"
provider: anthropic
fallback:
- openai
- deepseek
- ollamaRecipe: 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 jsonProvider Performance
# Benchmark providers
bitrouter providers benchmark
# Provider switching stats
bitrouter providers stats --agent opencode
# Cost breakdown
bitrouter costs breakdown --agent opencodeTroubleshooting
🔴 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 validateAdvanced 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: bearerLearn More
How is this guide?
Last updated on