# arcadia-1/virtuoso-bridge-lite architecture

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

- Interactive diagram: https://gitdiagram.com/arcadia-1/virtuoso-bridge-lite
- Repository: https://github.com/arcadia-1/virtuoso-bridge-lite
- Video tour (about a minute): https://gitdiagram.com/arcadia-1/virtuoso-bridge-lite/video

## Overview

virtuoso-bridge-lite lets Python, SKILL, and CLI clients operate Cadence Virtuoso and Spectre locally or over SSH. The main flow is configuration and connection setup, then authenticated transport to a Virtuoso SKILL daemon, which returns structured results for higher-level EDA operations; Spectre execution is a separate capability. The README documents the user-facing workflow, and the source index establishes several module references. Unsampled subsystem implementations are represented by their existing directories; relationships not demonstrated by the available evidence are omitted.

Main entry points: [`src/virtuoso_bridge/virtuoso/basic/bridge.py`](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/basic/bridge.py) (Virtuoso client), [`src/virtuoso_bridge/transport/ssh.py`](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/transport/ssh.py) (SSH execution), [`src/virtuoso_bridge/transport/tunnel.py`](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/transport/tunnel.py) (SSH tunnel), [`src/virtuoso_bridge/cli.py`](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/cli.py) (CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and configuration"]
  node_cli["CLI<br/>[cli.py]"]
  node_env["Environment config<br/>[env.py]"]
  node_profile["Connection profiles<br/>[profile.py]"]
  node_models["Result models<br/>[models.py]"]
end

subgraph group_transport["Remote connection"]
  node_ssh["SSH execution<br/>[ssh.py]"]
  node_tunnel["SSH tunnel<br/>[tunnel.py]"]
  node_remote_paths["Remote paths<br/>[remote_paths.py]"]
  node_remote_roles["Host roles<br/>[remote_roles.py]"]
  node_auth["Daemon authentication<br/>[daemon_auth.py]"]
end

subgraph group_virtuoso["Virtuoso operations"]
  node_bridge["Virtuoso client<br/>[bridge.py]"]
  node_requests["Request handling<br/>[requests.py]"]
  node_dialogs["Dialog control<br/>[dialogs.py]"]
  node_ops["Shared operations<br/>[ops.py]"]
  node_skill_output["SKILL output<br/>[skill_output.py]"]
  node_sos["SOS workareas<br/>[workarea.py]"]
end

subgraph group_eda["EDA capabilities"]
  node_schematic["Schematic editing"]
  node_layout["Layout and streamout"]
  node_library["Library management"]
  node_maestro["Maestro simulation"]
  node_spectre["Spectre runner<br/>[runner.py]"]
  node_docs["Documentation search<br/>[docs_search.py]"]
end

subgraph group_analytics["Website analytics"]
  node_analytics_routes["Analytics routing<br/>[routes.ts]"]
  node_analytics_worker[("Analytics storage<br/>[worker.ts]")]
  node_web_worker["Website worker<br/>[worker.ts]"]
end

node_user(("Agent or engineer"))

node_user -->|"invokes"| node_cli
node_cli -->|"starts tunnel"| node_tunnel
node_tunnel -->|"uses SSH"| node_ssh
node_ssh -->|"resolves paths"| node_remote_paths
node_ssh -->|"selects roles"| node_remote_roles
node_tunnel -->|"provisions token"| node_auth
node_bridge -->|"handles requests"| node_requests
node_requests -->|"uses dialog control"| node_dialogs
node_bridge -->|"uses operations"| node_ops
node_bridge -->|"formats output"| node_skill_output
node_bridge -->|"exposes workareas"| node_sos
node_bridge -->|"exposes editing"| node_schematic
node_bridge -->|"exposes layout"| node_layout
node_bridge -->|"exposes libraries"| node_library
node_bridge -->|"exposes Maestro"| node_maestro
node_user -.->|"runs simulations"| node_spectre
node_user -.->|"searches documentation"| node_docs
node_web_worker -->|"routes requests"| node_analytics_routes
node_analytics_routes -->|"records and queries"| node_analytics_worker

click node_cli "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/cli.py"
click node_env "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/env.py"
click node_profile "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/profile.py"
click node_models "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/models.py"
click node_ssh "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/transport/ssh.py"
click node_tunnel "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/transport/tunnel.py"
click node_remote_paths "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/transport/remote_paths.py"
click node_remote_roles "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/transport/remote_roles.py"
click node_auth "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/daemon_auth.py"
click node_bridge "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/basic/bridge.py"
click node_requests "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/requests.py"
click node_dialogs "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/dialogs.py"
click node_ops "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/ops.py"
click node_skill_output "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/skill_output.py"
click node_sos "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/sos/workarea.py"
click node_schematic "https://github.com/arcadia-1/virtuoso-bridge-lite/tree/main/src/virtuoso_bridge/virtuoso/schematic"
click node_layout "https://github.com/arcadia-1/virtuoso-bridge-lite/tree/main/src/virtuoso_bridge/virtuoso/layout"
click node_library "https://github.com/arcadia-1/virtuoso-bridge-lite/tree/main/src/virtuoso_bridge/virtuoso/library"
click node_maestro "https://github.com/arcadia-1/virtuoso-bridge-lite/tree/main/src/virtuoso_bridge/virtuoso/maestro"
click node_spectre "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/spectre/runner.py"
click node_docs "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/docs_search.py"
click node_analytics_routes "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/website/analytics/routes.ts"
click node_analytics_worker "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/website/analytics/worker.ts"
click node_web_worker "https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/website/worker.ts"

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_cli,node_env,node_profile,node_models toneBlue
class node_ssh,node_tunnel,node_remote_paths,node_remote_roles,node_auth toneAmber
class node_bridge,node_requests,node_dialogs,node_ops,node_skill_output,node_sos toneMint
class node_schematic,node_layout,node_library,node_maestro,node_spectre,node_docs toneRose
class node_analytics_routes,node_analytics_worker,node_web_worker,node_user toneIndigo
```

## Components

### Entry and configuration

- [CLI](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/cli.py): `src/virtuoso_bridge/cli.py`
- [Environment config](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/env.py): `src/virtuoso_bridge/env.py`
- [Connection profiles](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/profile.py): `src/virtuoso_bridge/profile.py`
- [Result models](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/models.py): `src/virtuoso_bridge/models.py`

### Remote connection

- [SSH execution](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/transport/ssh.py): `src/virtuoso_bridge/transport/ssh.py`
- [SSH tunnel](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/transport/tunnel.py): `src/virtuoso_bridge/transport/tunnel.py`
- [Remote paths](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/transport/remote_paths.py): `src/virtuoso_bridge/transport/remote_paths.py`
- [Host roles](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/transport/remote_roles.py): `src/virtuoso_bridge/transport/remote_roles.py`
- [Daemon authentication](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/daemon_auth.py): `src/virtuoso_bridge/daemon_auth.py`

### Virtuoso operations

- [Virtuoso client](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/basic/bridge.py): `src/virtuoso_bridge/virtuoso/basic/bridge.py`
- [Request handling](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/requests.py): `src/virtuoso_bridge/virtuoso/requests.py`
- [Dialog control](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/dialogs.py): `src/virtuoso_bridge/virtuoso/dialogs.py`
- [Shared operations](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/ops.py): `src/virtuoso_bridge/virtuoso/ops.py`
- [SKILL output](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/skill_output.py): `src/virtuoso_bridge/virtuoso/skill_output.py`
- [SOS workareas](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/sos/workarea.py): `src/virtuoso_bridge/virtuoso/sos/workarea.py`

### EDA capabilities

- [Schematic editing](https://github.com/arcadia-1/virtuoso-bridge-lite/tree/main/src/virtuoso_bridge/virtuoso/schematic): `src/virtuoso_bridge/virtuoso/schematic`
- [Layout and streamout](https://github.com/arcadia-1/virtuoso-bridge-lite/tree/main/src/virtuoso_bridge/virtuoso/layout): `src/virtuoso_bridge/virtuoso/layout`
- [Library management](https://github.com/arcadia-1/virtuoso-bridge-lite/tree/main/src/virtuoso_bridge/virtuoso/library): `src/virtuoso_bridge/virtuoso/library`
- [Maestro simulation](https://github.com/arcadia-1/virtuoso-bridge-lite/tree/main/src/virtuoso_bridge/virtuoso/maestro): `src/virtuoso_bridge/virtuoso/maestro`
- [Spectre runner](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/spectre/runner.py): `src/virtuoso_bridge/spectre/runner.py`
- [Documentation search](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/src/virtuoso_bridge/virtuoso/docs_search.py): `src/virtuoso_bridge/virtuoso/docs_search.py`

### Website analytics

- [Analytics routing](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/website/analytics/routes.ts): `website/analytics/routes.ts`
- [Analytics storage](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/website/analytics/worker.ts): `website/analytics/worker.ts`
- [Website worker](https://github.com/arcadia-1/virtuoso-bridge-lite/blob/main/website/worker.ts): `website/worker.ts`

### Other components

- **Agent or engineer**

## Connections

- Agent or engineer → CLI: invokes (evidence: `README.md`)
- CLI → SSH tunnel: starts tunnel (evidence: `README.md`)
- SSH tunnel → SSH execution: uses SSH (evidence: `src/virtuoso_bridge/transport/tunnel.py`)
- SSH execution → Remote paths: resolves paths (evidence: `src/virtuoso_bridge/transport/ssh.py`)
- SSH execution → Host roles: selects roles (evidence: `src/virtuoso_bridge/transport/ssh.py`)
- SSH tunnel → Daemon authentication: provisions token (evidence: `src/virtuoso_bridge/transport/tunnel.py`)
- Virtuoso client → Request handling: handles requests (evidence: `src/virtuoso_bridge/virtuoso/requests.py`)
- Request handling → Dialog control: uses dialog control (evidence: `src/virtuoso_bridge/virtuoso/requests.py`)
- Virtuoso client → Shared operations: uses operations (evidence: `src/virtuoso_bridge/virtuoso/basic/bridge.py`)
- Virtuoso client → SKILL output: formats output (evidence: `src/virtuoso_bridge/virtuoso/basic/bridge.py`)
- Virtuoso client → SOS workareas: exposes workareas (evidence: `src/virtuoso_bridge/virtuoso/basic/bridge.py`)
- Virtuoso client → Schematic editing: exposes editing (evidence: `src/virtuoso_bridge/virtuoso/basic/bridge.py`)
- Virtuoso client → Layout and streamout: exposes layout (evidence: `src/virtuoso_bridge/virtuoso/basic/bridge.py`)
- Virtuoso client → Library management: exposes libraries (evidence: `src/virtuoso_bridge/virtuoso/basic/bridge.py`)
- Virtuoso client → Maestro simulation: exposes Maestro (evidence: `src/virtuoso_bridge/virtuoso/basic/bridge.py`)
- Agent or engineer → Spectre runner: runs simulations (evidence: `README.md`)
- Agent or engineer → Documentation search: searches documentation (evidence: `src/virtuoso_bridge/virtuoso/docs_search.py`)
- Website worker → Analytics routing: routes requests (evidence: `website/worker.ts`)
- Analytics routing → Analytics storage: records and queries (evidence: `website/analytics/routes.ts`)
