# duggal1/superflow architecture

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

- Interactive diagram: https://gitdiagram.com/duggal1/superflow
- Repository: https://github.com/duggal1/superflow

## Overview

Superflow is a macOS, Tauri-based local dictation and context-aware voice-workflow app. The primary path runs from a user’s recording through capture, transcription, context-sensitive cleanup, and text delivery; separate branches cover meeting reports and controlled voice actions. The README documents these capabilities, while the source index and excerpts confirm selected backend and frontend relationships. Many runtime modules are unsampled, so uncertain internal links are omitted rather than inferred.

Main entry points: [`src-tauri/src/actions.rs`](https://github.com/duggal1/superflow/blob/main/src-tauri/src/actions.rs) (Recording actions), [`src/App.tsx`](https://github.com/duggal1/superflow/blob/main/src/App.tsx) (App window), [`src-tauri/src/shortcut/handler.rs`](https://github.com/duggal1/superflow/blob/main/src-tauri/src/shortcut/handler.rs) (Shortcut handler), [`src-tauri/src/transcription_coordinator.rs`](https://github.com/duggal1/superflow/blob/main/src-tauri/src/transcription_coordinator.rs) (Transcription coordinator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["User interface"]
  node_app["App window<br/>[App.tsx]"]
  node_overlay["Recording overlay"]
  node_bindings["Tauri bindings<br/>[bindings.ts]"]
  node_settings["Settings state<br/>[settingsStore.ts]"]
end

subgraph group_capture["Audio and transcription"]
  node_shortcut["Shortcut handler<br/>[handler.rs]"]
  node_actions["Recording actions<br/>[actions.rs]"]
  node_audio["Audio manager<br/>[audio.rs]"]
  node_coordinator["Transcription coordinator"]
  node_transcription["Speech recognition<br/>[transcription.rs]"]
end

subgraph group_context["Context and language"]
  node_formatter["Transcript formatting<br/>[formatter.rs]"]
  node_grammar["Grammar correction<br/>[harper_engine.rs]"]
  node_context_capture["Context capture<br/>[capture.rs]"]
  node_intelligence["Context intelligence<br/>[router.rs]"]
  node_llm["LLM client<br/>[llm_client.rs]"]
end

subgraph group_meetings["Meeting intelligence"]
  node_meeting_ui["Meeting interface<br/>[MeetingPage.tsx]"]
  node_meeting_manager["Meeting manager<br/>[manager.rs]"]
  node_meeting_intelligence["Meeting analysis<br/>[intelligence.rs]"]
end

subgraph group_workflows["Voice workflows"]
  node_automation["Automation runtime"]
  node_calendar["Calendar integration<br/>[calendar.rs]"]
end

node_user(("User"))
node_external_calendar{{"Calendar service"}}

node_user -->|"requests dictation"| node_app
node_app -->|"invokes commands"| node_bindings
node_app -->|"uses settings"| node_settings
node_user -->|"starts recording"| node_shortcut
node_shortcut -->|"dispatches actions"| node_actions
node_actions -->|"controls capture"| node_audio
node_actions -.->|"coordinates transcription"| node_coordinator
node_coordinator -.->|"runs recognition"| node_transcription
node_transcription -.->|"produces cleaned text"| node_formatter
node_formatter -->|"corrects grammar"| node_grammar
node_actions -.->|"captures context"| node_context_capture
node_intelligence -->|"requests inference"| node_llm
node_user -->|"reviews meetings"| node_meeting_ui
node_meeting_ui -.->|"uses meeting workflow"| node_meeting_manager
node_meeting_manager -.->|"analyzes transcript"| node_meeting_intelligence
node_user -->|"speaks an action"| node_automation
node_automation -.->|"creates calendar events"| node_calendar
node_calendar -.->|"uses calendar API"| node_external_calendar
node_actions -.->|"updates recording UI"| node_overlay

click node_app "https://github.com/duggal1/superflow/blob/main/src/App.tsx"
click node_overlay "https://github.com/duggal1/superflow/blob/main/src/overlay/RecordingOverlay.tsx"
click node_bindings "https://github.com/duggal1/superflow/blob/main/src/bindings.ts"
click node_settings "https://github.com/duggal1/superflow/blob/main/src/stores/settingsStore.ts"
click node_shortcut "https://github.com/duggal1/superflow/blob/main/src-tauri/src/shortcut/handler.rs"
click node_actions "https://github.com/duggal1/superflow/blob/main/src-tauri/src/actions.rs"
click node_audio "https://github.com/duggal1/superflow/blob/main/src-tauri/src/managers/audio.rs"
click node_coordinator "https://github.com/duggal1/superflow/blob/main/src-tauri/src/transcription_coordinator.rs"
click node_transcription "https://github.com/duggal1/superflow/blob/main/src-tauri/src/managers/transcription.rs"
click node_formatter "https://github.com/duggal1/superflow/blob/main/src-tauri/src/audio_toolkit/formatter.rs"
click node_grammar "https://github.com/duggal1/superflow/blob/main/src-tauri/src/superflow_grammar/harper_engine.rs"
click node_context_capture "https://github.com/duggal1/superflow/blob/main/src-tauri/src/context/capture.rs"
click node_intelligence "https://github.com/duggal1/superflow/blob/main/src-tauri/src/intelligence/router.rs"
click node_llm "https://github.com/duggal1/superflow/blob/main/src-tauri/src/llm_client.rs"
click node_meeting_ui "https://github.com/duggal1/superflow/blob/main/src/components/meeting/MeetingPage.tsx"
click node_meeting_manager "https://github.com/duggal1/superflow/blob/main/src-tauri/src/meeting/manager.rs"
click node_meeting_intelligence "https://github.com/duggal1/superflow/blob/main/src-tauri/src/meeting/intelligence.rs"
click node_automation "https://github.com/duggal1/superflow/blob/main/src-tauri/src/automations/SuperflowAutomationRuntime.swift"
click node_calendar "https://github.com/duggal1/superflow/blob/main/src-tauri/src/integrations/src/google/calendar.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_app,node_overlay,node_bindings,node_settings,node_user toneBlue
class node_shortcut,node_actions,node_audio,node_coordinator,node_transcription toneAmber
class node_formatter,node_grammar,node_context_capture,node_intelligence,node_llm toneMint
class node_meeting_ui,node_meeting_manager,node_meeting_intelligence toneRose
class node_automation,node_calendar,node_external_calendar toneIndigo
```

## Components

### User interface

- [App window](https://github.com/duggal1/superflow/blob/main/src/App.tsx): `src/App.tsx`
- [Recording overlay](https://github.com/duggal1/superflow/blob/main/src/overlay/RecordingOverlay.tsx): `src/overlay/RecordingOverlay.tsx`
- [Tauri bindings](https://github.com/duggal1/superflow/blob/main/src/bindings.ts): `src/bindings.ts`
- [Settings state](https://github.com/duggal1/superflow/blob/main/src/stores/settingsStore.ts): `src/stores/settingsStore.ts`

### Audio and transcription

- [Shortcut handler](https://github.com/duggal1/superflow/blob/main/src-tauri/src/shortcut/handler.rs): `src-tauri/src/shortcut/handler.rs`
- [Recording actions](https://github.com/duggal1/superflow/blob/main/src-tauri/src/actions.rs): `src-tauri/src/actions.rs`
- [Audio manager](https://github.com/duggal1/superflow/blob/main/src-tauri/src/managers/audio.rs): `src-tauri/src/managers/audio.rs`
- [Transcription coordinator](https://github.com/duggal1/superflow/blob/main/src-tauri/src/transcription_coordinator.rs): `src-tauri/src/transcription_coordinator.rs`
- [Speech recognition](https://github.com/duggal1/superflow/blob/main/src-tauri/src/managers/transcription.rs): `src-tauri/src/managers/transcription.rs`

### Context and language

- [Transcript formatting](https://github.com/duggal1/superflow/blob/main/src-tauri/src/audio_toolkit/formatter.rs): `src-tauri/src/audio_toolkit/formatter.rs`
- [Grammar correction](https://github.com/duggal1/superflow/blob/main/src-tauri/src/superflow_grammar/harper_engine.rs): `src-tauri/src/superflow_grammar/harper_engine.rs`
- [Context capture](https://github.com/duggal1/superflow/blob/main/src-tauri/src/context/capture.rs): `src-tauri/src/context/capture.rs`
- [Context intelligence](https://github.com/duggal1/superflow/blob/main/src-tauri/src/intelligence/router.rs): `src-tauri/src/intelligence/router.rs`
- [LLM client](https://github.com/duggal1/superflow/blob/main/src-tauri/src/llm_client.rs): `src-tauri/src/llm_client.rs`

### Meeting intelligence

- [Meeting interface](https://github.com/duggal1/superflow/blob/main/src/components/meeting/MeetingPage.tsx): `src/components/meeting/MeetingPage.tsx`
- [Meeting manager](https://github.com/duggal1/superflow/blob/main/src-tauri/src/meeting/manager.rs): `src-tauri/src/meeting/manager.rs`
- [Meeting analysis](https://github.com/duggal1/superflow/blob/main/src-tauri/src/meeting/intelligence.rs): `src-tauri/src/meeting/intelligence.rs`

### Voice workflows

- [Automation runtime](https://github.com/duggal1/superflow/blob/main/src-tauri/src/automations/SuperflowAutomationRuntime.swift): `src-tauri/src/automations/SuperflowAutomationRuntime.swift`
- [Calendar integration](https://github.com/duggal1/superflow/blob/main/src-tauri/src/integrations/src/google/calendar.rs): `src-tauri/src/integrations/src/google/calendar.rs`

### Other components

- **User**
- **Calendar service**

## Connections

- User → App window: requests dictation
- App window → Tauri bindings: invokes commands (evidence: `src/bindings.ts`)
- App window → Settings state: uses settings (evidence: `src/App.tsx`)
- User → Shortcut handler: starts recording
- Shortcut handler → Recording actions: dispatches actions (evidence: `src-tauri/src/shortcut/handler.rs`)
- Recording actions → Audio manager: controls capture (evidence: `src-tauri/src/actions.rs`)
- Recording actions → Transcription coordinator: coordinates transcription (evidence: `src-tauri/src/actions.rs`)
- Transcription coordinator → Speech recognition: runs recognition
- Speech recognition → Transcript formatting: produces cleaned text
- Transcript formatting → Grammar correction: corrects grammar (evidence: `src-tauri/src/superflow_grammar/harper_engine.rs`)
- Recording actions → Context capture: captures context (evidence: `src-tauri/src/actions.rs`)
- Context intelligence → LLM client: requests inference (evidence: `src-tauri/src/intelligence/router.rs`)
- User → Meeting interface: reviews meetings
- Meeting interface → Meeting manager: uses meeting workflow
- Meeting manager → Meeting analysis: analyzes transcript
- User → Automation runtime: speaks an action
- Automation runtime → Calendar integration: creates calendar events
- Calendar integration → Calendar service: uses calendar API
- Recording actions → Recording overlay: updates recording UI
