# 1mancompany/onemancompany architecture

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

- Interactive diagram: https://gitdiagram.com/1mancompany/onemancompany
- Repository: https://github.com/1mancompany/onemancompany

## Overview

OneManCompany is an agentic operating system for running an AI-staffed company through a browser. The principal workflow is that the CEO submits work, the EA routes it, the COO decomposes it into tasks, and employee agents execute and report results. The runtime also supports meetings, hiring and onboarding through the Talent Market, employee coaching and performance management, product/project iteration, and a pixel-art office interface. The graph reflects documented workflow stages and sampled imports; unsampled subsystem links are omitted or marked unverified.

Main entry points: [`src/onemancompany/agents/coo_agent.py`](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/coo_agent.py) (COO Agent), [`frontend/app.js`](https://github.com/1mancompany/onemancompany/blob/main/frontend/app.js) (Company UI), [`src/onemancompany/agents/base.py`](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/base.py) (Employee Agents), [`src/onemancompany/main.py`](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/main.py) (Application Server)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Browser Experience"]
  node_webapp["Company UI<br/>[app.js]"]
  node_office["Pixel Office<br/>[office.js]"]
  node_taskview["Task Tree View<br/>[task-tree-g6.js]"]
end

subgraph group_runtime["Company Runtime"]
  node_api["HTTP and WS API<br/>[routes.py]"]
  node_server["Application Server<br/>[main.py]"]
  node_events["Company Events<br/>[events.py]"]
  node_configuration["Company Configuration<br/>[config.py]"]
  node_state[("Company State<br/>[state.py]")]
end

subgraph group_work["Work Execution"]
  node_ea["EA Agent<br/>[ea_agent.py]"]
  node_coo["COO Agent<br/>[coo_agent.py]"]
  node_tasktree[("Task Tree<br/>[task_tree.py]")]
  node_workflow["Workflow Engine<br/>[workflow_engine.py]"]
  node_employee["Employee Agents<br/>[base.py]"]
  node_vessel["Task Execution<br/>[vessel.py]"]
  node_tools["Tool Registry<br/>[tool_registry.py]"]
  node_product[("Product Management<br/>[product.py]")]
end

subgraph group_people["People Operations"]
  node_hr["HR Agent<br/>[hr_agent.py]"]
  node_recruit["Recruitment<br/>[recruitment.py]"]
  node_talentmarket["Talent Market<br/>[remote_protocol.py]"]
end

subgraph group_extensions["Agents and Integrations"]
  node_acp["Agent Client Protocol<br/>[client.py]"]
  node_mcp["MCP Tool Server<br/>[server.py]"]
end

node_ceo(("CEO"))

node_ceo -.->|"submits work"| node_webapp
node_webapp -.->|"sends requests"| node_api
node_server -->|"mounts routes"| node_api
node_api -.->|"routes tasks"| node_ea
node_ea -.->|"routes work"| node_coo
node_coo -->|"decomposes tasks"| node_tasktree
node_coo -.->|"dispatches subtasks"| node_employee
node_employee -->|"executes via"| node_vessel
node_vessel -->|"updates task state"| node_tasktree
node_employee -->|"uses tools"| node_tools
node_coo -->|"coordinates workflows"| node_workflow
node_server -.->|"publishes updates"| node_events
node_events -.->|"streams updates"| node_webapp
node_webapp -.->|"renders office"| node_office
node_webapp -.->|"renders task tree"| node_taskview
node_hr -->|"runs recruitment"| node_recruit
node_recruit -.->|"searches candidates"| node_talentmarket
node_hr -.->|"manages employees"| node_state
node_coo -->|"coordinates company"| node_state
node_employee -.->|"uses agent backend"| node_acp
node_mcp -->|"registers tool access"| node_tools
node_coo -.->|"manages product work"| node_product
node_server -->|"loads settings"| node_configuration

click node_webapp "https://github.com/1mancompany/onemancompany/blob/main/frontend/app.js"
click node_office "https://github.com/1mancompany/onemancompany/blob/main/frontend/office.js"
click node_taskview "https://github.com/1mancompany/onemancompany/blob/main/frontend/task-tree-g6.js"
click node_api "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/api/routes.py"
click node_server "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/main.py"
click node_events "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/events.py"
click node_configuration "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/config.py"
click node_ea "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/ea_agent.py"
click node_coo "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/coo_agent.py"
click node_tasktree "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/task_tree.py"
click node_workflow "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/workflow_engine.py"
click node_employee "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/base.py"
click node_vessel "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/vessel.py"
click node_tools "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/tool_registry.py"
click node_hr "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/hr_agent.py"
click node_recruit "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/recruitment.py"
click node_talentmarket "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/talent_market/remote_protocol.py"
click node_state "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/state.py"
click node_product "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/product.py"
click node_acp "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/acp/client.py"
click node_mcp "https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/tools/mcp/server.py"

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_webapp,node_office,node_taskview toneBlue
class node_api,node_server,node_events,node_configuration,node_state toneAmber
class node_ea,node_coo,node_tasktree,node_workflow,node_employee,node_vessel,node_tools,node_product toneMint
class node_hr,node_recruit,node_talentmarket toneRose
class node_acp,node_mcp,node_ceo toneIndigo
```

## Components

### Browser Experience

- [Company UI](https://github.com/1mancompany/onemancompany/blob/main/frontend/app.js): `frontend/app.js`
- [Pixel Office](https://github.com/1mancompany/onemancompany/blob/main/frontend/office.js): `frontend/office.js`
- [Task Tree View](https://github.com/1mancompany/onemancompany/blob/main/frontend/task-tree-g6.js): `frontend/task-tree-g6.js`

### Company Runtime

- [HTTP and WS API](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/api/routes.py): `src/onemancompany/api/routes.py`
- [Application Server](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/main.py): `src/onemancompany/main.py`
- [Company Events](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/events.py): `src/onemancompany/core/events.py`
- [Company Configuration](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/config.py): `src/onemancompany/core/config.py`
- [Company State](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/state.py): `src/onemancompany/core/state.py`

### Work Execution

- [EA Agent](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/ea_agent.py): `src/onemancompany/agents/ea_agent.py`
- [COO Agent](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/coo_agent.py): `src/onemancompany/agents/coo_agent.py`
- [Task Tree](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/task_tree.py): `src/onemancompany/core/task_tree.py`
- [Workflow Engine](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/workflow_engine.py): `src/onemancompany/core/workflow_engine.py`
- [Employee Agents](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/base.py): `src/onemancompany/agents/base.py`
- [Task Execution](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/vessel.py): `src/onemancompany/core/vessel.py`
- [Tool Registry](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/tool_registry.py): `src/onemancompany/core/tool_registry.py`
- [Product Management](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/core/product.py): `src/onemancompany/core/product.py`

### People Operations

- [HR Agent](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/hr_agent.py): `src/onemancompany/agents/hr_agent.py`
- [Recruitment](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/agents/recruitment.py): `src/onemancompany/agents/recruitment.py`
- [Talent Market](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/talent_market/remote_protocol.py): `src/onemancompany/talent_market/remote_protocol.py`

### Agents and Integrations

- [Agent Client Protocol](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/acp/client.py): `src/onemancompany/acp/client.py`
- [MCP Tool Server](https://github.com/1mancompany/onemancompany/blob/main/src/onemancompany/tools/mcp/server.py): `src/onemancompany/tools/mcp/server.py`

### Other components

- **CEO**

## Connections

- CEO → Company UI: submits work (evidence: `README.md`)
- Company UI → HTTP and WS API: sends requests
- Application Server → HTTP and WS API: mounts routes (evidence: `src/onemancompany/main.py`)
- HTTP and WS API → EA Agent: routes tasks (evidence: `README.md`)
- EA Agent → COO Agent: routes work (evidence: `README.md`)
- COO Agent → Task Tree: decomposes tasks (evidence: `src/onemancompany/agents/coo_agent.py`)
- COO Agent → Employee Agents: dispatches subtasks (evidence: `README.md`)
- Employee Agents → Task Execution: executes via (evidence: `src/onemancompany/agents/base.py`)
- Task Execution → Task Tree: updates task state (evidence: `src/onemancompany/core/vessel.py`)
- Employee Agents → Tool Registry: uses tools (evidence: `src/onemancompany/agents/base.py`)
- COO Agent → Workflow Engine: coordinates workflows (evidence: `src/onemancompany/agents/coo_agent.py`)
- Application Server → Company Events: publishes updates (evidence: `src/onemancompany/main.py`)
- Company Events → Company UI: streams updates
- Company UI → Pixel Office: renders office
- Company UI → Task Tree View: renders task tree
- HR Agent → Recruitment: runs recruitment (evidence: `src/onemancompany/agents/hr_agent.py`)
- Recruitment → Talent Market: searches candidates (evidence: `README.md`)
- HR Agent → Company State: manages employees (evidence: `README.md`)
- COO Agent → Company State: coordinates company (evidence: `src/onemancompany/agents/coo_agent.py`)
- Employee Agents → Agent Client Protocol: uses agent backend
- MCP Tool Server → Tool Registry: registers tool access (evidence: `src/onemancompany/tools/mcp/server.py`)
- COO Agent → Product Management: manages product work (evidence: `README.md`)
- Application Server → Company Configuration: loads settings (evidence: `src/onemancompany/main.py`)
