# muhammadbinsalman191/mark-li-advanced architecture

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

- Interactive diagram: https://gitdiagram.com/muhammadbinsalman191/mark-li-advanced
- Repository: https://github.com/muhammadbinsalman191/mark-li-advanced

## Overview

Mark-LI Advanced is a local, voice-enabled JARVIS-style desktop assistant. Its main workflow is user interaction through the desktop or microphone, live-session reasoning, tool dispatch to assistant capabilities, and spoken or on-screen results. The README documents plugins, persistent memory, configuration, and a local HTTP dashboard as additional capabilities. The excerpts show session orchestration, memory and action behavior, but not all startup wiring; links for unsampled subsystems are therefore limited to documented relationships.

Main entry points: [`main.py`](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/main.py) (Live Session), [`core/llm_client.py`](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/core/llm_client.py) (LLM Client), [`ui.py`](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/ui.py) (Desktop UI), [`core/stt.py`](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/core/stt.py) (Speech Input)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User Experience"]
  node_desktop["Desktop UI<br/>[ui.py]"]
end

subgraph group_session["Assistant Session"]
  node_session_main["Live Session<br/>[main.py]"]
  node_speech_input["Speech Input<br/>[stt.py]"]
  node_speech_output["Speech Output<br/>[tts.py]"]
  node_llm["LLM Client<br/>[llm_client.py]"]
end

subgraph group_capabilities["Assistant Capabilities"]
  node_actions["Assistant Actions"]
  node_web_search["Web Search<br/>[web_search.py]"]
  node_file_control["File Control<br/>[file_controller.py]"]
  node_vision["Vision and Screen"]
  node_computer["Computer Control"]
end

subgraph group_state["Local State"]
  node_memory["Assistant Memory<br/>[memory_manager.py]"]
  node_config["Runtime Config<br/>[config_manager.py]"]
  node_config_files["Config Files"]
end

subgraph group_extensions["Extensions and Remote"]
  node_plugin_loader["Plugin Loader<br/>[plugin_loader.py]"]
  node_plugins["Plugins"]
  node_dashboard["HTTP Dashboard<br/>[server.py]"]
end

node_user(("User"))
node_gemini{{"Gemini Service"}}
node_local_llm{{"Local LLM Service"}}
node_local_files[("User Files")]
node_remote_user(("Remote Device User"))

node_user -->|"interacts"| node_desktop
node_desktop -->|"session input"| node_session_main
node_session_main -->|"updates UI"| node_desktop
node_session_main -->|"captures speech"| node_speech_input
node_speech_input -->|"transcribes"| node_session_main
node_session_main -->|"requests response"| node_llm
node_llm -->|"returns response"| node_session_main
node_session_main -->|"speaks response"| node_speech_output
node_session_main -->|"dispatches tools"| node_actions
node_session_main -->|"loads and updates"| node_memory
node_session_main -->|"reads settings"| node_config
node_config -->|"reads and writes"| node_config_files
node_session_main -->|"discovers plugins"| node_plugin_loader
node_plugin_loader -->|"loads skills"| node_plugins
node_session_main -->|"dispatches search"| node_web_search
node_session_main -->|"dispatches file tools"| node_file_control
node_session_main -->|"dispatches vision tools"| node_vision
node_session_main -->|"dispatches controls"| node_computer
node_file_control -->|"manages files"| node_local_files
node_remote_user -->|"connects"| node_dashboard
node_llm -.->|"uses API"| node_gemini
node_llm -.->|"uses backend"| node_local_llm

click node_desktop "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/ui.py"
click node_session_main "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/main.py"
click node_speech_input "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/core/stt.py"
click node_speech_output "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/core/tts.py"
click node_llm "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/core/llm_client.py"
click node_actions "https://github.com/muhammadbinsalman191/mark-li-advanced/tree/jarvis-advanced/actions"
click node_web_search "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/actions/web_search.py"
click node_file_control "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/actions/file_controller.py"
click node_vision "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/actions/screen_processor.py"
click node_computer "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/actions/computer_control.py"
click node_memory "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/memory/memory_manager.py"
click node_config "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/memory/config_manager.py"
click node_config_files "https://github.com/muhammadbinsalman191/mark-li-advanced/tree/jarvis-advanced/config"
click node_plugin_loader "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/core/plugin_loader.py"
click node_plugins "https://github.com/muhammadbinsalman191/mark-li-advanced/tree/jarvis-advanced/plugins"
click node_dashboard "https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/dashboard/server.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_desktop,node_user,node_remote_user toneBlue
class node_session_main,node_speech_input,node_speech_output,node_llm,node_local_files toneAmber
class node_actions,node_web_search,node_file_control,node_vision,node_computer toneMint
class node_memory,node_config,node_config_files toneRose
class node_plugin_loader,node_plugins,node_dashboard,node_gemini,node_local_llm toneIndigo
```

## Components

### User Experience

- [Desktop UI](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/ui.py): `ui.py`

### Assistant Session

- [Live Session](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/main.py): `main.py`
- [Speech Input](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/core/stt.py): `core/stt.py`
- [Speech Output](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/core/tts.py): `core/tts.py`
- [LLM Client](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/core/llm_client.py): `core/llm_client.py`

### Assistant Capabilities

- [Assistant Actions](https://github.com/muhammadbinsalman191/mark-li-advanced/tree/jarvis-advanced/actions): `actions`
- [Web Search](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/actions/web_search.py): `actions/web_search.py`
- [File Control](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/actions/file_controller.py): `actions/file_controller.py`
- [Vision and Screen](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/actions/screen_processor.py): `actions/screen_processor.py`
- [Computer Control](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/actions/computer_control.py): `actions/computer_control.py`

### Local State

- [Assistant Memory](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/memory/memory_manager.py): `memory/memory_manager.py`
- [Runtime Config](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/memory/config_manager.py): `memory/config_manager.py`
- [Config Files](https://github.com/muhammadbinsalman191/mark-li-advanced/tree/jarvis-advanced/config): `config`

### Extensions and Remote

- [Plugin Loader](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/core/plugin_loader.py): `core/plugin_loader.py`
- [Plugins](https://github.com/muhammadbinsalman191/mark-li-advanced/tree/jarvis-advanced/plugins): `plugins`
- [HTTP Dashboard](https://github.com/muhammadbinsalman191/mark-li-advanced/blob/jarvis-advanced/dashboard/server.py): `dashboard/server.py`

### Other components

- **User**
- **Gemini Service**
- **Local LLM Service**
- **User Files**
- **Remote Device User**

## Connections

- User → Desktop UI: interacts
- Desktop UI → Live Session: session input
- Live Session → Desktop UI: updates UI
- Live Session → Speech Input: captures speech
- Speech Input → Live Session: transcribes
- Live Session → LLM Client: requests response
- LLM Client → Live Session: returns response
- Live Session → Speech Output: speaks response
- Live Session → Assistant Actions: dispatches tools
- Live Session → Assistant Memory: loads and updates
- Live Session → Runtime Config: reads settings
- Runtime Config → Config Files: reads and writes
- Live Session → Plugin Loader: discovers plugins
- Plugin Loader → Plugins: loads skills
- Live Session → Web Search: dispatches search
- Live Session → File Control: dispatches file tools
- Live Session → Vision and Screen: dispatches vision tools
- Live Session → Computer Control: dispatches controls
- File Control → User Files: manages files
- Remote Device User → HTTP Dashboard: connects
- LLM Client → Gemini Service: uses API
- LLM Client → Local LLM Service: uses backend
