A desktop AI assistant with model choice, tools, research, and local control.
ZuraAI is a desktop app for Windows and macOS.
Chat with the models you already pay for (or run locally with Ollama), search the web,
use tools with clear approval steps, and keep your history on your machine.
No ZuraAI account. No cloud sync. Bring your own providers.
Releases · Issues · Contributing · Telemetry · Architecture · Security · Report a security issue
ZuraAI is for people who want one desktop app instead of juggling browser tabs and provider dashboards.
- Use the models you already pay for — or run local ones. Drop your keys in Settings and go.
- Research in the chat. Web search can pull current sources into the conversation with progress and citations.
- Agent mode when you need tools. Web search, code (with approval), MCP, memory, and Windows desktop help when you allow it. Tool steps show up in the chat so you can see what ran.
- Local by default. Chats stay on your computer. API keys use Electron secure storage.
- Desktop polish. Streaming replies, image attachments, pinned chats, a command palette, and local usage views.
- Node.js 18 or newer
- Bun 1.3.14 or newer (see
package.jsonfor the exact range) - Windows or macOS
git clone https://github.com/solnikhil/ZuraAI.git
cd ZuraAI
bun install
bun run devYou do not need a .env file. Add provider keys inside Settings. If you use Ollama, start it locally first (usually http://localhost:11434).
bun run buildUse bun run build:dir if you only need an unpacked app folder.
| Command | What it does |
|---|---|
bun run dev |
Start development |
bun run typecheck |
TypeScript checks |
bun run test |
Unit tests |
bun run test:watch |
Tests in watch mode |
bun run build |
Production Electron package |
bun run build:dir |
Unpacked directory build |
bun run release:checksums |
SHA-256 checksums for release files |
bun run preview |
Preview the renderer build |
Desktop builds are published on GitHub Releases.
There is also a small npm package (zuraai) that installs the matching verified GitHub desktop release when needed, then opens the app through local protocols. Details live in docs/RELEASE.md.
- The UI process is treated as untrusted.
- Sensitive work runs in the Electron main process.
- The UI only talks to main through a small, allowlisted bridge.
- Chats and files stay under Electron’s local user data folder.
- API keys never sit in plain settings JSON when secure storage is available.
- Anonymous analytics is opt-in. See
TELEMETRY.md.
Deeper design notes are in AGENTS.md.
- Read
CONTRIBUTING.md. - Skim
AGENTS.mdif you touch architecture, IPC, storage, or tools. - Run
bun run typecheckandbun run test. - In the PR, call out anything that changes security boundaries or packaging.
MIT. See LICENSE.
This is still early open-source software. Rough edges are expected. Thanks for the patience, feedback, and help.