Skip to content

aviarytech/jarvis

 
 

Repository files navigation

OpenDex

OpenDex

A voice-first, open-source AI assistant for your desktop. Wake it, talk to it, and a tool-using agent talks back — in a cinematic interface you choose.

License: MIT Platforms Electron Vercel AI SDK Stars Latest release

OpenDex — Control your computer with voice

Download

Download for macOS — Apple Silicon   Download for macOS — Intel   Download for Windows   Download the .deb for Debian   Download the AppImage for Linux

Or browse every version on the Releases page.

The app auto-updates: it checks GitHub Releases on launch (and hourly), downloads new versions in the background, and prompts you to restart when one is ready.

What is OpenDex?

OpenDex is a desktop app that turns any LLM into a hands-free, Iron-Man-style voice assistant. Say the wake word (or push to talk), speak naturally, and the agent thinks, uses tools, and replies out loud — streaming its answer into a live visualization.

It's a harness, not a single bot: the model, the voice, the wake/transcription engines, the on-screen theme, the greeting, and the agent's skills are all configurable, and it can run fully offline and free (local speech in, local speech recognition, system voice out) — and on a Mac with Apple Intelligence, even the model runs on-device, so the whole loop is free with no key.

Features

  • 🎙️ Voice-first loop — wake word → listen → think (with tools) → speak, plus natural follow-ups and opt-in barge-in (interrupt mid-reply).
  • 🧠 Bring any model — pick your provider in setup: Apple Intelligence (on-device, free, no key — macOS), your own OpenAI or Anthropic key, or the Vercel AI Gateway (one key → Claude, GPT, Gemini, and more). (An OpenDex hosted subscription — sign in, no keys, cloud-synced — is coming soon.)
  • 🆓 Free & offline option — Vosk wake word + local Whisper transcription (WASM, no signup) and your OS's built-in voice. No data leaves the machine except the LLM call.
  • 🔌 Pluggable voice I/O — wake via push-to-talk, Vosk, or Web Speech; transcribe via local Whisper/Vosk, OpenAI, or Web Speech; speak via ElevenLabs or system TTS.
  • 🎨 Full-interface themes — the theme is the whole UI: a cinematic Jarvis HUD with an animated arc reactor, a minimal Talking Dot, or a Typing Cursor terminal. All react to your voice.
  • 🛠️ Agentic skills with a permission gate — the agent can take real actions (e.g. open apps & URLs); sensitive actions pop an Allow once / Always / Deny prompt that's remembered per skill.
  • 🖥️ Computer-use (opt-in) — let it see the screen and drive the mouse & keyboard to operate apps for you. Works with any vision model (screenshots stream back as images), and stays behind the permission gate.
  • 🔐 Secure by design — API keys are encrypted with your OS keychain and live only in the main process, never in the UI.

Themability

OpenDex is fully theamable, you can change anything about the user interface and make it yours.

OpenDex — Jarvis HUD theme

Screenshots

First-run setup Minimal "typing cursor" theme
Onboarding theme picker Typing cursor theme

Build from source

Requires Node.js 20+ and pnpm.

git clone https://github.com/wassgha/opendex.git
cd opendex
pnpm install
pnpm dev            # launches the OpenDex desktop window

On first launch a short onboarding wizard walks you through choosing a model provider, voice, wake/transcription engine, theme, and greeting. Everything is changeable later from the Settings gear (⚙).

Pick where the thinking happens — every part of the loop can be free/offline:

  • Model: Apple Intelligence (on-device, free, no key — macOS only), your own OpenAI/Anthropic key, or the Vercel AI Gateway (one key, any provider).
  • Voice out: "System voice" (free) or ElevenLabs (key).
  • Voice in: local Whisper/Vosk (free, offline, one-time model download) or OpenAI Whisper (key).
  • Wake: push-to-talk / Vosk (free, offline) or Web Speech (browser).

On a Mac with Apple Intelligence enabled, the whole loop (model + speech + voice) runs locally with no keys at all.

Optional .env (dev convenience)

Keys are normally entered in-app and stored encrypted. For development you can seed them via .env (used only as a fallback):

cp .env.local.example .env
Variable Purpose
AI_GATEWAY_API_KEY chat via the Vercel AI Gateway
OPENAI_API_KEY chat via OpenAI directly, and/or OpenAI Whisper transcription
ANTHROPIC_API_KEY chat via Anthropic (Claude) directly
ELEVENLABS_API_KEY ElevenLabs TTS (skip if using the system voice)
TAVILY_API_KEY web-search tool (optional)

The chat provider needs one of AI_GATEWAY_API_KEY / OPENAI_API_KEY / ANTHROPIC_API_KEY — matching the provider you select. Apple Intelligence needs none.

Skills & permissions

The agent's capabilities are skills — declarative tool bundles. Sensitive ones run behind a permission gate: when the model wants to act, OpenDex pauses and asks, and your choice (Allow once / Always / Never) is remembered. Built-in skills today: Open apps & URLs, and Control the computer (screen capture + mouse/keyboard — opt-in, off by default).

Computer-use setup (macOS): enable Control the computer in Settings → Skills & tools, then grant OpenDex Screen Recording and Accessibility permission in System Settings → Privacy & Security (without them, screenshots come back blank and clicks do nothing). It's powerful — keep the permission on Ask, and "Allow once" covers the whole task it's working on.

Roadmap

  • Electron shell + secure agent/TTS-over-IPC
  • Config, onboarding & OS-keychain key storage
  • Full-interface themes (Jarvis HUD · Talking Dot · Typing Cursor)
  • Pluggable wake-word + speech-to-text (incl. free offline Whisper & Vosk)
  • Skills + permission gate (Open apps & URLs)
  • Computer-use — screen capture + mouse/keyboard control, gated & opt-in
  • Pluggable model providers — Apple on-device, OpenAI/Anthropic keys, AI Gateway
  • OpenDex hosted subscription — sign in, no keys, cloud-synced settings & history
  • MCP servers + more built-in skills (shell, filesystem, …)
  • Signed GitHub releases + auto-update

Scripts

Command Description
pnpm dev run the app with hot reload
pnpm build build main/preload/renderer into out/
pnpm start run the built app
pnpm dist package installers (mac/win/linux) via electron-builder
pnpm typecheck tsc --noEmit
pnpm smoke:chat [briefing] exercise the agent loop without Electron

Tech Stack

Electron · electron-vite · React 19 · Tailwind CSS 4 · Vercel AI SDK v6 · ElevenLabs · Vosk · transformers.js (Whisper) — all local speech engines are WASM. The only native module is nut.js (computer-use input control); it ships prebuilt N-API binaries per platform.

License

MIT — contributions welcome.

About

A fully open-source, extensible, voice-first agentic harness that can control your computer (yes, it has a J.A.R.V.I.S. theme)

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 97.3%
  • CSS 2.1%
  • HTML 0.6%