{"id":48469493,"url":"https://github.com/andrewkochulab/jarvis-dashboard","last_synced_at":"2026-04-07T06:01:51.598Z","repository":{"id":342831477,"uuid":"1175331206","full_name":"AndrewKochulab/jarvis-dashboard","owner":"AndrewKochulab","description":"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.","archived":false,"fork":false,"pushed_at":"2026-03-07T20:43:47.000Z","size":2127,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-07T21:43:25.773Z","etag":null,"topics":["ai-agents","claude-code","dashboard","dataviewjs","javascript","obsidian","obsidian-md","obsidian-plugin","pomodoro-timer","productivity"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AndrewKochulab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-07T15:08:35.000Z","updated_at":"2026-03-07T20:43:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/AndrewKochulab/jarvis-dashboard","commit_stats":null,"previous_names":["andrewkochulab/jarvis-dashboard"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/AndrewKochulab/jarvis-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewKochulab%2Fjarvis-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewKochulab%2Fjarvis-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewKochulab%2Fjarvis-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewKochulab%2Fjarvis-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndrewKochulab","download_url":"https://codeload.github.com/AndrewKochulab/jarvis-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewKochulab%2Fjarvis-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31501903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","claude-code","dashboard","dataviewjs","javascript","obsidian","obsidian-md","obsidian-plugin","pomodoro-timer","productivity"],"created_at":"2026-04-07T06:01:49.941Z","updated_at":"2026-04-07T06:01:51.593Z","avatar_url":"https://github.com/AndrewKochulab.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/AndrewKochulab/jarvis-dashboard/main/assets/banner.svg\" alt=\"J.A.R.V.I.S. Dashboard\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eJ.A.R.V.I.S. Dashboard\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA modular AI command center for monitoring Claude Code sessions, voice interaction, analytics, and productivity — across 4 platforms from a single codebase.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Voice Commands \u0026bull; Live Sessions \u0026bull; Agent Fleet \u0026bull; 30-Day Analytics \u0026bull; Focus Timer \u0026bull; Multi-Platform \u0026bull; Configurable Everything\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#see-it-in-action\"\u003eSee it in Action\u003c/a\u003e \u0026bull;\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e \u0026bull;\n  \u003ca href=\"#platforms\"\u003ePlatforms\u003c/a\u003e \u0026bull;\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e \u0026bull;\n  \u003ca href=\"docs/README.md\"\u003eDocumentation\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Why?\n\n| Problem | Jarvis Solution |\n|---|---|\n| Claude Code runs headless in a terminal | Real-time session monitoring with Live Sessions widget |\n| No usage analytics or cost tracking | 30-day stats: sessions, tokens, cost, model breakdown |\n| Voice interaction requires complex setup | One-click voice commands with neural TTS + whisper-cpp STT |\n| AI agents are invisible config files | Visual agent fleet with animated robot avatars |\n| Scattered productivity tools | Focus timer, quick capture, bookmarks — all in one dashboard |\n| Mobile AI access is clunky | Native iOS app with full voice interaction |\n| One-size-fits-all dashboard | Fully configurable layout, theme, and widgets via JSON |\n\n## See it in Action\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/jarvis-realtime-testing.gif\" alt=\"JARVIS Voice Command Demo\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWidget Gallery\u003c/strong\u003e (click to expand)\u003c/summary\u003e\n\n| Widget | Preview |\n|---|---|\n| Voice Command | \u003cimg src=\"assets/widgets/jarvis-voice-command.png\" width=\"600\"\u003e |\n| Live Sessions | \u003cimg src=\"assets/widgets/live-sessions.png\" width=\"600\"\u003e |\n| Agent Cards | \u003cimg src=\"assets/widgets/agent-cards.png\" width=\"600\"\u003e |\n| Focus Timer | \u003cimg src=\"assets/widgets/focus-timer.png\" width=\"300\"\u003e |\n| Quick Capture | \u003cimg src=\"assets/widgets/quick-capture.png\" width=\"300\"\u003e |\n| Activity Analytics | \u003cimg src=\"assets/widgets/activity-analytics.png\" width=\"600\"\u003e |\n| System Diagnostics | \u003cimg src=\"assets/widgets/system-diagnostics.png\" width=\"600\"\u003e |\n| Communication Link | \u003cimg src=\"assets/widgets/communication-link.png\" width=\"600\"\u003e |\n| Quick Launch | \u003cimg src=\"assets/widgets/quick-launch.png\" width=\"300\"\u003e |\n| Mission Control | \u003cimg src=\"assets/widgets/mission-control.png\" width=\"300\"\u003e |\n| Recent Activity | \u003cimg src=\"assets/widgets/recent-activity.png\" width=\"600\"\u003e |\n\n\u003c/details\u003e\n\n## Quick Start\n\n```bash\n# 1. Clone\ngit clone https://github.com/AndrewKochulab/jarvis-dashboard.git\ncd jarvis-dashboard\n\n# 2. Configure\ncp src/config/config.example.json src/config/config.json\n# Edit config.json — set projects.mode to \"auto\" and adjust paths\n\n# 3. Open\n# Place in your Obsidian vault and open \"Jarvis Dashboard.md\"\n```\n\nFor mobile, macOS app, or iOS app setup, see the [Setup Guide](docs/setup/README.md).\n\n## Platforms\n\nJarvis runs on **4 platforms** from one shared JavaScript codebase:\n\n| Platform | Type | Dashboard | Voice | Claude Execution |\n|---|---|---|---|---|\n| **Obsidian Desktop** | DataviewJS note | Full (13 widgets) | Local (Piper/Say) | Local CLI |\n| **Obsidian Mobile** | DataviewJS note | Voice only | Via server | Via server |\n| **macOS** | Tauri 2.0 app | Full (13 widgets) | Local (Piper/Say) | Local (Rust spawn) |\n| **iOS/iPadOS** | SwiftUI app | Voice only | Via server | Via server |\n\n- [Obsidian Setup](docs/obsidian/README.md)\n- [macOS App Build](docs/macos/README.md)\n- [iOS App Build](docs/ios/README.md)\n- [Companion Server](docs/server/README.md) (required for mobile)\n\n## Features\n\n### Voice Command System\n- Full-duplex voice interaction with Claude Code\n- Three TTS engines: **Piper** (neural), **macOS Say**, browser speechSynthesis\n- Speech-to-text via **whisper-cpp** with multi-language auto-detection\n- **Interactive mode** with tool permission cards and question handling\n- Multi-session tab bar with drag \u0026 drop reordering\n- **JARVIS personality** system with customizable prompts\n- [Voice Command docs](docs/widgets/voice-command.md) | [TTS docs](docs/text-to-speech/README.md) | [STT docs](docs/speech-to-text/README.md)\n\n### 13 Widgets\n\n| Category | Widgets |\n|---|---|\n| **AI Interaction** | Voice Command, Live Sessions, Agent Cards |\n| **Analytics** | System Diagnostics, Activity Analytics (heatmap, peak hours, model breakdown) |\n| **Productivity** | Focus Timer, Quick Capture (with voice dictation) |\n| **Navigation** | Quick Launch, Mission Control, Communication Link, Recent Activity |\n| **Chrome** | Header (title, clock, status), Footer |\n\nAll widgets are independently configurable and removable. Control order and layout via the `layout` array in `config.json`. [Widget docs](docs/widgets/README.md)\n\n### Real-time Monitoring\n- Live session tracking with token/cost display, model badges\n- Agent detection and cross-widget status updates\n- 30-day analytics with GitHub-style heatmaps\n- Configurable polling intervals and caching\n\n### Cross-Platform Architecture\n- Shared JavaScript codebase with no build step\n- Platform adapters abstract file system, process, and vault operations\n- Module loading via `new Function(\"ctx\", code)` — no import/export\n- [Architecture docs](docs/architecture/README.md)\n\n### Companion Server\n- WebSocket server for mobile client support\n- TLS with self-signed CA certificate chain\n- Token authentication with timing-safe comparison\n- Claude CLI process management, TTS synthesis, audio transcription\n- Auto-start via macOS LaunchAgent\n- [Server docs](docs/server/README.md) | [Security docs](docs/security/README.md)\n\n## Configuration\n\nFour-file config cascade — only override what you need:\n\n```\nconfig.example.json     (defaults, tracked)\n  → config.json         (personal overrides, gitignored)\n    → config.local.json (credentials, gitignored)\n      → platform overrides\n```\n\nKey customization areas:\n- **15 theme colors** — full UI theming\n- **Layout array** — widget order, grouping, column counts\n- **Projects** — auto-scan or manual project list\n- **Voice** — TTS engine, model, personality prompt\n- **Performance** — polling intervals, animation toggle\n\n[Full config reference](docs/customizations/README.md)\n\n## Documentation\n\nComplete documentation is in the [`docs/`](docs/README.md) folder:\n\n| Section | Description |\n|---|---|\n| [Setup Guide](docs/setup/README.md) | Installation for all platforms |\n| [Architecture](docs/architecture/README.md) | Module system, ctx object, patterns |\n| [API Reference](docs/api/README.md) | WebSocket protocol, Tauri commands |\n| [Security](docs/security/README.md) | TLS, tokens, rate limiting |\n| [Certificates](docs/certificates/README.md) | Certificate creation \u0026 iOS installation |\n| [Companion Server](docs/server/README.md) | Server setup \u0026 LaunchAgent |\n| [Customization](docs/customizations/README.md) | Every config key documented |\n| [TTS](docs/text-to-speech/README.md) / [STT](docs/speech-to-text/README.md) / [Voice Models](docs/voice-models/README.md) | Voice system |\n| [Widgets](docs/widgets/README.md) | All 13 widgets + creating custom ones |\n| [Troubleshooting](docs/troubleshooting/README.md) | Solutions by category |\n\n## Project Structure\n\n```\nsrc/                    Shared source (core, services, widgets)\nshared/                 Cross-platform loader and adapters\ncompanion/              WebSocket server for mobile support\nios/                    iOS SwiftUI app\nmacos/                  macOS Tauri 2.0 app\ndocs/                   Documentation\n```\n\n[Full annotated tree](docs/architecture/project-structure.md)\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Follow the [module contract](docs/architecture/README.md#module-contract) — no import/export, all state via `ctx`\n4. Test in at least one platform (Obsidian is easiest)\n5. Submit a pull request\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewkochulab%2Fjarvis-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewkochulab%2Fjarvis-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewkochulab%2Fjarvis-dashboard/lists"}