Commands checked on the official pages and READMEs on 30 Oct 2026. Star counts are from 29 Oct 2026.
What you're building: a local AI assistant that has a brain (Ollama + Qwen3), a chat screen (Open WebUI), ears (faster-whisper), a voice (kokoro-onnx), skills (goose) and memory (Obsidian notes).
Honest caveat: these are separate tools. You install them and wire them together yourself; none of this works as one JARVIS out of the box. Speed depends on your hardware, so start with a small model.
Ollama: https://github.com/ollama/ollama · MIT · 185K★ Qwen3: https://ollama.com/library/qwen3 · Apache-2.0
macOS / Linux:
curl -fsSL https://ollama.com/install.sh | sh
Windows (PowerShell):
irm https://ollama.com/install.ps1 | iex
Start with a small model:
ollama run qwen3:4b
- Ollama's local API runs at
http://localhost:11434. - Skip models tagged
:cloud, because they don't run on your machine.
https://github.com/open-webui/open-webui · Open WebUI License (BSD-3-style with a branding clause; free and self-hosted) · 157K★
You need Python 3.12.
pip install open-webui
open-webui serve
- Open http://localhost:8080 .
- On first run you create a local admin account. It stays on your machine; there is no cloud signup.
- With Ollama running, choose
qwen3:4bin the model picker. To use Ollama on another machine, the README shows theOLLAMA_BASE_URLsetting.
https://github.com/SYSTRAN/faster-whisper · MIT · 26.3K★ · needs Python 3.9+
pip install faster-whisper
python
from faster_whisper import WhisperModel
model = WhisperModel("small", device="cpu", compute_type="int8")
segments, info = model.transcribe("audio.mp3", beam_size=5)
for s in segments: print(s.text)
- It runs on CPU. On an NVIDIA GPU it needs CUDA 12 and cuDNN 9.
https://github.com/thewh1teagle/kokoro-onnx · MIT · 2.8K★ · the Kokoro-82M model is Apache-2.0
pip install -U kokoro-onnx soundfile
wget https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.1/kokoro-v1.0.onnx
wget https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.1/voices-v1.0.bin
python
import soundfile as sf
from kokoro_onnx import Kokoro
kokoro = Kokoro("kokoro-v1.0.onnx", "voices-v1.0.bin")
samples, sr = kokoro.create("Hello, I am your assistant.", voice="af_sarah", speed=1.0, lang="en-us")
sf.write("audio.wav", samples, sr)
https://github.com/aaif-goose/goose · Apache-2.0 · 55.9K★
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash
goose configure
- There is also a desktop app: https://goose-docs.ai/docs/getting-started/installation
- In
goose configure, pickOllama as the provider. Your local models appear automatically, so no API key is needed. Cloud providers do need keys. - goose adds skills through MCP extensions.
https://obsidian.md · free for all purposes, no sign-up needed · not open source
-
Download it from obsidian.md and create a vault (a folder).
-
Your notes are stored locally as plain text Markdown files, so any tool that reads files can use them.
-
Sync and Publish are paid add-ons and you don't need them.
-
Open WebUI ↔ Ollama: verified (Open WebUI README). Your Ollama models show up in its chat.
-
goose ↔ Ollama: verified (goose provider docs).
-
Open WebUI voice (no code): its audio docs (docs.openwebui.com/troubleshooting/audio) say speech-to-text uses a built-in local Whisper when the engine is left empty, and they describe its compute settings as faster-whisper's. So you can talk to it in the browser. In your own Audio settings you can also pick "Kokoro.js (Browser)" for a local in-browser voice. That is Kokoro running in the browser, not the kokoro-onnx package from step 4, which has no verified link to Open WebUI.
-
faster-whisper and kokoro-onnx ↔ goose: not verified. You'd write a small script that sends the transcribed text in and speaks the reply.
-
Obsidian ↔ goose or Open WebUI: not verified as a built-in link. The notes are plain markdown files, so point your tools at the vault folder.