# supermemoryai/company-brain architecture

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

- Interactive diagram: https://gitdiagram.com/supermemoryai/company-brain
- Repository: https://github.com/supermemoryai/company-brain

## Overview

Company Brain is a Slack-based company teammate: it observes conversations, builds permission-scoped memory, answers questions, and can act through connected tools. Its principal runtime path runs from Slack events through a brain turn to memory and tool access, then returns responses to Slack. The repository also provides scheduled research and digests, proactive replies, code execution, and a web dashboard for workspace configuration and memory inspection. Wiring beyond the sampled worker, journey, and setup code is based on README-described capabilities and the source tree; uncertain direct calls are omitted.

Main entry points: [`src/brain/turn/agent.ts`](https://github.com/supermemoryai/company-brain/blob/main/src/brain/turn/agent.ts) (Brain turn), [`web/app.tsx`](https://github.com/supermemoryai/company-brain/blob/main/web/app.tsx) (Dashboard app), [`src/routes/index.ts`](https://github.com/supermemoryai/company-brain/blob/main/src/routes/index.ts) (Brain API routes), [`src/worker.ts`](https://github.com/supermemoryai/company-brain/blob/main/src/worker.ts) (Worker router)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_conversation["Slack conversation runtime"]
  node_slack_routes["Slack routes<br/>[index.ts]"]
  node_slack_events["Slack events<br/>[events.ts]"]
  node_turn["Brain turn<br/>[agent.ts]"]
  node_slack_client["Slack delivery<br/>[client.ts]"]
end

subgraph group_intelligence["Brain and knowledge"]
  node_prompt["Prompt building<br/>[build.ts]"]
  node_memory["Memory and recall<br/>[index.ts]"]
  node_research["Research journeys<br/>[run.ts]"]
  node_proactivity["Proactive journeys<br/>[engine.ts]"]
end

subgraph group_actions["Actions and integrations"]
  node_tools["Tool execution<br/>[tools.ts]"]
  node_mcp["MCP integrations<br/>[execute.ts]"]
  node_sandbox["Code sandbox<br/>[tools.ts]"]
  node_web_tools["Web research<br/>[index.ts]"]
  node_scheduler["Scheduled work<br/>[scheduler.ts]"]
end

subgraph group_operations["Workspace operations"]
  node_setup["Setup routes<br/>[routes.ts]"]
  node_auth["Slack sign-in<br/>[routes.ts]"]
  node_brain_routes["Brain API routes<br/>[index.ts]"]
  node_db[("Workspace database<br/>[index.ts]")]
end

subgraph group_interface["Web interface"]
  node_web_app["Dashboard app<br/>[app.tsx]"]
  node_web_settings["Configuration views<br/>[configure-view.tsx]"]
  node_web_graph["Memory graph view<br/>[graph-view.tsx]"]
end

node_team(("Team member"))
node_slack(("Slack workspace"))
node_worker["Worker router<br/>[worker.ts]"]
node_memory_service[("Memory service")]
node_web_user(("Workspace administrator"))
node_model_provider{{"Model provider"}}
node_connected_services{{"Connected services"}}

node_slack -->|"sends events"| node_slack_routes
node_worker -->|"dispatches"| node_slack_routes
node_slack_routes -->|"handles events"| node_slack_events
node_slack_events -->|"starts turns"| node_turn
node_turn -->|"builds context"| node_prompt
node_turn -->|"recalls and updates"| node_memory
node_memory -->|"reads and writes"| node_memory_service
node_turn -->|"requests inference"| node_model_provider
node_turn -->|"runs tools"| node_tools
node_tools -->|"dispatches MCP"| node_mcp
node_mcp -.->|"calls tools"| node_connected_services
node_tools -.->|"runs code"| node_sandbox
node_tools -.->|"searches web"| node_web_tools
node_turn -->|"sends replies"| node_slack_client
node_slack_client -->|"posts messages"| node_slack
node_scheduler -->|"schedules research"| node_research
node_research -->|"starts research turns"| node_turn
node_proactivity -->|"starts proactive turns"| node_turn
node_worker -->|"dispatches"| node_setup
node_worker -->|"dispatches"| node_auth
node_worker -->|"dispatches"| node_brain_routes
node_setup -->|"checks workspace"| node_db
node_setup -->|"configures app"| node_slack
node_auth -->|"reads and writes accounts"| node_db
node_team -->|"asks and receives"| node_slack
node_web_user -->|"uses"| node_web_app
node_web_app -->|"checks session"| node_auth
node_web_app -->|"requests dashboard data"| node_brain_routes
node_web_app -->|"shows configuration"| node_web_settings
node_web_app -->|"shows memory graph"| node_web_graph
node_web_settings -->|"updates settings"| node_brain_routes
node_web_graph -->|"fetches graph"| node_brain_routes
node_brain_routes -->|"reads and writes"| node_db

click node_worker "https://github.com/supermemoryai/company-brain/blob/main/src/worker.ts"
click node_slack_routes "https://github.com/supermemoryai/company-brain/blob/main/src/routes/slack/index.ts"
click node_slack_events "https://github.com/supermemoryai/company-brain/blob/main/src/brain/slack/events.ts"
click node_turn "https://github.com/supermemoryai/company-brain/blob/main/src/brain/turn/agent.ts"
click node_slack_client "https://github.com/supermemoryai/company-brain/blob/main/src/brain/slack/client.ts"
click node_prompt "https://github.com/supermemoryai/company-brain/blob/main/src/brain/prompt/build.ts"
click node_memory "https://github.com/supermemoryai/company-brain/blob/main/src/brain/memory/index.ts"
click node_research "https://github.com/supermemoryai/company-brain/blob/main/src/brain/auto-research/run.ts"
click node_proactivity "https://github.com/supermemoryai/company-brain/blob/main/src/brain/journey/engine.ts"
click node_tools "https://github.com/supermemoryai/company-brain/blob/main/src/brain/turn/tools.ts"
click node_mcp "https://github.com/supermemoryai/company-brain/blob/main/src/brain/tools/mcp/execute.ts"
click node_sandbox "https://github.com/supermemoryai/company-brain/blob/main/src/brain/tools/sandbox/tools.ts"
click node_web_tools "https://github.com/supermemoryai/company-brain/blob/main/src/brain/tools/web/index.ts"
click node_scheduler "https://github.com/supermemoryai/company-brain/blob/main/src/brain/tools/scheduler.ts"
click node_setup "https://github.com/supermemoryai/company-brain/blob/main/src/setup/routes.ts"
click node_auth "https://github.com/supermemoryai/company-brain/blob/main/src/auth/routes.ts"
click node_brain_routes "https://github.com/supermemoryai/company-brain/blob/main/src/routes/index.ts"
click node_db "https://github.com/supermemoryai/company-brain/blob/main/src/db/index.ts"
click node_web_app "https://github.com/supermemoryai/company-brain/blob/main/web/app.tsx"
click node_web_settings "https://github.com/supermemoryai/company-brain/blob/main/web/components/configure-view.tsx"
click node_web_graph "https://github.com/supermemoryai/company-brain/blob/main/web/components/memory-graph/graph-view.tsx"

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_slack_routes,node_slack_events,node_turn,node_slack_client toneBlue
class node_prompt,node_memory,node_research,node_proactivity,node_memory_service toneAmber
class node_tools,node_mcp,node_sandbox,node_web_tools,node_scheduler toneMint
class node_setup,node_auth,node_brain_routes,node_db,node_worker toneRose
class node_web_app,node_web_settings,node_web_graph,node_team,node_slack,node_web_user,node_model_provider,node_connected_services toneIndigo
```

## Components

### Slack conversation runtime

- [Slack routes](https://github.com/supermemoryai/company-brain/blob/main/src/routes/slack/index.ts): `src/routes/slack/index.ts`
- [Slack events](https://github.com/supermemoryai/company-brain/blob/main/src/brain/slack/events.ts): `src/brain/slack/events.ts`
- [Brain turn](https://github.com/supermemoryai/company-brain/blob/main/src/brain/turn/agent.ts): `src/brain/turn/agent.ts`
- [Slack delivery](https://github.com/supermemoryai/company-brain/blob/main/src/brain/slack/client.ts): `src/brain/slack/client.ts`

### Brain and knowledge

- [Prompt building](https://github.com/supermemoryai/company-brain/blob/main/src/brain/prompt/build.ts): `src/brain/prompt/build.ts`
- [Memory and recall](https://github.com/supermemoryai/company-brain/blob/main/src/brain/memory/index.ts): `src/brain/memory/index.ts`
- [Research journeys](https://github.com/supermemoryai/company-brain/blob/main/src/brain/auto-research/run.ts): `src/brain/auto-research/run.ts`
- [Proactive journeys](https://github.com/supermemoryai/company-brain/blob/main/src/brain/journey/engine.ts): `src/brain/journey/engine.ts`

### Actions and integrations

- [Tool execution](https://github.com/supermemoryai/company-brain/blob/main/src/brain/turn/tools.ts): `src/brain/turn/tools.ts`
- [MCP integrations](https://github.com/supermemoryai/company-brain/blob/main/src/brain/tools/mcp/execute.ts): `src/brain/tools/mcp/execute.ts`
- [Code sandbox](https://github.com/supermemoryai/company-brain/blob/main/src/brain/tools/sandbox/tools.ts): `src/brain/tools/sandbox/tools.ts`
- [Web research](https://github.com/supermemoryai/company-brain/blob/main/src/brain/tools/web/index.ts): `src/brain/tools/web/index.ts`
- [Scheduled work](https://github.com/supermemoryai/company-brain/blob/main/src/brain/tools/scheduler.ts): `src/brain/tools/scheduler.ts`

### Workspace operations

- [Setup routes](https://github.com/supermemoryai/company-brain/blob/main/src/setup/routes.ts): `src/setup/routes.ts`
- [Slack sign-in](https://github.com/supermemoryai/company-brain/blob/main/src/auth/routes.ts): `src/auth/routes.ts`
- [Brain API routes](https://github.com/supermemoryai/company-brain/blob/main/src/routes/index.ts): `src/routes/index.ts`
- [Workspace database](https://github.com/supermemoryai/company-brain/blob/main/src/db/index.ts): `src/db/index.ts`

### Web interface

- [Dashboard app](https://github.com/supermemoryai/company-brain/blob/main/web/app.tsx): `web/app.tsx`
- [Configuration views](https://github.com/supermemoryai/company-brain/blob/main/web/components/configure-view.tsx): `web/components/configure-view.tsx`
- [Memory graph view](https://github.com/supermemoryai/company-brain/blob/main/web/components/memory-graph/graph-view.tsx): `web/components/memory-graph/graph-view.tsx`

### Other components

- **Team member**
- **Slack workspace**
- [Worker router](https://github.com/supermemoryai/company-brain/blob/main/src/worker.ts): `src/worker.ts`
- **Memory service**
- **Workspace administrator**
- **Model provider**
- **Connected services**

## Connections

- Slack workspace → Slack routes: sends events
- Worker router → Slack routes: dispatches
- Slack routes → Slack events: handles events
- Slack events → Brain turn: starts turns
- Brain turn → Prompt building: builds context
- Brain turn → Memory and recall: recalls and updates
- Memory and recall → Memory service: reads and writes
- Brain turn → Model provider: requests inference
- Brain turn → Tool execution: runs tools
- Tool execution → MCP integrations: dispatches MCP
- MCP integrations → Connected services: calls tools
- Tool execution → Code sandbox: runs code
- Tool execution → Web research: searches web
- Brain turn → Slack delivery: sends replies
- Slack delivery → Slack workspace: posts messages
- Scheduled work → Research journeys: schedules research
- Research journeys → Brain turn: starts research turns
- Proactive journeys → Brain turn: starts proactive turns
- Worker router → Setup routes: dispatches
- Worker router → Slack sign-in: dispatches
- Worker router → Brain API routes: dispatches
- Setup routes → Workspace database: checks workspace
- Setup routes → Slack workspace: configures app
- Slack sign-in → Workspace database: reads and writes accounts
- Team member → Slack workspace: asks and receives
- Workspace administrator → Dashboard app: uses
- Dashboard app → Slack sign-in: checks session
- Dashboard app → Brain API routes: requests dashboard data
- Dashboard app → Configuration views: shows configuration
- Dashboard app → Memory graph view: shows memory graph
- Configuration views → Brain API routes: updates settings
- Memory graph view → Brain API routes: fetches graph
- Brain API routes → Workspace database: reads and writes
