Jarvin is a private, host-run personal AI assistant.
It is designed around one trusted machine doing the real work:
- local LLM inference
- voice processing
- persistence
- tool execution
- integrations
Desktop and phone clients then connect to that host over local network or WireGuard.
- local
llama.cppruntime with optional headless Ollama backend - typed chat with multi-conversation history
- shared React client served at
/app/ - Tauri desktop app
- Tauri Android shell
- remote phone voice:
- phone microphone capture
- host-side transcription
- phone speaker playback of Jarvin replies
- SQLite-backed profile and conversation memory
- reminders and routines
- morning briefs that combine weather, calendar, and reminders
- Google Calendar integration with event CRUD
- DuckDuckGo-backed web research with page fetch and summarization
- safe host-side assistant tools for workspace and repo tasks
- natural-language planners for:
- weather
- calendar
- reminders
- workspace actions
- research
- daily briefs
Jarvin is not trying to become a custom foundation model.
The project is focused on building a strong assistant system around local models:
- voice input and output
- memory
- tools
- integrations
- clients
- planning and follow-up handling
- proactive assistant behavior over time
Create the virtual environment:
py -3.11 -m venv .venvInstall dependencies:
.\.venv\Scripts\python -m pip install -r requirements-gpu-cu128.txt
.\.venv\Scripts\python -m pip install -e .Run the host:
python server.pyThen open one of:
http://127.0.0.1:8000/app/
cd clients\jarvin-ui
npm install
npm run tauri devcd clients\jarvin-ui
npm run build:host
python server.pyThen open:
http://<host-or-wireguard-ip>:8000/app/
cd clients\jarvin-ui
npm run tauri:android:pixel:debugPrimary APK artifact:
clients/jarvin-ui/artifacts/jarvin-mobile-arm64-debug.apk
Weather:
What's the weather in Burnaby near Metrotown?
How about tomorrow?
Calendar:
What's on my calendar today?
Put lunch with Sam on my calendar tomorrow at noon.
Move lunch with Sam back an hour.
Delete lunch with Sam from my calendar.
Reminders and briefs:
Remind me to call mom tomorrow at 5pm.
Every weekday at 8am remind me to stretch.
Give me my morning brief.
Workspace and research:
Could you look through the codebase for include_router?
Pull up backend/api/app.py lines 10 to 30.
Research llama.cpp windows cuda docs for me.
What else did you find?
Default search provider:
- DuckDuckGo Lite
Validate search:
.\.venv\Scripts\python scripts\validate_integrations.py --search-only --query "llama.cpp windows cuda docs"Save your OAuth desktop client JSON at:
secrets/google-calendar-client.json
Then ask Jarvin:
connect my Google Calendar
Validate calendar setup:
.\.venv\Scripts\python scripts\validate_integrations.py --calendar-onlyImportant paths:
server.py: host entrypointconfig.py: settings and.envloadingbackend/api/app.py: FastAPI app assemblybackend/api/routes/chat.py: chat endpointbackend/agent/chat_tools.py: planner and tool routermemory/conversation.py: conversations and profilememory/reminders.py: reminders and routinesclients/jarvin-ui: shared desktop/mobile clientdocs/runbook.md: operational instructionsdocs/architecture.md: current system shapedocs/roadmap.md: product direction and next phases
Backend suite:
.\.venv\Scripts\python -m pytest tests\backend -qIntegration validation:
.\.venv\Scripts\python scripts\validate_integrations.py --search-only
.\.venv\Scripts\python scripts\validate_integrations.py --calendar-onlyGPU diagnostics:
.\.venv\Scripts\python scripts\diagnose_gpu.py