Speak.
It answers.
Voice first, synced across every device, running on your own server for zero marginal cost.
Hold. Talk. Release.
Push to talk
Hold Space or the mic. Speech is transcribed on your device or by Whisper on your own server.
Interrupt anytime
Start talking again and JARVIS stops speaking and cancels the answer in flight.
Sentence by sentence
Replies are spoken while they stream, so the first words arrive in about a second.
Never out of a model.
A chain, not a vendor
OpenCode Go first, NVIDIA NIM next, a local model last. Circuit breakers skip what is down.
Failover mid-sentence
If a provider dies while answering, the next one continues from the exact words already said.
Tools with permissions
Low-risk tools run, medium ones ask, high ones need you to type CONFIRM on any device.
One Core. Every screen.
Real-time sync
Every change is a sequenced op. Devices apply it optimistically and resume from a cursor.
Phone, watch, browser
Each device declares what it can do, and the Core adapts every reply to it.
Your machine too
A local agent exposes whitelisted git and file tools. Nothing else runs.
It knows you. Only you.
Memory that stays home
Facts, people and projects are embedded locally in Postgres, never sent to a vendor to store.
Projects and connectors
Group chats into projects with their own instructions, and let JARVIS read your mail and deployments.
Zero marginal cost
Free tiers and your own hardware. The bill for a question is zero.
FastAPI, a WebSocket hub and Postgres with pgvector. One source of truth.
OpenCode Go, NVIDIA NIM, then a local model. Failover in the middle of a sentence.
Push-to-talk with Whisper and Piper on your server, or speech on the device.
Facts, people and projects, embedded locally and recalled when they matter.
Email, Vercel deployments and any MCP server, read-only by default.
Browser, phone, watch, and a local agent with whitelisted tools.