A voice-controlled desktop AI assistant for Windows.
Say the wake word — then just talk to your computer.
Sentinel AI is a desktop assistant you drive by voice or chat. It listens for a wake word ("Hey Jarvis" by default, custom models supported), transcribes your speech with Groq Whisper at ~216× real-time, routes the request through a LangGraph supervisor to a specialist agent, acts on your machine, and speaks the answer back — starting before the full response is even generated, and interruptible mid-sentence by saying the wake word again.
Everything is local-first: conversation history, notes, and settings live in SQLite on your machine; API keys live in the Windows Credential Manager. No accounts, no cloud database.
| Agent | Purpose | Tools |
|---|---|---|
| 🌐 Browser | Web search (Tavily), weather, news, translation, stocks, Wikipedia | 13 |
| 🎵 Music | Spotify playback and discovery | 9 |
| 📅 Meeting | Google Meet and Calendar | 5 |
| Gmail: read, search, draft, send | 5 | |
| 📝 Notes | Local notes (SQLite) | 6 |
| 📁 Files | Browse, tree view, find, open, and read files; Downloads/Documents/etc. | 8 |
| ⚙️ System | Volume, brightness, WiFi/Bluetooth, apps, workspaces, clipboard, wallpaper, windows, media keys, screenshots, power | 27 |
The System agent's tools come from mcp-windows/ — a
standalone MCP server built on real OS APIs
(no UI automation hacks) that also works in Claude Desktop or any MCP client.
Bring your own model: Groq (default), Cerebras, Azure OpenAI, OpenAI, Ollama (fully local), or Zhipu AI — switchable live from Settings with no restart, with per-agent assignment and automatic fallback. Groq's free tier is enough to run everything, including speech-to-text.
"Hey Jarvis" ──► wake word (openWakeWord, on-device)
│ chime
speech → text (Groq Whisper large-v3-turbo)
│
supervisor (LangGraph, structured routing)
│
agent runs its tools ──► supervisor ──► reply
│
streaming TTS (ElevenLabs, barge-in aware)
┌─────────────────────────────────────────────────┐
│ app/ — Tauri 2 + React desktop app │
│ chat · voice toggle · live agent trace · │
│ settings · activity log │
└──────────────┬──────────────────────────────────┘
│ WebSocket (events/streaming) + REST
┌──────────────▼──────────────────────────────────┐
│ sentinel_core/ — async FastAPI service │
│ voice pipeline · LangGraph agents · SQLite · │
│ keyring secrets · live settings reload │
└──────┬──────────────────────────┬───────────────┘
│ MCP (stdio) │ HTTPS
┌──────▼───────────┐ ┌──────────▼────────────────┐
│ mcp-windows/ │ │ Groq · Cerebras · Spotify│
│ Windows control │ │ Google · Tavily · Eleven │
└──────────────────┘ └───────────────────────────┘
Requirements: Windows 11, uv, Node 20+, Rust (for the app shell).
# 1. Core service
uv run --group core python -m sentinel_core
# 2. Desktop app (second terminal)
cd app && npm install && npm run tauri devOn first launch, open Settings and paste an API key — a free Groq key unlocks chat, all agents, and speech-to-text. Add an ElevenLabs key for premium voices (offline TTS is the fallback). Keys go straight to the Windows Credential Manager — never to files.
See packaging/README.md — three steps produce a
self-contained NSIS installer (~120 MB); the target machine needs no Python,
Node, or Rust.
- Speak after the chime; say the wake word during playback to interrupt
- Custom wake word: train one in ~1 hour (free) with
openWakeWord's Colab notebook,
then point
WAKEWORD_MODELat the.onnx CONTINUOUS_LISTENING=trueenables follow-ups without repeating the wake word (off by default — it will treat ambient speech as commands)
- Auto-update (Tauri updater + GitHub Releases)
- Custom "Sentinel" wake-word model
- Streaming STT (sub-1.5s voice turns)
- Crash reporting
CLAUDE.md/AGENTS.md— contributor guidesREBUILD_PLAN.md— the v2 rebuild plan and auditmcp-windows/README.md— the Windows MCP server, incl. Claude Desktop setupdocs/— historical design docs from the v1 prototype