Jarvis runs from the menu bar and combines a React chat workspace with an Electron main process that owns tools, storage, and system integrations. It supports local Ollama models alongside hosted providers through OpenRouter and OpenCode Go, so work can stay on-device or move to the cloud when needed.
Beyond chat, Jarvis handles cross-app voice dictation with a personal vocabulary that learns from recurring corrections, web search and page fetching, Notion search and page updates, document attachments with Markdown and math rendering, and a separate Jarvis-owned browser workspace for assisted browsing.
Building Jarvis taught me how much desktop assistants live or die on process boundaries and permissions. Local models, voice, and tools only feel seamless when Electron, the sidecar, and macOS APIs are designed around those constraints from the start.