NOTEDASHBOARD
AndrewKochulab

Jarvis Dashboard

A modular, fully configurable DataviewJS dashboard for Obsidian — monitor Claude Code sessions in real-time, manage AI agent fleets, track 30-day analytics, and boost productivity with focus timer, quick capture, and more.

38 Stars
GitHub

J.A.R.V.I.S. Dashboard

J.A.R.V.I.S. Dashboard

A modular AI command center for monitoring Claude Code sessions, voice interaction, analytics, and productivity — across 4 platforms from a single codebase.

Voice Commands • Live Sessions • Agent Fleet • 30-Day Analytics • Focus Timer • Multi-Platform • Configurable Everything

See it in ActionQuick StartPlatformsFeaturesDocumentation


Why?

ProblemJarvis Solution
Claude Code runs headless in a terminalReal-time session monitoring with Live Sessions widget
No usage analytics or cost tracking30-day stats: sessions, tokens, cost, model breakdown
Voice interaction requires complex setupOne-click voice commands with neural TTS + whisper-cpp STT
AI agents are invisible config filesVisual agent fleet with animated robot avatars
Scattered productivity toolsFocus timer, quick capture, bookmarks — all in one dashboard
Mobile AI access is clunkyNative iOS app with full voice interaction
One-size-fits-all dashboardFully configurable layout, theme, and widgets via JSON

See it in Action

JARVIS Voice Command Demo

Widget Gallery (click to expand)
WidgetPreview
Voice Command
Live Sessions
Agent Cards
Focus Timer
Quick Capture
Activity Analytics
System Diagnostics
Communication Link
Quick Launch
Mission Control
Recent Activity

Quick Start

# 1. Clone
git clone https://github.com/AndrewKochulab/jarvis-dashboard.git
cd jarvis-dashboard

# 2. Configure
cp src/config/config.example.json src/config/config.json
# Edit config.json — set projects.mode to "auto" and adjust paths

# 3. Open
# Place in your Obsidian vault and open "Jarvis Dashboard.md"

For mobile, macOS app, or iOS app setup, see the Setup Guide.

Platforms

Jarvis runs on 4 platforms from one shared JavaScript codebase:

PlatformTypeDashboardVoiceClaude Execution
Obsidian DesktopDataviewJS noteFull (13 widgets)Local (Piper/Say)Local CLI
Obsidian MobileDataviewJS noteVoice onlyVia serverVia server
macOSTauri 2.0 appFull (13 widgets)Local (Piper/Say)Local (Rust spawn)
iOS/iPadOSSwiftUI appVoice onlyVia serverVia server

Features

Voice Command System

  • Full-duplex voice interaction with Claude Code
  • Three TTS engines: Piper (neural), macOS Say, browser speechSynthesis
  • Speech-to-text via whisper-cpp with multi-language auto-detection
  • Interactive mode with tool permission cards and question handling
  • Multi-session tab bar with drag & drop reordering
  • JARVIS personality system with customizable prompts
  • Voice Command docs | TTS docs | STT docs

13 Widgets

CategoryWidgets
AI InteractionVoice Command, Live Sessions, Agent Cards
AnalyticsSystem Diagnostics, Activity Analytics (heatmap, peak hours, model breakdown)
ProductivityFocus Timer, Quick Capture (with voice dictation)
NavigationQuick Launch, Mission Control, Communication Link, Recent Activity
ChromeHeader (title, clock, status), Footer

All widgets are independently configurable and removable. Control order and layout via the layout array in config.json. Widget docs

Real-time Monitoring

  • Live session tracking with token/cost display, model badges
  • Agent detection and cross-widget status updates
  • 30-day analytics with GitHub-style heatmaps
  • Configurable polling intervals and caching

Cross-Platform Architecture

  • Shared JavaScript codebase with no build step
  • Platform adapters abstract file system, process, and vault operations
  • Module loading via new Function("ctx", code) — no import/export
  • Architecture docs

Companion Server

  • WebSocket server for mobile client support
  • TLS with self-signed CA certificate chain
  • Token authentication with timing-safe comparison
  • Claude CLI process management, TTS synthesis, audio transcription
  • Auto-start via macOS LaunchAgent
  • Server docs | Security docs

Configuration

Four-file config cascade — only override what you need:

config.example.json     (defaults, tracked)
  → config.json         (personal overrides, gitignored)
    → config.local.json (credentials, gitignored)
      → platform overrides

Key customization areas:

  • 15 theme colors — full UI theming
  • Layout array — widget order, grouping, column counts
  • Projects — auto-scan or manual project list
  • Voice — TTS engine, model, personality prompt
  • Performance — polling intervals, animation toggle

Full config reference

Documentation

Complete documentation is in the docs/ folder:

SectionDescription
Setup GuideInstallation for all platforms
ArchitectureModule system, ctx object, patterns
API ReferenceWebSocket protocol, Tauri commands
SecurityTLS, tokens, rate limiting
CertificatesCertificate creation & iOS installation
Companion ServerServer setup & LaunchAgent
CustomizationEvery config key documented
TTS / STT / Voice ModelsVoice system
WidgetsAll 13 widgets + creating custom ones
TroubleshootingSolutions by category

Project Structure

src/                    Shared source (core, services, widgets)
shared/                 Cross-platform loader and adapters
companion/              WebSocket server for mobile support
ios/                    iOS SwiftUI app
macos/                  macOS Tauri 2.0 app
docs/                   Documentation

Full annotated tree

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Follow the module contract — no import/export, all state via ctx
  4. Test in at least one platform (Obsidian is easiest)
  5. Submit a pull request

License

MIT

Related

How to Install

  1. Download the dashboard markdown file from GitHub
  2. Drop it into your vault (anywhere)
  3. Install the Homepage plugin and point it at the file
  4. Enable any listed CSS snippets for the intended look
Open Repository

Stats

Stars

38

Forks

7

License

MIT

Last updated 1mo ago

Tags

ai-agentsclaude-codedashboarddataviewjsiosios-appjavascriptmacosmacos-appobsidianpomodoro-timerproductivity