# eltzanis/reco architecture

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

- Interactive diagram: https://gitdiagram.com/eltzanis/reco
- Repository: https://github.com/eltzanis/reco

## Overview

ReCo is documented as a desktop biomedical research agent: users configure a backend and tools, then work through chat with bundled or newly generated MCP capabilities. Its broader workflow includes project memory, session traces, imaging, and framework self-extension. The repository tree exposes no application source, so implementation paths are unavailable; nodes use null paths and edges rely only on README statements. The bundled toolkit and integrations are represented at the documented capability level, not as inspected implementations.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["Research Interface"]
  node_desktop["Desktop App"]
  node_chat["Chat Panel"]
  node_settings["Settings"]
  node_servers["Servers Panel"]
end

subgraph group_agent["Agent and Extension"]
  node_agent_engine["Reasoning Agent"]
  node_self_extension["Self-Extension"]
  node_source_inspection["Source Inspection"]
  node_server_generation["MCP Server Generation"]
  node_server_verification["MCP Verification"]
  node_environment_setup["Environment Setup"]
end

subgraph group_capabilities["Research Capabilities"]
  node_bundled_servers["Bundled MCP Toolkit"]
  node_mcp_servers["Enabled MCP Servers"]
  node_model_backends["Reasoning Backends"]
end

subgraph group_workspace["Workspace and Imaging"]
  node_projects[("Projects and Memory")]
  node_chat_traces[("Chat Traces")]
  node_viewer["Medical Image Viewer"]
end

node_researcher(("Researcher"))
node_framework_source["Framework Source"]
node_imaging_infrastructure["Imaging Infrastructure"]

node_researcher -->|"uses"| node_desktop
node_desktop -->|"provides"| node_chat
node_desktop -->|"provides"| node_settings
node_desktop -->|"provides"| node_servers
node_chat -->|"sends prompts"| node_agent_engine
node_settings -->|"configures"| node_model_backends
node_agent_engine -->|"reasons with"| node_model_backends
node_agent_engine -->|"uses memory"| node_projects
node_agent_engine -->|"records traces"| node_chat_traces
node_servers -->|"enables"| node_mcp_servers
node_bundled_servers -->|"provides"| node_mcp_servers
node_chat -->|"starts workflow"| node_self_extension
node_agent_engine -->|"runs"| node_self_extension
node_self_extension -->|"obtains source"| node_framework_source
node_self_extension -->|"inspects"| node_source_inspection
node_self_extension -->|"creates environment"| node_environment_setup
node_self_extension -->|"generates"| node_server_generation
node_self_extension -->|"verifies"| node_server_verification
node_self_extension -->|"registers server"| node_servers
node_viewer -.->|"exchanges artifacts"| node_imaging_infrastructure
node_researcher -->|"inspects images"| node_viewer

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_desktop,node_chat,node_settings,node_servers toneBlue
class node_agent_engine,node_self_extension,node_source_inspection,node_server_generation,node_server_verification,node_environment_setup toneAmber
class node_bundled_servers,node_mcp_servers,node_model_backends toneMint
class node_projects,node_chat_traces,node_viewer toneRose
class node_researcher,node_framework_source,node_imaging_infrastructure toneIndigo
```

## Components

### Research Interface

- **Desktop App**
- **Chat Panel**
- **Settings**
- **Servers Panel**

### Agent and Extension

- **Reasoning Agent**
- **Self-Extension**
- **Source Inspection**
- **MCP Server Generation**
- **MCP Verification**
- **Environment Setup**

### Research Capabilities

- **Bundled MCP Toolkit**
- **Enabled MCP Servers**
- **Reasoning Backends**

### Workspace and Imaging

- **Projects and Memory**
- **Chat Traces**
- **Medical Image Viewer**

### Other components

- **Researcher**
- **Framework Source**
- **Imaging Infrastructure**

## Connections

- Researcher → Desktop App: uses (evidence: `README.md`)
- Desktop App → Chat Panel: provides (evidence: `README.md`)
- Desktop App → Settings: provides (evidence: `README.md`)
- Desktop App → Servers Panel: provides (evidence: `README.md`)
- Chat Panel → Reasoning Agent: sends prompts (evidence: `README.md`)
- Settings → Reasoning Backends: configures (evidence: `README.md`)
- Reasoning Agent → Reasoning Backends: reasons with (evidence: `README.md`)
- Reasoning Agent → Projects and Memory: uses memory (evidence: `README.md`)
- Reasoning Agent → Chat Traces: records traces (evidence: `README.md`)
- Servers Panel → Enabled MCP Servers: enables (evidence: `README.md`)
- Bundled MCP Toolkit → Enabled MCP Servers: provides (evidence: `README.md`)
- Chat Panel → Self-Extension: starts workflow (evidence: `README.md`)
- Reasoning Agent → Self-Extension: runs (evidence: `README.md`)
- Self-Extension → Framework Source: obtains source (evidence: `README.md`)
- Self-Extension → Source Inspection: inspects (evidence: `README.md`)
- Self-Extension → Environment Setup: creates environment (evidence: `README.md`)
- Self-Extension → MCP Server Generation: generates (evidence: `README.md`)
- Self-Extension → MCP Verification: verifies (evidence: `README.md`)
- Self-Extension → Servers Panel: registers server (evidence: `README.md`)
- Medical Image Viewer → Imaging Infrastructure: exchanges artifacts
- Researcher → Medical Image Viewer: inspects images (evidence: `README.md`)
