A complete Rust rewrite of OpenCode — the open-source AI coding agent.
We're rebuilding OpenCode from the ground up in 100% Rust for better performance, lower memory footprint, and a truly native experience.
Note: This is the open-source backend SDK derived from OpenCode. Orbit (our Unified Development Environment) is a separate, proprietary product that uses this SDK.
| Aspect | TypeScript/Bun | Rust |
|---|---|---|
| Memory | ~200-500MB runtime | ~20-50MB |
| Startup | 1-3 seconds | <100ms |
| Binary Size | Node/Bun runtime required | Single static binary |
| Native Integration | FFI overhead | Zero-cost Tauri integration |
| Concurrency | Event loop limitations | True parallelism with async/await |
By rewriting in Rust, we get:
- Instant startup — no runtime initialization
- Minimal memory — critical for running alongside heavy IDEs
- Native Tauri integration — seamless desktop app without IPC overhead
- Single binary distribution — no dependencies, no node_modules
- True concurrency — parallel tool execution without blocking
Orbit Rust SDK is an open-source AI agent backend that handles:
- LLM provider communication (Anthropic, OpenAI, Google, AWS Bedrock, local models)
- Tool execution (bash, file operations, code analysis)
- Session management and conversation state
- Real-time streaming and event handling
- OAuth authentication flows (Claude Pro, ChatGPT Plus, GitHub Copilot)
This SDK is derived from OpenCode and is being rewritten in Rust. It's free and open source for the community to use, contribute to, and build upon.
Orbit (our Agentic UDE — Unified Development Environment) uses this SDK but is a separate, closed-source product.
Phase: Active Development
We're systematically converting the TypeScript codebase to Rust, crate by crate:
| Crate | Status | Description |
|---|---|---|
orbit-core |
✅ Complete | ID generation, locks, timeouts, wildcard, filesystem, global paths |
orbit-bus |
🔄 In Progress | Event pub/sub system |
orbit-storage |
⬜ Planned | JSON file storage |
orbit-project |
⬜ Planned | Project/instance context |
orbit-config |
⬜ Planned | Configuration management |
orbit-permission |
⬜ Planned | Permission system |
orbit-provider |
⬜ Planned | AI provider adapters (Anthropic, OpenAI, Google, AWS) |
orbit-session |
⬜ Planned | Session management |
orbit-tools |
⬜ Planned | Agent tools (bash, read, write, edit, glob, grep) |
orbit-lsp |
⬜ Planned | LSP client integration |
orbit-mcp |
⬜ Planned | Model Context Protocol client |
orbit-server |
⬜ Planned | HTTP API with SSE |
# Check compilation
cargo check --workspace
# Run tests
cargo test --workspace
# Build release
cargo build --release
# Test crates during development
cargo run -p orbit-cli -- test-coreWe provide a simple test CLI for verifying crates as they're built:
# Show available commands
cargo run -p orbit-cli -- help
# Test orbit-core
cargo run -p orbit-cli -- test-core
# More commands added as crates are completedorbit-rust-sdk/
├── Cargo.toml # Workspace manifest
├── crates/
│ ├── orbit-core/ # Foundation utilities
│ ├── orbit-bus/ # Event pub/sub
│ ├── orbit-storage/ # JSON file storage
│ ├── orbit-project/ # Project/instance context
│ ├── orbit-config/ # Configuration
│ ├── orbit-permission/ # Permission system
│ ├── orbit-provider/ # AI provider adapters
│ ├── orbit-session/ # Session management
│ ├── orbit-tools/ # Agent tools
│ ├── orbit-lsp/ # LSP client
│ ├── orbit-mcp/ # MCP client
│ ├── orbit-server/ # HTTP API server
│ └── orbit-cli/ # Development test CLI
├── docs/
│ ├── conversion/ # Conversion planning docs
│ ├── providers/ # Provider auth documentation
│ └── workflow/ # Development workflow guides
└── OpenCode-reference/ # Original TypeScript source
orbit-core
/ | \
orbit-bus orbit-storage orbit-config
\ | /
orbit-project
|
orbit-permission
/ \
orbit-provider orbit-tools
\ /
orbit-session
/ | \
orbit-lsp orbit-mcp orbit-server
| Document | Description |
|---|---|
docs/workflow/Workflow.md |
Main conversion workflow guide |
docs/workflow/MODULE_MAPPING.md |
TypeScript → Rust module mapping |
docs/providers/PROVIDER_AUTH.md |
OAuth flows for Claude, Codex, Copilot |
docs/providers/RUST_AI_SDK_ALTERNATIVES.md |
Rust alternatives to Vercel AI SDK |
Each crate also has a CONVERSION.md file mapping its TypeScript sources.
We welcome contributions! Whether you're:
- Porting TypeScript to Rust — Pick a module and start converting
- Adding features — New tools, providers, or improvements
- Fixing bugs — In either the TS or Rust codebase
- Improving docs — Better examples, guides, and explanations
This SDK is free and open source. Use it, fork it, build on it.
- Check
crates/<crate-name>/CONVERSION.mdfor the TypeScript → Rust mapping - Follow the patterns in
docs/workflow/Workflow.md - Test with
cargo run -p orbit-cli -- test-<crate> - Submit a PR
Special thanks to OpenCode and Anomaly (SST) for building the original open-source AI coding agent.
OpenCode proved that a fully open-source, provider-agnostic AI agent could rival proprietary solutions. We're taking their excellent work and rebuilding it in Rust to push performance even further.
MIT License
Copyright (c) 2025 Recursive Labs Copyright (c) 2024-2025 SST/OpenCode (Original Work)
See LICENSE for details.
Orbit Rust SDK
Built on the foundations of OpenCode