# vreddy0082/openbot architecture

> Architecture diagram of the GitHub repository vreddy0082/openbot, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vreddy0082/openbot
- Repository: https://github.com/vreddy0082/openbot

## Overview

OpenBot is a self-hostable workspace for AI coworkers. A person uses a web, desktop, mobile, or chat client to work with agents; agents can be built-in or connected through AG-UI, while models, tools, computers, approvals, and audit are governed within the workspace. The README documents these product capabilities and the high-level architecture. Source excerpts give stronger detail for desktop engine setup and shared model-provider configuration; unsampled subsystems are represented at their exact tree paths, with undocumented internal call links omitted.

Main entry points: [`agent-langgraph-agui/src/main.py`](https://github.com/vreddy0082/openbot/blob/main/agent-langgraph-agui/src/main.py) (Built-in Bots), [`app/src`](https://github.com/vreddy0082/openbot/tree/main/app/src) (Web workspace), [`desktop/src`](https://github.com/vreddy0082/openbot/tree/main/desktop/src) (Desktop client), [`desktop/src-tauri/src/install.rs`](https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/install.rs) (Engine selection)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["Workspace and governance"]
  node_workspace_controls["Permissions and approvals"]
  node_audit["Audit and review"]
end

subgraph group_agents["Agent execution"]
  node_built_in["Built-in Bots<br/>[main.py]"]
  node_agent_adapters["Agent adapters<br/>[adapter.py]"]
  node_orchestration["Agent orchestration<br/>[orchestration.ts]"]
end

subgraph group_integrations["Models and tools"]
  node_models["Model providers<br/>[model_providers.py]"]
  node_tools["MCP tools"]
  node_computer["Computer control"]
end

subgraph group_clients["Client surfaces"]
  node_web["Web workspace"]
  node_desktop["Desktop client"]
  node_mobile["Mobile client"]
  node_browser_extension["Browser extension"]
  node_chat_surfaces["Chat surfaces"]
end

subgraph group_local["Local runtime setup"]
  node_engine_select["Engine selection<br/>[install.rs]"]
  node_engine_acquire["Engine installation<br/>[acquire.rs]"]
  node_engine_check["Engine readiness<br/>[engine.rs]"]
  node_engine_versions["Engine versions<br/>[engine_versions.rs]"]
  node_desktop_setup["Setup experience<br/>[App.tsx]"]
  node_problem_handling["Setup failures<br/>[problem.rs]"]
end

node_person(("Workspace user"))

node_person -->|"uses"| node_web
node_person -->|"uses"| node_desktop
node_person -->|"uses"| node_mobile
node_person -.->|"uses"| node_browser_extension
node_person -.->|"uses"| node_chat_surfaces
node_web -.->|"configures"| node_workspace_controls
node_web -.->|"reviews"| node_audit
node_web -->|"connects to"| node_built_in
node_desktop -->|"connects to"| node_built_in
node_mobile -->|"connects to"| node_built_in
node_chat_surfaces -.->|"connects to"| node_built_in
node_web -->|"connects via AG-UI"| node_agent_adapters
node_desktop -->|"connects via AG-UI"| node_agent_adapters
node_built_in -.->|"uses"| node_orchestration
node_built_in -->|"uses"| node_models
node_built_in -->|"uses"| node_tools
node_built_in -->|"uses"| node_computer
node_agent_adapters -.->|"uses"| node_models
node_desktop -->|"runs setup"| node_desktop_setup
node_desktop_setup -->|"starts engine setup"| node_engine_select
node_engine_select -.->|"installs engine"| node_engine_acquire
node_engine_select -.->|"checks engine"| node_engine_check
node_engine_select -.->|"checks versions"| node_engine_versions
node_desktop_setup -.->|"shows failures"| node_problem_handling

click node_web "https://github.com/vreddy0082/openbot/tree/main/app/src"
click node_desktop "https://github.com/vreddy0082/openbot/tree/main/desktop/src"
click node_mobile "https://github.com/vreddy0082/openbot/tree/main/mobile/app"
click node_browser_extension "https://github.com/vreddy0082/openbot/tree/main/extension/src"
click node_chat_surfaces "https://github.com/vreddy0082/openbot/tree/main/agent-langgraph-agui/src"
click node_workspace_controls "https://github.com/vreddy0082/openbot/tree/main/app/src/components/approvals"
click node_audit "https://github.com/vreddy0082/openbot/tree/main/app/src/components/audit"
click node_built_in "https://github.com/vreddy0082/openbot/blob/main/agent-langgraph-agui/src/main.py"
click node_agent_adapters "https://github.com/vreddy0082/openbot/blob/main/agent-claude-sdk/src/adapter.py"
click node_orchestration "https://github.com/vreddy0082/openbot/blob/main/shared/orchestration.ts"
click node_models "https://github.com/vreddy0082/openbot/blob/main/shared/model_providers.py"
click node_tools "https://github.com/vreddy0082/openbot/tree/main/app/src/lib/plugins"
click node_computer "https://github.com/vreddy0082/openbot/tree/main/app/src/lib/computers"
click node_engine_select "https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/install.rs"
click node_engine_acquire "https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/acquire.rs"
click node_engine_check "https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/engine.rs"
click node_engine_versions "https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/engine_versions.rs"
click node_desktop_setup "https://github.com/vreddy0082/openbot/blob/main/desktop/src/App.tsx"
click node_problem_handling "https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/problem.rs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_workspace_controls,node_audit,node_person toneBlue
class node_built_in,node_agent_adapters,node_orchestration toneAmber
class node_models,node_tools,node_computer toneMint
class node_web,node_desktop,node_mobile,node_browser_extension,node_chat_surfaces toneRose
class node_engine_select,node_engine_acquire,node_engine_check,node_engine_versions,node_desktop_setup,node_problem_handling toneIndigo
```

## Components

### Workspace and governance

- [Permissions and approvals](https://github.com/vreddy0082/openbot/tree/main/app/src/components/approvals): `app/src/components/approvals`
- [Audit and review](https://github.com/vreddy0082/openbot/tree/main/app/src/components/audit): `app/src/components/audit`

### Agent execution

- [Built-in Bots](https://github.com/vreddy0082/openbot/blob/main/agent-langgraph-agui/src/main.py): `agent-langgraph-agui/src/main.py`
- [Agent adapters](https://github.com/vreddy0082/openbot/blob/main/agent-claude-sdk/src/adapter.py): `agent-claude-sdk/src/adapter.py`
- [Agent orchestration](https://github.com/vreddy0082/openbot/blob/main/shared/orchestration.ts): `shared/orchestration.ts`

### Models and tools

- [Model providers](https://github.com/vreddy0082/openbot/blob/main/shared/model_providers.py): `shared/model_providers.py`
- [MCP tools](https://github.com/vreddy0082/openbot/tree/main/app/src/lib/plugins): `app/src/lib/plugins`
- [Computer control](https://github.com/vreddy0082/openbot/tree/main/app/src/lib/computers): `app/src/lib/computers`

### Client surfaces

- [Web workspace](https://github.com/vreddy0082/openbot/tree/main/app/src): `app/src`
- [Desktop client](https://github.com/vreddy0082/openbot/tree/main/desktop/src): `desktop/src`
- [Mobile client](https://github.com/vreddy0082/openbot/tree/main/mobile/app): `mobile/app`
- [Browser extension](https://github.com/vreddy0082/openbot/tree/main/extension/src): `extension/src`
- [Chat surfaces](https://github.com/vreddy0082/openbot/tree/main/agent-langgraph-agui/src): `agent-langgraph-agui/src`

### Local runtime setup

- [Engine selection](https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/install.rs): `desktop/src-tauri/src/install.rs`
- [Engine installation](https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/acquire.rs): `desktop/src-tauri/src/acquire.rs`
- [Engine readiness](https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/engine.rs): `desktop/src-tauri/src/engine.rs`
- [Engine versions](https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/engine_versions.rs): `desktop/src-tauri/src/engine_versions.rs`
- [Setup experience](https://github.com/vreddy0082/openbot/blob/main/desktop/src/App.tsx): `desktop/src/App.tsx`
- [Setup failures](https://github.com/vreddy0082/openbot/blob/main/desktop/src-tauri/src/problem.rs): `desktop/src-tauri/src/problem.rs`

### Other components

- **Workspace user**

## Connections

- Workspace user → Web workspace: uses (evidence: `README.md`)
- Workspace user → Desktop client: uses (evidence: `README.md`)
- Workspace user → Mobile client: uses (evidence: `README.md`)
- Workspace user → Browser extension: uses (evidence: `README.md`)
- Workspace user → Chat surfaces: uses (evidence: `README.md`)
- Web workspace → Permissions and approvals: configures (evidence: `README.md`)
- Web workspace → Audit and review: reviews (evidence: `README.md`)
- Web workspace → Built-in Bots: connects to (evidence: `README.md`)
- Desktop client → Built-in Bots: connects to (evidence: `README.md`)
- Mobile client → Built-in Bots: connects to (evidence: `README.md`)
- Chat surfaces → Built-in Bots: connects to (evidence: `README.md`)
- Web workspace → Agent adapters: connects via AG-UI (evidence: `README.md`)
- Desktop client → Agent adapters: connects via AG-UI (evidence: `README.md`)
- Built-in Bots → Agent orchestration: uses
- Built-in Bots → Model providers: uses (evidence: `README.md`)
- Built-in Bots → MCP tools: uses (evidence: `README.md`)
- Built-in Bots → Computer control: uses (evidence: `README.md`)
- Agent adapters → Model providers: uses
- Desktop client → Setup experience: runs setup (evidence: `desktop/src/App.tsx`)
- Setup experience → Engine selection: starts engine setup (evidence: `desktop/src/App.tsx`)
- Engine selection → Engine installation: installs engine (evidence: `desktop/src-tauri/src/install.rs`)
- Engine selection → Engine readiness: checks engine (evidence: `desktop/src-tauri/src/install.rs`)
- Engine selection → Engine versions: checks versions (evidence: `desktop/src-tauri/src/install.rs`)
- Setup experience → Setup failures: shows failures
