JARVIS is a powerful, low-latency, and beautifully designed AI-enabled home and desktop assistant. Built as a desktop application using Tauri v2, React, TypeScript, and Rust, JARVIS is engineered for performance, privacy, and extensibility.
- Encrypted Offline Protocol: Full local execution prioritizing privacy.
- AI & MCP Integrations: High-performance local AI coordination using
agent_rsandrig-core. - Parakeet Transcription: Real-time voice listening and local speech-to-text processing using the Parakeet model.
- Telemetry HUD: Real-time monitoring of local CPU, RAM, and network statistics using Rust's
sysinfoand rendered via interactive, fluid Recharts components. - Session Management: Full persistence of chat histories and sessions stored locally in a SQLite database.
- Cloud & Fleet Synchronicity: Coordinate and monitor multiple linked nodes.
- Device Management & WOL: Remotely link new devices and wake them via Wake on LAN (WOL).
- Distributed Automation: Create, edit, and orchestrate automation routines across your local node fleet.
When JARVIS boots, users are prompted with a secure, styled protocol selection overlay to activate either Local Mode or Sync Mode.
| Startup Interface | Protocol Selection |
|---|---|
![]() |
![]() |
| Local Mode (Offline Conversation Interface) | Sync Mode (Online Dashboard Preview) |
|---|---|
![]() |
![]() |
Once inside Local Mode, users have a split terminal-style chat interface on the left and a collapsible Telemetry HUD on the right, providing live performance metrics.
| Collapsible HUD Overview | Custom Metrics Graphs |
|---|---|
![]() |
![]() |
Tip: The HUD can be collapsed or rearranged dynamically for a tailored developer workspace.
JARVIS includes a robust session manager allowing users to rename, create, or delete separate local conversations. File attachment support and MCP tool integrations allow rich commands.
| Chat with MCP Tools | File Attachment |
|---|---|
![]() |
![]() |
| Session List Manager | System Configuration |
|---|---|
![]() |
![]() |
- Framework: React 19 (Vite + TypeScript)
- Styling: Tailwind CSS v4 (Theme variables configured inside the
@themedirective insrc/styles.css, supporting dynamic, interchangeable skins liketheme-amber,theme-blue, andtheme-red). - Animations: Framer Motion for premium micro-animations, fade-ins, and page transitions.
- Visualization: Recharts for live hardware graphs.
- State Management: Zustand stores.
- Framework: Tauri v2
- Database: SQLite (managed locally via
rusqlitewith bundled features). - Transcription: Local speech-to-text powered by the
jarvis-transcriberlibrary and the Parakeet offline model. - Telemetry: System diagnostics using the Rust
sysinfolibrary. - Agents: Integration with LLM frameworks via
agent_rsandrig-core.
src/
├── assets/ # JARVIS branding, icons, and UI sounds
├── components/ # Global, stateless/dumb UI elements (Gauges, Cards, Toggles)
├── features/ # Feature-based domain logic (MCP integrations, node fleet management)
├── hooks/ # useWebSocket, useHardwareStatus, useSystemData
├── layouts/ # DashboardLayout (Titlebar, Sidebar, Notifications)
├── lib/ # Third-party configuration profiles
├── pages/ # Thin route views (DashboardPage, ModeSelectionPage, OfflineDashboardPage)
├── services/ # Bridge layer calling Tauri commands and REST APIs
├── store/ # Global Zustand states (Active Nodes, AI Context)
├── styles.css # Core Tailwind CSS v4 design tokens and layouts
└── types/ # TS Interfaces for Nodes, Devices, and MCP schemas
src-tauri/
├── src/
│ ├── commands/ # Tauri command controller handlers (chat, config, system, voice)
│ ├── domain/ # Configuration, database models, voice and system structs
│ ├── handlers/ # Background daemon workers and transcription loops
│ ├── infrastructure/ # System telemetry collectors and SQLite DB manager
│ ├── lib.rs # App setup, state management, and command registration
│ └── main.rs # Tauri boot entry point
└── tests/ # Integration and unit tests
git clone https://github.com/skaarfundgandr/JARVIS.git
cd JARVIS
bun installTo launch the desktop application:
bun run tauri devTo run only the Vite frontend dev server (default port 1420):
bun run devTo bundle the desktop executable for your operating system:
bun run tauri buildAll Rust commands should be executed from within the src-tauri/ directory.
# Check Rust compilation
cargo check
# Run backend unit and integration tests
cargo test
# Run Rust linter (Clippy)
cargo clippy --all-targets --all-features -- -D warnings
# Run Rust code formatter
cargo fmt --allThis project is licensed under the MIT License - see the LICENSE file for details.











