How aluro7in/opencode works
OpenCode is an open-source AI coding agent, available through a terminal UI, desktop app, and client/server interfaces. A typical workflow starts with a user prompt, passes through an agent that coordinates model requests and coding actions, and uses project files and persisted sessions as context and state. The README also highlights provider choice and built-in LSP support. The graph combines those documented capabilities with sampled server, storage, and client code; unsampled subsystem wiring is intentionally left unspecified.
Main entry points: server.ts HTTP server · agent.ts Agent · app.tsx Terminal UI · bootstrap.ts CLI
Components 19
User clients
- CLI
packages/opencode/src/cli/bootstrap.ts - Terminal UI
packages/opencode/src/cli/cmd/tui/app.tsx - Desktop client
packages/desktop/src/entry.tsx - Web client
packages/app/src/app.tsx
Agent runtime
- HTTP server
packages/opencode/src/server/server.ts - Agent
packages/opencode/src/agent/agent.ts - Model providers
packages/opencode/src/provider - Provider auth
packages/opencode/src/auth/index.ts - Agent tools
packages/opencode/src/tool - Workspace events
packages/opencode/src/control-plane/workspace-server/routes.ts
Project services
- Language servers
packages/opencode/src/lsp/server.ts - Project files
Session state
- Session storage
packages/opencode/src/storage/storage.ts - Event bus
packages/opencode/src/bus/global.ts
Hosted services
- OpenCode Zen
packages/console/app/src/routes/zen - Account and billing
packages/console/app/src/routes/workspace - Console database
packages/console/core/src/schema/workspace.sql.ts - Enterprise sharing
packages/enterprise/src/routes/share.tsx
Other components
- Developer
Connections 22
- Developer → Terminal UI: prompts
- Developer → Web client: prompts
- Developer → Desktop client: prompts
- Developer → CLI: invokes
- CLI → Terminal UI: starts
- Terminal UI → HTTP server: requests
- Web client → HTTP server: requests
- Desktop client → HTTP server: connects
- HTTP server → Agent: dispatches
- Agent → Model providers: requests
- Provider auth → Model providers: authenticates
- Agent → Agent tools: invokes
- Agent tools → Project files: reads/writes
- Agent → Session storage: persists
- HTTP server → Session storage: reads/writes
- HTTP server → Event bus: publishes
- Workspace events → Event bus: subscribes
- Agent → Language servers: uses
- Developer → Account and billing: manages workspace
- Account and billing → Console database: reads/writes
- Developer → OpenCode Zen: requests models
- Developer → Enterprise sharing: opens shared session