# kunalvaghani/jarvis architecture

> Architecture diagram of the GitHub repository kunalvaghani/jarvis, 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/kunalvaghani/jarvis
- Repository: https://github.com/kunalvaghani/jarvis

## Overview

Jarvis is a local Windows voice assistant: speech or typed input becomes commands, which are dispatched to desktop, file, browser, coding, media, or question workflows and then reported or spoken back. Its README also documents adaptive task planning, memory, and supervised recovery. God's Eye View is an optional browser-based globe and situational-awareness integration, with live data layers, voice interaction, annotations, and map-source controls. The tree and excerpts show only selected implementation details, so links for unsampled Jarvis subsystems are limited to documented behavior and the enclosing application directory.

Main entry points: [`InsTAREELS`](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS) (Task dispatch), [`InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/app/application.js`](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/app/application.js) (Globe application), [`InsTAREELS/main.py`](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/main.py) (Jarvis app), [`InsTAREELS/jarvis/engine.py`](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/jarvis/engine.py) (Command engine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["Input and output"]
  node_jarvis["Jarvis app<br/>[main.py]"]
  node_speech_input["Voice input"]
  node_command_engine["Command engine<br/>[engine.py]"]
  node_text_input["Text input<br/>[main.py]"]
  node_speech_output["Speech output"]
end

subgraph group_execution["Task execution"]
  node_tool_dispatch["Task dispatch"]
  node_desktop["Desktop actions"]
  node_files["File workflows"]
  node_coding["Coding workflows"]
  node_browser["Browser tools"]
  node_media["Media controls"]
end

subgraph group_assistant["Reasoning and recovery"]
  node_planner["Local planning"]
  node_questions["Questions and vision"]
  node_memory[("Task memory")]
  node_supervisor["Health recovery<br/>[main.py]"]
end

subgraph group_globe["God's Eye View"]
  node_gev["Globe application<br/>[application.js]"]
  node_layers["Live data layers"]
  node_analyst["Analyst queries<br/>[analystEngine.js]"]
  node_awareness["Military context"]
  node_annotations["Map annotations"]
  node_maps["Map sources"]
  node_voice["Globe voice"]
  node_sdr["RTL-SDR<br/>[controller.js]"]
  node_route_proxy["Route service<br/>[routes.js]"]
end

subgraph group_integrations["Optional integrations"]
  node_github_tool["GitHub search tool"]
end

node_user(("User"))
node_osrm["OSRM"]
node_webrtc["Realtime service"]
node_github["GitHub API"]

node_user -->|"speaks"| node_speech_input
node_user -->|"enters text"| node_text_input
node_speech_input -->|"transcribes commands"| node_command_engine
node_command_engine -->|"dispatches"| node_tool_dispatch
node_text_input -->|"submits command"| node_tool_dispatch
node_jarvis -->|"coordinates"| node_command_engine
node_jarvis -->|"submits actions"| node_tool_dispatch
node_tool_dispatch -->|"routes actions"| node_desktop
node_tool_dispatch -->|"routes file work"| node_files
node_tool_dispatch -->|"routes coding work"| node_coding
node_tool_dispatch -->|"routes browser work"| node_browser
node_tool_dispatch -->|"routes media work"| node_media
node_tool_dispatch -->|"plans tasks"| node_planner
node_tool_dispatch -->|"answers questions"| node_questions
node_planner -->|"uses task memory"| node_memory
node_jarvis -->|"reports replies"| node_speech_output
node_jarvis -->|"monitors workers"| node_supervisor
node_jarvis -.->|"launches integration"| node_gev
node_gev -->|"displays feeds"| node_layers
node_analyst -->|"queries loaded records"| node_layers
node_awareness -->|"summarizes context"| node_layers
node_gev -->|"manages annotations"| node_annotations
node_gev -->|"controls map sources"| node_maps
node_gev -->|"coordinates voice"| node_voice
node_voice -->|"connects realtime"| node_webrtc
node_gev -->|"controls receiver"| node_sdr
node_route_proxy -->|"requests routes"| node_osrm
node_github_tool -->|"fetches repository file"| node_github

click node_jarvis "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/main.py"
click node_speech_input "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_command_engine "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/jarvis/engine.py"
click node_text_input "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/main.py"
click node_speech_output "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_tool_dispatch "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_desktop "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_files "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_coding "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_browser "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_media "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_planner "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_questions "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_memory "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS"
click node_supervisor "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/main.py"
click node_gev "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/app/application.js"
click node_layers "https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/app/layers"
click node_analyst "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/data/analystEngine.js"
click node_awareness "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/data/militaryAwarenessEngine.js"
click node_annotations "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/annotations/annotationEngine.js"
click node_maps "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/mapStackController.js"
click node_voice "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/voice/realtimeController.js"
click node_sdr "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/sdr/controller.js"
click node_route_proxy "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/server/providers/places/routes.js"
click node_github_tool "https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/superagi-superagi-tools-github-search_repo.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_jarvis,node_speech_input,node_command_engine,node_text_input,node_speech_output,node_user toneBlue
class node_tool_dispatch,node_desktop,node_files,node_coding,node_browser,node_media toneAmber
class node_planner,node_questions,node_memory,node_supervisor,node_github toneMint
class node_gev,node_layers,node_analyst,node_awareness,node_annotations,node_maps,node_voice,node_sdr,node_route_proxy toneRose
class node_github_tool,node_osrm,node_webrtc toneIndigo
```

## Components

### Input and output

- [Jarvis app](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/main.py): `InsTAREELS/main.py`
- [Voice input](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`
- [Command engine](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/jarvis/engine.py): `InsTAREELS/jarvis/engine.py`
- [Text input](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/main.py): `InsTAREELS/main.py`
- [Speech output](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`

### Task execution

- [Task dispatch](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`
- [Desktop actions](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`
- [File workflows](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`
- [Coding workflows](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`
- [Browser tools](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`
- [Media controls](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`

### Reasoning and recovery

- [Local planning](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`
- [Questions and vision](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`
- [Task memory](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS): `InsTAREELS`
- [Health recovery](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/main.py): `InsTAREELS/main.py`

### God's Eye View

- [Globe application](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/app/application.js): `InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/app/application.js`
- [Live data layers](https://github.com/kunalvaghani/jarvis/tree/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/app/layers): `InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/app/layers`
- [Analyst queries](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/data/analystEngine.js): `InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/data/analystEngine.js`
- [Military context](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/data/militaryAwarenessEngine.js): `InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/data/militaryAwarenessEngine.js`
- [Map annotations](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/annotations/annotationEngine.js): `InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/annotations/annotationEngine.js`
- [Map sources](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/mapStackController.js): `InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/mapStackController.js`
- [Globe voice](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/voice/realtimeController.js): `InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/voice/realtimeController.js`
- [RTL-SDR](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/sdr/controller.js): `InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/src/sdr/controller.js`
- [Route service](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/server/providers/places/routes.js): `InsTAREELS/integrations/gods-eye-view-src/gods-eye-view-main/server/providers/places/routes.js`

### Optional integrations

- [GitHub search tool](https://github.com/kunalvaghani/jarvis/blob/main/InsTAREELS/integrations/superagi-superagi-tools-github-search_repo.py): `InsTAREELS/integrations/superagi-superagi-tools-github-search_repo.py`

### Other components

- **User**
- **OSRM**
- **Realtime service**
- **GitHub API**

## Connections

- User → Voice input: speaks
- User → Text input: enters text
- Voice input → Command engine: transcribes commands
- Command engine → Task dispatch: dispatches
- Text input → Task dispatch: submits command
- Jarvis app → Command engine: coordinates
- Jarvis app → Task dispatch: submits actions
- Task dispatch → Desktop actions: routes actions
- Task dispatch → File workflows: routes file work
- Task dispatch → Coding workflows: routes coding work
- Task dispatch → Browser tools: routes browser work
- Task dispatch → Media controls: routes media work
- Task dispatch → Local planning: plans tasks
- Task dispatch → Questions and vision: answers questions
- Local planning → Task memory: uses task memory
- Jarvis app → Speech output: reports replies
- Jarvis app → Health recovery: monitors workers
- Jarvis app → Globe application: launches integration
- Globe application → Live data layers: displays feeds
- Analyst queries → Live data layers: queries loaded records
- Military context → Live data layers: summarizes context
- Globe application → Map annotations: manages annotations
- Globe application → Map sources: controls map sources
- Globe application → Globe voice: coordinates voice
- Globe voice → Realtime service: connects realtime
- Globe application → RTL-SDR: controls receiver
- Route service → OSRM: requests routes
- GitHub search tool → GitHub API: fetches repository file
