Desktop AI assistant · PythonIn development
JARVIS — Windows AI Assistant
A local Windows AI assistant that runs privately on the user’s own machine. It combines a FastAPI service, a browser-based dashboard, offline voice output and a Claude-based natural-language layer, with an approval step in front of any higher-risk action.
- Type
- Desktop AI assistant · Python
- Status
- In development
My role
Architecture and full-stack development (Python backend, local dashboard, safety model).
Goal
Build a private, safety-first PC assistant — one that keeps automation on the local machine, asks before doing anything risky, and never exposes secrets to the browser.
What was built
- A local FastAPI service (bound to 127.0.0.1:5555) with a deterministic command router and a tool registry that carries permission levels.
- A local browser dashboard (system health, chat, actions, logs, memory, voice and help pages) rendered from Jinja2 templates.
- An action-approval system: higher-risk actions become pending previews that must be explicitly confirmed or cancelled, expire after 10 minutes, and are logged.
- Offline voice output (pyttsx3) and a Claude-based brain with a local fallback when no API key is set, plus SQLite-backed memory and conversation history.
Technical approach
- Local-first by design: the dashboard binds only to localhost, never exposes the API key to the browser, and uses no external CDNs, analytics or tracking.
- Layered safety: tools are classified safe / approval-required / blocked, and risky actions cannot bypass the permission system.
- Configuration through Pydantic settings and a .env file, with structured logging and a pytest suite.
Technologies
- Python
- FastAPI
- Uvicorn
- Jinja2
- SQLite
- pyttsx3
- Anthropic SDK
- Pydantic
