How composiohq/open-claude-cowork works
Open Claude Cowork is an Electron desktop chat app backed by an Express service. A user selects a provider and sends a message; the renderer uses the preload bridge to call the backend, which supplies Composio MCP tools and dispatches the request to Claude or Opencode. Provider output streams back for rendering, including text and tool activity. Chat sessions are retained in provider memory, and Claude can load project skills. README also describes Secure Clawdbot, but its implementation is absent from this repository tree; UI details are based on partial renderer excerpts.
Main entry points: server.js HTTP and SSE API · claude-provider.js Claude adapter · opencode-provider.js Opencode adapter · preload.js Preload bridge
Components 14
Desktop client
- Electron window
main.js - Chat UI
renderer/renderer.js - Preload bridge
preload.js
Chat backend
- HTTP and SSE API
server/server.js - Composio sessions
server/server.js
Agent providers
- Provider registry
server/providers/index.js - Provider sessions
server/providers/base-provider.js - Claude adapter
server/providers/claude-provider.js - Opencode adapter
server/providers/opencode-provider.js
Agent integrations
- Claude Agent SDK
- Opencode SDK
- Composio Tool Router
- Project skills
.claude/skills
Other components
- User
Connections 22
- User → Chat UI: uses
- Electron window → Chat UI: loads
- Chat UI → Preload bridge: calls
- Preload bridge → HTTP and SSE API: sends chat
- HTTP and SSE API → Composio sessions: gets session
- Composio sessions → Composio Tool Router: creates session
- HTTP and SSE API → Provider registry: selects provider
- Provider registry → Claude adapter: returns instance
- Provider registry → Opencode adapter: returns instance
- Claude adapter → Provider sessions: uses sessions
- Opencode adapter → Provider sessions: uses sessions
- HTTP and SSE API → Claude adapter: dispatches query
- HTTP and SSE API → Opencode adapter: dispatches query
- Claude adapter → Claude Agent SDK: queries
- Opencode adapter → Opencode SDK: queries
- HTTP and SSE API → Claude adapter: aborts query
- HTTP and SSE API → Opencode adapter: aborts query
- Claude adapter → Project skills: loads settings
- Claude adapter → Composio Tool Router: uses MCP tools
- Opencode adapter → Composio Tool Router: uses MCP config
- HTTP and SSE API → Preload bridge: streams SSE
- Preload bridge → Chat UI: provides stream