| TypeScript Module | Rust Crate | Notes |
|---|---|---|
util/ |
orbit-core |
Core utilities |
id/ |
orbit-core |
ID generation |
global/ |
orbit-core |
XDG paths |
bus/ |
orbit-bus |
Event bus |
storage/ |
orbit-storage |
File-based storage |
file/ |
orbit-storage |
File operations |
project/ |
orbit-project |
Project detection |
worktree/ |
orbit-project |
Git worktrees |
config/ |
orbit-config |
Configuration |
env/ |
orbit-config |
Environment variables |
flag/ |
orbit-config |
Feature flags |
permission/ |
orbit-permission |
Permission system |
question/ |
orbit-permission |
User prompts |
provider/ |
orbit-provider |
AI providers |
lsp/ |
orbit-lsp |
Language Server Protocol |
mcp/ |
orbit-mcp |
Model Context Protocol |
session/ |
orbit-session |
Session management |
agent/ |
orbit-session |
Agent loop |
snapshot/ |
orbit-session |
Context snapshots |
tool/ |
orbit-tools |
Tool implementations |
shell/ |
orbit-tools |
Shell execution |
pty/ |
orbit-tools |
PTY handling |
patch/ |
orbit-tools |
File patching |
format/ |
orbit-tools |
Output formatting |
server/ |
orbit-server |
HTTP server |
share/ |
orbit-server |
Session sharing |
scheduler/ |
orbit-server |
Task scheduling |
plugin/ |
orbit-server |
Plugin system |
skill/ |
orbit-server |
Skill/command system |
| TypeScript Module | Reason |
|---|---|
bun/ |
Bun runtime specific - Rust has its own runtime |
cli/ |
Will be a separate binary crate, not library |
command/ |
CLI commands - separate binary |
ide/ |
IDE integrations - separate concern |
installation/ |
Bun installation - not applicable |
auth/ |
OAuth flows - may add later if needed |
acp/ |
Anthropic-specific - evaluate later |
Required Crates: 12 (current)
| # | Crate | TypeScript Modules Covered |
|---|---|---|
| 1 | orbit-core |
util, id, global |
| 2 | orbit-bus |
bus |
| 3 | orbit-storage |
storage, file |
| 4 | orbit-project |
project, worktree |
| 5 | orbit-config |
config, env, flag |
| 6 | orbit-permission |
permission, question |
| 7 | orbit-provider |
provider |
| 8 | orbit-lsp |
lsp |
| 9 | orbit-mcp |
mcp |
| 10 | orbit-session |
session, agent, snapshot |
| 11 | orbit-tools |
tool, shell, pty, patch, format |
| 12 | orbit-server |
server, share, scheduler, plugin, skill |
| Crate | Purpose | When Needed |
|---|---|---|
orbit-cli |
CLI binary | When building CLI app |
orbit-auth |
OAuth/Auth | When adding auth flows |
orbit-ide |
IDE integrations | When building IDE plugins |
orbit-acp |
Anthropic API specific | If needed for specific features |
YES - 12 crates cover the full OpenCode functionality.
The excluded modules (bun, cli, command, ide, installation) are either:
- Runtime-specific (Bun → Rust handles this natively)
- Binary concerns (CLI will be built on top of these libraries)
- Not core SDK functionality
The 12 crates provide the complete library/SDK layer. A CLI or application would be built on top of these.