Portfolio@Anshuman791322
Shipping2026

Local AI assistant

A Windows-first Jarvis with on-device inference and voice.

PythonPySide6OllamaWhisperWindows

I wanted a Jarvis that lives on my own machine. Not a wrapper around a hosted API. A real desktop product where the inference, the voice input, and the interface all stay local — and feel like a thing you can hand to someone else.

01

Product shell first

The PySide6 window is the surface the user actually meets. Threaded jobs keep the UI responsive while the model thinks, status bars surface what the model is doing, and a small command palette covers the launch path that would otherwise live in CLI flags.

  • PySide6 desktop window with a docked transcript pane
  • Threaded worker that pushes generation events back to the UI without blocking input
  • Settings sheet that persists model + voice choices across sessions
02

Local inference + voice

Ollama owns model lifecycle — pull, swap, warm. Whisper handles voice input on the same box, so nothing leaves the laptop. The assistant routes commands through a thin tool layer (open paths, summarise files, search local notes) so it feels like a shell, not a chat tab.

  • Ollama for swappable on-device chat models
  • Whisper for streaming voice transcription
  • Local tool layer for file + path commands
Build journal

What I built, decided, traded, and learned.

What I built

PySide6 desktop shell, Ollama bridge, streaming Whisper input, settings sheet, and a small command palette.

Key decisions

On-device only — never call out. Threading model isolates UI from inference. Models are swappable presets, not free text.

Trade-offs

Memory pressure on low-end laptops, ~2 s warm time when swapping models, and no cloud fallback by design.

Outcomes

Runs fully offline, sub-second voice-to-text, six model presets shipped, no telemetry on by default.

100%On-device inference
0API calls
6+Models supported
<250 msVoice latency

Want the source?

The public GitHub repository is the canonical home for Local AI assistant. You can read the commit log, fork it, file an issue, or send a PR.