# rahulverma9449/jarvis-voice-assistance architecture

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

- Interactive diagram: https://gitdiagram.com/rahulverma9449/jarvis-voice-assistance
- Repository: https://github.com/rahulverma9449/jarvis-voice-assistance

## Overview

Jarvis is a local desktop voice assistant with a companion dashboard/API. The main workflow is voice or dashboard input → command routing → a skill or AI response → spoken/displayed result, with history and related local data recorded. The README emphasizes voice, speech, web search, desktop apps, system tasks, and question answering; the code also exposes dashboard capabilities such as notes, memory, food scanning, image generation, media, and Atlassian actions. Some UI request details and unsampled skill internals are omitted; edges reflect only visible calls or API usage.

Main entry points: [`backend.py`](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/backend.py) (Assistant API), [`Jarvis/core/command_router.py`](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/command_router.py) (Command Router), [`Jarvis/main.py`](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/main.py) (Voice Runtime), [`Jarvis/skills`](https://github.com/rahulverma9449/jarvis-voice-assistance/tree/main/Jarvis/skills) (Command Skills)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["User Interaction"]
  node_dashboard["Dashboard UI<br/>[App.jsx]"]
  node_workspace_ui["Workspace Panel<br/>[WorkspacePanel.jsx]"]
  node_voice["Voice Runtime<br/>[main.py]"]
  node_speech["Speech I/O<br/>[speech.py]"]
  node_api["Assistant API<br/>[backend.py]"]
end

subgraph group_orchestration["Command Orchestration"]
  node_router["Command Router<br/>[command_router.py]"]
  node_catalog["Capability Catalog<br/>[capabilities.py]"]
end

subgraph group_skills["Assistant Capabilities"]
  node_skills["Command Skills"]
  node_llm["AI Providers<br/>[llm.py]"]
  node_proxy["AI Proxy<br/>[server.py]"]
end

subgraph group_state["Local State"]
  node_history[("Command History<br/>[history.py]")]
  node_browser_data[("Browser Data")]
  node_memory[("Assistant Memory<br/>[memory.py]")]
  node_workspace[("Workspace Store<br/>[workspace_store.py]")]
end

subgraph group_integrations["External Integrations"]
  node_market["Market API<br/>[market_api.py]"]
  node_cloud_ai["AI Services"]
  node_desktop["Desktop OS"]
  node_web["Web Services"]
end

node_user(("User"))

node_user -->|"enters commands"| node_dashboard
node_user -->|"speaks commands"| node_voice
node_dashboard -->|"calls API"| node_api
node_workspace_ui -->|"requests workspace"| node_api
node_voice -->|"listens and speaks"| node_speech
node_voice -->|"routes command"| node_router
node_api -->|"routes command"| node_router
node_api -->|"reads capabilities"| node_catalog
node_api -->|"reads and clears"| node_history
node_api -->|"reads and updates"| node_memory
node_api -->|"reads records"| node_browser_data
node_api -->|"includes router"| node_market
node_router -->|"dispatches command"| node_skills
node_router -->|"asks fallback"| node_llm
node_router -->|"records result"| node_history
node_router -->|"records work queries"| node_browser_data
node_router -->|"dispatches memory skill"| node_memory
node_skills -->|"controls computer"| node_desktop
node_skills -->|"uses web services"| node_web
node_llm -->|"requests completion"| node_cloud_ai
node_proxy -.->|"requests completion"| node_cloud_ai

click node_dashboard "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/frontend/src/App.jsx"
click node_workspace_ui "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/frontend/src/components/WorkspacePanel.jsx"
click node_voice "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/main.py"
click node_speech "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/speech.py"
click node_api "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/backend.py"
click node_router "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/command_router.py"
click node_catalog "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/capabilities.py"
click node_skills "https://github.com/rahulverma9449/jarvis-voice-assistance/tree/main/Jarvis/skills"
click node_llm "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/ai/llm.py"
click node_proxy "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/jarvis-proxy/server.py"
click node_history "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/history.py"
click node_browser_data "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/browser_datastore.py"
click node_memory "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/ai/memory.py"
click node_workspace "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/workspace_store.py"
click node_market "https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/market_api.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_dashboard,node_workspace_ui,node_voice,node_speech,node_api,node_user toneBlue
class node_router,node_catalog toneAmber
class node_skills,node_llm,node_proxy toneMint
class node_history,node_browser_data,node_memory,node_workspace toneRose
class node_market,node_cloud_ai,node_desktop,node_web toneIndigo
```

## Components

### User Interaction

- [Dashboard UI](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Workspace Panel](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/frontend/src/components/WorkspacePanel.jsx): `frontend/src/components/WorkspacePanel.jsx`
- [Voice Runtime](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/main.py): `Jarvis/main.py`
- [Speech I/O](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/speech.py): `Jarvis/core/speech.py`
- [Assistant API](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/backend.py): `backend.py`

### Command Orchestration

- [Command Router](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/command_router.py): `Jarvis/core/command_router.py`
- [Capability Catalog](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/capabilities.py): `Jarvis/core/capabilities.py`

### Assistant Capabilities

- [Command Skills](https://github.com/rahulverma9449/jarvis-voice-assistance/tree/main/Jarvis/skills): `Jarvis/skills`
- [AI Providers](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/ai/llm.py): `Jarvis/ai/llm.py`
- [AI Proxy](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/jarvis-proxy/server.py): `jarvis-proxy/server.py`

### Local State

- [Command History](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/history.py): `Jarvis/core/history.py`
- [Browser Data](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/browser_datastore.py): `Jarvis/core/browser_datastore.py`
- [Assistant Memory](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/ai/memory.py): `Jarvis/ai/memory.py`
- [Workspace Store](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/workspace_store.py): `Jarvis/core/workspace_store.py`

### External Integrations

- [Market API](https://github.com/rahulverma9449/jarvis-voice-assistance/blob/main/Jarvis/core/market_api.py): `Jarvis/core/market_api.py`
- **AI Services**
- **Desktop OS**
- **Web Services**

### Other components

- **User**

## Connections

- User → Dashboard UI: enters commands
- User → Voice Runtime: speaks commands
- Dashboard UI → Assistant API: calls API
- Workspace Panel → Assistant API: requests workspace
- Voice Runtime → Speech I/O: listens and speaks
- Voice Runtime → Command Router: routes command
- Assistant API → Command Router: routes command
- Assistant API → Capability Catalog: reads capabilities
- Assistant API → Command History: reads and clears
- Assistant API → Assistant Memory: reads and updates
- Assistant API → Browser Data: reads records
- Assistant API → Market API: includes router
- Command Router → Command Skills: dispatches command
- Command Router → AI Providers: asks fallback
- Command Router → Command History: records result
- Command Router → Browser Data: records work queries
- Command Router → Assistant Memory: dispatches memory skill
- Command Skills → Desktop OS: controls computer
- Command Skills → Web Services: uses web services
- AI Providers → AI Services: requests completion
- AI Proxy → AI Services: requests completion
