J.A.R.V.I.S. - Personal AI Assistant System
A privacy-first personal AI assistant with 9 LLM providers (Claude, GPT-4, Gemini, Groq, Ollama, OpenRouter, Cursor, GitHub Copilot, Claude Code CLI), 80+ tools, Palace Memory with Knowledge Graph, ambient voice monitoring with GPU transcription, a self-improving learning loop, and 4 fully-featured client apps: Flutter Android app, Next.js web dashboard, system tray daemon, and CLI.
Technical Implementation
J.A.R.V.I.S. (Just A Rather Very Intelligent System) is a fully async Python 3.12 / FastAPI backend with four client frontends. The Python core runs an event-yielding AgentLoop that emits ThinkingEvent, ToolCallEvent, ToolResultEvent, and ResponseEvent, streaming every agent action to all connected UIs in real time. A CommandRouter classifies each request into domains (fast-path for single-domain > 0.8 confidence, plan-path for multi-domain), a ModelRouter dispatches to 9 LLM providers by prefix, and a ToolRegistry semantically selects 5–8 relevant tools per turn (saving ~6,500 tokens per request). The FastAPI backend exposes 25+ route modules (chat, jobs, tasks, workflows, health, voice, meetings, code workspace, ambient, SLI, location, Matrix, WebSocket terminals, Prometheus metrics, MCP servers, and more). The Flutter Android app (Dart, Riverpod) connects over Tailscale or LAN via REST (Dio + JWT AuthInterceptor with single-flight refresh) and 3 WebSocket channels (chat, events, terminal); it has 10 screens — Chat, Terminal, Tasks, Jobs, Workflows, Activity, Health, Locations, Settings — plus Porcupine wake-word voice (STT, Whisper upload, TTS), biometric lock (local_auth), offline DB (Drift/SQLite), flutter_map location, fl_chart analytics, and xterm.js terminal emulation. The Next.js 14 web dashboard (Tailwind CSS, Radix UI, Zustand, TanStack Query) runs on port 3001 and proxies to FastAPI on 8501; it includes a Monaco-powered code workspace (file explorer, Git panel, search, editor tabs), a live meetings view (audio level meter, transcript, summaries), and a Settings shell with 16 panels (Profile, Model, Health, Integrations for Jira/ClickUp/Google/Azure DevOps, Social Media, Ambient Voice, Personal Intelligence, System Log Intelligence, and more). The Palace Memory organises long-term memory into Wings, Rooms, and Drawers (PostgreSQL + SQLite fallback), with a Knowledge Graph for temporal subject→predicate→object triples and a PalaceConsolidator that auto-extracts high-signal facts from every conversation with zero LLM cost. An ambient voice listener (sounddevice → 3-stage VAD → 3-tier diarization → faster-whisper → 8-layer junk filter) runs always-on in the background and sends session transcripts to an LLM to extract action items, decisions, reminders, and summaries. A self-improving loop (ReflectionAgent, SkillExtractor, SkillStore, FailureMemory, LearningWorker) runs every 6 hours, scoring sessions and consolidating reusable skill patterns.
Key Features
Architecture & Patterns
Project Highlights
Technology Stack
Interested in This Project?
Let's discuss how I can help bring similar solutions to your business.