Metadata-Version: 2.4
Name: dodaios
Version: 4.1.1
Summary: Turn your computer into an AI agent that coordinates apps, tools, models, and other agents
Author: Ruben Lütke
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/Dodaios/Dodaios
Project-URL: Repository, https://github.com/Dodaios/Dodaios
Project-URL: Issues, https://github.com/Dodaios/Dodaios/issues
Project-URL: Documentation, https://github.com/Dodaios/Dodaios/blob/main/README.md
Project-URL: Changelog, https://github.com/Dodaios/Dodaios/blob/main/CHANGELOG.md
Project-URL: Discord, https://discord.gg/x7USduHxbc
Keywords: voice-assistant,ai-agent,agents,llm,orchestrator,speech-to-text,text-to-speech,wake-word,computer-use,automation
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Utilities
Requires-Python: <3.15,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
License-File: third_party/bezier-js/LICENSE
License-File: third_party/hermes-agent/LICENSE
License-File: third_party/lobe-icons/LICENSE
License-File: third_party/maath/LICENSE
License-File: third_party/onnxruntime/LICENSE
License-File: third_party/pierre-trees/LICENSE
License-File: third_party/radix-ui/LICENSE
License-File: third_party/react-arborist/LICENSE
License-File: third_party/react-force-graph/LICENSE
License-File: third_party/react-remove-scroll-bar/LICENSE
License-File: third_party/react-three-fiber/LICENSE
License-File: third_party/svgl/LICENSE
License-File: third_party/t3code/LICENSE
License-File: third_party/troika-fflate/LICENSE
License-File: third_party/typr/LICENSE
License-File: third_party/victory-vendor/LICENSE
License-File: third_party/woff2otf/LICENSE
License-File: third_party/woff2otf/NOTICE.txt
License-File: third_party/onnxruntime/ThirdPartyNotices.txt
License-File: dodaios/ui/web/frontend/src/assets/octicons-LICENSE.txt
Requires-Dist: tzdata>=2025.2
Requires-Dist: anthropic>=0.96
Requires-Dist: openai>=1.30
Requires-Dist: google-genai>=1.0
Requires-Dist: anyio>=4.14.2
Requires-Dist: json-repair>=0.30
Requires-Dist: charset-normalizer>=3.4
Requires-Dist: jedi>=0.19
Requires-Dist: Send2Trash>=1.8.3
Requires-Dist: cryptography>=50.0.2
Requires-Dist: pydantic<3.0,>=2.9
Requires-Dist: pydantic-settings>=2.6
Requires-Dist: pyyaml>=6.0
Requires-Dist: structlog>=24.4
Requires-Dist: loguru>=0.7
Requires-Dist: keyring>=25.5
Requires-Dist: asyncssh[bcrypt]>=2.24.0
Requires-Dist: pyjwt>=2.14.0
Requires-Dist: urllib3>=2.8.0
Requires-Dist: sounddevice>=0.5
Requires-Dist: aiortc>=1.13; sys_platform != "win32" or platform_machine != "ARM64"
Requires-Dist: av==15.1.0; sys_platform == "darwin" and platform_machine == "arm64"
Requires-Dist: numpy<2.2,>=1.26; python_version < "3.14" and (sys_platform != "win32" or platform_machine != "ARM64")
Requires-Dist: numpy<2.4,>=2.3.5; python_version >= "3.14" or (sys_platform == "win32" and platform_machine == "ARM64")
Requires-Dist: scipy>=1.14
Requires-Dist: audioop-lts; python_version >= "3.13"
Requires-Dist: openwakeword>=0.6; sys_platform != "linux" and (sys_platform != "darwin" or (python_version < "3.14" and platform_machine == "arm64"))
Requires-Dist: openwakeword>=0.6; sys_platform == "linux" and platform_machine == "x86_64" and python_version < "3.12"
Requires-Dist: onnxruntime<1.24,>=1.17; sys_platform == "darwin" and python_version < "3.14" and platform_machine == "arm64"
Requires-Dist: onnxruntime>=1.17; sys_platform != "darwin"
Requires-Dist: vosk<0.3.45,>=0.3.44; sys_platform != "win32" or platform_machine != "ARM64"
Requires-Dist: elevenlabs>=1.5
Requires-Dist: psutil>=6.1
Requires-Dist: pillow>=12.3.0
Requires-Dist: opentelemetry-api>=1.28
Requires-Dist: opentelemetry-sdk>=1.28
Requires-Dist: prometheus-client>=0.21
Requires-Dist: httpx>=0.27
Requires-Dist: ddgs==9.14.3
Requires-Dist: aiofiles>=24.1
Requires-Dist: aiolimiter>=1.1
Requires-Dist: tenacity>=9.0
Requires-Dist: mcp<2,>=1.30.0
Requires-Dist: rich>=13.9
Requires-Dist: typer>=0.12
Requires-Dist: platformdirs>=4
Requires-Dist: click>=8.1
Requires-Dist: fastapi>=0.115
Requires-Dist: uvicorn>=0.32
Requires-Dist: websockets>=13
Requires-Dist: filelock>=3.16
Requires-Dist: jsonschema>=4.23
Requires-Dist: packaging>=24.0
Requires-Dist: markdown>=3.5
Requires-Dist: num2words>=0.5.13
Requires-Dist: jinja2>=3.1
Requires-Dist: croniter>=6.0
Requires-Dist: gitpython>=3.1.60
Requires-Dist: watchdog>=5.0; (sys_platform != "darwin" or python_version < "3.14") and (sys_platform != "win32" or platform_machine != "ARM64")
Requires-Dist: tomlkit>=0.12
Requires-Dist: aiosqlite>=0.21
Requires-Dist: pypdf>=6.16.1
Requires-Dist: python-telegram-bot<23,>=22
Provides-Extra: trigger-streams
Requires-Dist: aiokafka<1,>=0.12; extra == "trigger-streams"
Requires-Dist: aio-pika<10,>=9; extra == "trigger-streams"
Requires-Dist: paho-mqtt<3,>=2.1; extra == "trigger-streams"
Requires-Dist: redis<9,>=5; extra == "trigger-streams"
Provides-Extra: dev
Requires-Dist: dodaios[desktop,local-voice]; extra == "dev"
Requires-Dist: pytest>=8.3; extra == "dev"
Requires-Dist: pytest-asyncio>=0.24; extra == "dev"
Requires-Dist: pytest-cov>=6.0; extra == "dev"
Requires-Dist: hypothesis>=6.100; extra == "dev"
Requires-Dist: ruff>=0.7; extra == "dev"
Requires-Dist: mypy>=1.13; extra == "dev"
Requires-Dist: pyinstaller>=6.11; extra == "dev"
Provides-Extra: full
Requires-Dist: dodaios[channels,desktop,desktop-macos,local-voice,telephony]; extra == "full"
Provides-Extra: telephony
Requires-Dist: twilio>=8.0; extra == "telephony"
Provides-Extra: channels
Requires-Dist: discord.py<3,>=2; extra == "channels"
Provides-Extra: desktop
Requires-Dist: global-hotkeys>=0.1.7; sys_platform == "win32" and extra == "desktop"
Requires-Dist: pywinauto>=0.6.9; sys_platform == "win32" and extra == "desktop"
Requires-Dist: pywin32>=308; sys_platform == "win32" and extra == "desktop"
Requires-Dist: pywinpty>=2.0; sys_platform == "win32" and extra == "desktop"
Requires-Dist: win10toast-click>=0.1.2; sys_platform == "win32" and extra == "desktop"
Requires-Dist: pycaw>=20240210; sys_platform == "win32" and extra == "desktop"
Requires-Dist: comtypes>=1.2; sys_platform == "win32" and extra == "desktop"
Requires-Dist: winrt-runtime>=3.2; sys_platform == "win32" and extra == "desktop"
Requires-Dist: winrt-Windows.Foundation>=3.2; sys_platform == "win32" and extra == "desktop"
Requires-Dist: winrt-Windows.Foundation.Collections>=3.2; sys_platform == "win32" and extra == "desktop"
Requires-Dist: winrt-Windows.Media.Control>=3.2; sys_platform == "win32" and extra == "desktop"
Requires-Dist: pystray>=0.19; extra == "desktop"
Requires-Dist: pywebview>=5.3; extra == "desktop"
Requires-Dist: pynput>=1.7; (sys_platform == "darwin" or sys_platform == "win32") and extra == "desktop"
Requires-Dist: ptyprocess>=0.7; sys_platform != "win32" and extra == "desktop"
Requires-Dist: pyautogui>=0.9.54; extra == "desktop"
Requires-Dist: mss>=10.0; extra == "desktop"
Requires-Dist: pyside6-essentials>=6.7; (sys_platform != "linux" or platform_machine != "aarch64") and extra == "desktop"
Requires-Dist: pyside6-addons>=6.7; (sys_platform != "linux" or platform_machine != "aarch64") and extra == "desktop"
Requires-Dist: av>=14; (sys_platform != "win32" or platform_machine != "ARM64") and extra == "desktop"
Requires-Dist: SoundCard>=0.4.6; (sys_platform == "win32" or sys_platform == "linux") and extra == "desktop"
Requires-Dist: tkinterdnd2==0.4.2; extra == "desktop"
Provides-Extra: desktop-linux
Requires-Dist: pynput>=1.7; sys_platform == "linux" and extra == "desktop-linux"
Provides-Extra: desktop-macos
Requires-Dist: pyobjc-framework-Quartz>=10; sys_platform == "darwin" and extra == "desktop-macos"
Requires-Dist: pyobjc-framework-ApplicationServices>=10; sys_platform == "darwin" and extra == "desktop-macos"
Requires-Dist: pyobjc-framework-Accessibility>=10; sys_platform == "darwin" and extra == "desktop-macos"
Requires-Dist: pyobjc-framework-AVFoundation>=10; sys_platform == "darwin" and extra == "desktop-macos"
Requires-Dist: pyobjc-framework-ScreenCaptureKit>=10; sys_platform == "darwin" and extra == "desktop-macos"
Provides-Extra: local-voice
Requires-Dist: webrtcvad-wheels>=2.0; (python_version < "3.14" and (sys_platform != "win32" or platform_machine != "ARM64")) and extra == "local-voice"
Requires-Dist: faster-whisper>=1.0; ((sys_platform != "win32" or platform_machine != "ARM64") and (sys_platform != "darwin" or python_version < "3.14")) and extra == "local-voice"
Requires-Dist: av==15.1.0; (sys_platform == "darwin" and platform_machine == "arm64") and extra == "local-voice"
Requires-Dist: sherpa-onnx<2,>=1.13.3; (sys_platform != "win32" or platform_machine != "ARM64") and extra == "local-voice"
Provides-Extra: cuda
Requires-Dist: nvidia-cublas-cu12<13,>=12.4; sys_platform != "darwin" and extra == "cuda"
Requires-Dist: nvidia-cudnn-cu12<10,>=9; sys_platform != "darwin" and extra == "cuda"
Provides-Extra: tts-eval
Requires-Dist: faster-whisper>=1.0; ((sys_platform != "win32" or platform_machine != "ARM64") and (sys_platform != "darwin" or python_version < "3.14")) and extra == "tts-eval"
Requires-Dist: av==15.1.0; (sys_platform == "darwin" and platform_machine == "arm64") and extra == "tts-eval"
Dynamic: license-file

<p align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Dodaios/Dodaios/main/assets/brand/dodaios-logo-on-dark.svg" />
    <img alt="Dodaios" src="https://raw.githubusercontent.com/Dodaios/Dodaios/main/assets/brand/dodaios-logo-on-light.svg" width="112" />
  </picture>
</p>

<h1 align="center">Dodaios</h1>

<p align="center">
  <strong>English</strong> ·
  <a href="https://github.com/Dodaios/Dodaios/blob/main/README.zh-CN.md">简体中文</a>
</p>

<!-- canonical tagline: keep in sync with GitHub description, dodaios.ai and X bio (docs/rename/repo-metadata-proposal.md) -->
<p align="center"><strong>Dodaios is an open-source agent OS for your desktop: it runs your coding agents, browser and apps by voice or chat, on your own machine.</strong></p>

<p align="center">Formerly <strong>Personal Jarvis</strong>. Same project, same license, new name (<a href="https://dodaios.ai/blog/personal-jarvis-is-now-dodaios/">why</a>).</p>

<p align="center"><img src="https://raw.githubusercontent.com/Dodaios/Dodaios/main/assets/demo/readme/dodaios-demo.gif" alt="Dodaios: three coding agents working side by side in the Agentic IDE, with the browser, files and a Git diff" width="800" /></p>

<p align="center">
  <a href="https://pypi.org/project/dodaios/"><img alt="PyPI" src="https://img.shields.io/pypi/v/dodaios?labelColor=0A0A0A&amp;color=F7F7F4" /></a>
  <a href="https://github.com/Dodaios/Dodaios/blob/main/LICENSE"><img alt="Apache 2.0" src="https://img.shields.io/badge/License-Apache_2.0-F7F7F4?labelColor=0A0A0A" /></a>
  <a href="https://github.com/Dodaios/Dodaios/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Dodaios/Dodaios/actions/workflows/ci.yml/badge.svg" /></a>
  <a href="https://discord.gg/x7USduHxbc"><img alt="Discord" src="https://img.shields.io/badge/Discord-join-F7F7F4?labelColor=0A0A0A&amp;logo=discord&amp;logoColor=white" /></a>
</p>

<p align="center">
  <a href="#install"><strong>Install</strong></a> ·
  <a href="#why-dodaios">Why Dodaios</a> ·
  <a href="#code-by-talking">Code by talking</a> ·
  <a href="#from-one-prompt-to-a-merged-pull-request">Workflow</a> ·
  <a href="#everything-in-one-app">Features</a> ·
  <a href="https://github.com/Dodaios/Dodaios/blob/main/docs/product/start-here/welcome-to-dodaios.md">Docs</a> ·
  <a href="https://dodaios.ai">Website</a> ·
  <a href="https://discord.gg/x7USduHxbc">Discord</a> ·
  <a href="https://x.com/dodaios">X</a>
</p>

<p align="center">If Dodaios is useful to you, a <a href="https://github.com/Dodaios/Dodaios">star on GitHub</a> helps other people find it.</p>

<p align="center"><sub>No API key needed if you have a Claude or ChatGPT subscription, or a local model.</sub></p>

---

## Install

**Windows (PowerShell)**

```powershell
irm https://raw.githubusercontent.com/Dodaios/Dodaios/main/install/install.ps1 | iex
```

**macOS and Linux**

```bash
curl -fsSL https://raw.githubusercontent.com/Dodaios/Dodaios/main/install/install.sh | bash
```

Nothing to install first, no GPU needed. Bring one API key, a Claude or ChatGPT
subscription, or a local model. Desktop installers and the server setup are
under [more ways to install](#more-ways-to-install).

## Why Dodaios

- **Local, no account.** The app and your data stay on your machine. There is no sign-up and no cloud of ours between you and your models.
- **Any model or subscription.** Hosted models, local models through Ollama, or the Claude and ChatGPT plans you already pay for.
- **Many coding agents side by side.** Claude Code, Codex, OpenCode and more run in live panes you can watch and steer.
- **Voice.** Your own wake phrase, live conversations and dictation, with speech recognition that can run offline.

|  | Dodaios | Coding-agent CLIs in separate terminals | Hosted chat assistants |
|---|---|---|---|
| Runs on your machine | Yes. Models can be local or hosted | The CLI runs locally, the model is usually hosted | No, it runs in the provider's cloud |
| Several coding agents side by side | Yes, in live panes with call signs (T1, T2) | One terminal per agent, switched by hand | No coding-agent panes |
| Voice | Wake phrase, live conversation, dictation | Varies by tool | Varies by provider |
| Open source | Yes, Apache 2.0 | Varies: Codex CLI and OpenCode are, Claude Code is not | Usually not |

## Code by talking

Open a project, put Claude Code, Codex or OpenCode in a few panes, and talk to
them. Each pane has a call sign, so you steer them like a team:

> "T1, run the tests."<br />
> "T2, fix whatever T1 finds."<br />
> "T3, write the changelog for this release."<br />
> "What is T2 doing right now?"

- **You speak, Dodaios writes the prompt.** It turns your sentence into a full,
  project-aware brief and types it into the right pane.
- **Same job or split job.** "Tell T1 and T2 to run the same checks" sends one
  instruction; "Have T1 and T2 split the audit" hands out separate parts.
- **New panes on request.** Ask for more agents and Dodaios opens and briefs
  them. Panes you did not name stay untouched.
- **No guessing.** If a call sign is unclear, Dodaios asks before it sends
  anything, and every pane shows whether your instruction really arrived.
- **Hang up, the work goes on.** An instruction you already gave is still
  delivered, and the agents keep working after the call ends.

It uses the subscriptions you already pay for, and every pane is still a real
terminal you can type into. See the
[Agentic IDE guide](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/agentic-ide.md#send-clear-work).

## From one prompt to a merged pull request

1. **Plan with the lead agent.** Say what you want, by voice or in chat. The lead agent asks what it needs and hands the work to the right agent or pane.
2. **Build in parallel.** Claude Code, Codex, OpenCode and six more coding agents run side by side in live panes, each on its own branch in its own git worktree if you want.
3. **Review every change.** Diffs, source control and an editor sit next to the panes, so you read each line before it lands.
4. **Ship from the Git panel.** Branches, pull requests, CI checks and merges, without switching to the browser.
5. **Hand off the rest.** Assistant agents, built in or running on Hermes and OpenClaw, write the release notes, draft the launch posts and keep their routines going.
6. **Remember it all.** A local memory wiki keeps the context of every chat, agent and project for next time.

## Everything in one app

<table>
  <tr>
    <td width="33%"><strong>Agentic IDE</strong><br />Every coding agent in live terminal panes, side by side.</td>
    <td width="33%"><strong>Git and pull requests</strong><br />Diffs, branches, PRs and CI checks built in.</td>
    <td width="33%"><strong>Lead agent</strong><br />One assistant that plans, delegates and reports back.</td>
  </tr>
  <tr>
    <td><strong>Agent team</strong><br />Specialists with their own chat, tools, schedule and memory.</td>
    <td><strong>Hermes and OpenClaw</strong><br />Run agents on the open agent runtimes you already use.</td>
    <td><strong>Voice</strong><br />Wake word, live conversations, dictation and phone calls.</td>
  </tr>
  <tr>
    <td><strong>Computer use</strong><br />Clicks, types and reads your desktop and browser.</td>
    <td><strong>Memory</strong><br />A local wiki your agents read, write and cite.</td>
    <td><strong>Plugins, MCP and skills</strong><br />More than 40 one-click integrations, or bring your own.</td>
  </tr>
  <tr>
    <td><strong>Any model</strong><br />Hosted, local, or your Claude and ChatGPT subscriptions.</td>
    <td><strong>Routines</strong><br />Agents do recurring work on a schedule, without being asked.</td>
    <td><strong>Artifacts</strong><br />Every report, page and file your agents make, in one place.</td>
  </tr>
</table>

It is free and open source, and it runs on your own machine: Windows, macOS,
Linux, or a server without a screen. You do not need an account, and there is
no cloud of ours between you and your models. Every action that could change
your system waits for your approval.

## Run every coding agent at once

https://github.com/user-attachments/assets/290a8687-f925-4bb1-ac4c-0f23ea948a07

<p align="center"><sub>A real recording of the Agentic IDE: three agents at work, your own Chrome in the side panel, files, Git diff and a second workspace.</sub></p>

The Agentic IDE turns one screen into a room full of coding agents. You open a
project, split the screen into panes, and give each pane its own coding agent.
Every pane gets a short call sign such as T1 or T2, so you can steer them
without touching the keyboard. You might say "Tell T1 to write the tests",
"What is T2 working on?" or "Send the fix plan to all panes".

- Dodaios finds the coding tools you already have installed and starts any of
  them in a pane with one key. You keep using the subscriptions you pay for.
- You can send the same task to several panes and compare what comes back.
- You can talk to Dodaios while the agents type, and it passes your brief to the
  right pane by its call sign.
- Every pane is a real terminal, so you can type into it yourself at any time.

The [Agentic IDE guide](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/agentic-ide.md) has the details.

## A team of agents that keeps working

Dodaios Agents are specialists you create with one click and keep for as long as
you like: a researcher, a release manager, a marketing writer, or whatever your
work needs.

- Each agent has one chat that never ends, so tomorrow you continue where you
  stopped today.
- Agents keep private notes on what they learned from their own work, and they
  get better at your tasks over time.
- Give an agent a routine and it does the work on schedule, without being asked.
- Files, reports and plans they produce land in Artifacts, and you can see every
  tool they used along the way.
- Longer coding missions run in their own copy of your repository (a git
  worktree), can split into parallel workers, and pass a review before you see
  the result.

Read more in the [Agents guide](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/dodaios-agents.md),
[how agents learn](https://github.com/Dodaios/Dodaios/blob/main/docs/agent-society/self-learning.md)
and [routines](https://github.com/Dodaios/Dodaios/blob/main/docs/routines.md).

## Talk to your computer

You pick your own wake phrase, such as "Hey Nova", "Computer" or anything else,
and then you talk.

- Conversations are live and take turns naturally. Mid-sentence you can ask it
  to open a website, check your calendar or start an agent.
- Dictation types what you say into any app and learns your words from a
  personal dictionary.
- Phone calls go through your own number. You can call Dodaios, or let it call
  someone for you once you approve.
- Speech recognition and voices can run fully offline. Hosted voices are
  optional.

Read more in the [voice guide](https://github.com/Dodaios/Dodaios/blob/main/docs/product/everyday-use/voice-conversations.md)
and the [dictation guide](https://github.com/Dodaios/Dodaios/blob/main/docs/product/everyday-use/dictation.md).

## Connect your tools

- Install plugins from the marketplace with one sign-in in your browser, or add
  any MCP server yourself.
- Dodaios finds command-line tools such as GitHub, Vercel, Supabase, Stripe,
  Docker and the cloud CLIs, and signs you in to them from the app.
- Skills are reusable instructions that Dodaios picks up when your request fits
  one.
- You can reach Dodaios from Telegram and Discord.
- The `dodaios` command and a local API give your own scripts, and other agents,
  the same control you have.

Read more about [plugins](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/plugins.md),
[MCP](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/mcp-connections.md),
[command-line tools](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/cli-connections.md)
and the [Dodaios CLI](https://github.com/Dodaios/Dodaios/blob/main/docs/dodaios-cli.md).

## You stay in control

Every action Dodaios takes passes a risk check with four levels: safe, monitor,
ask and block. Anything that could change your system waits for your approval,
and every run is recorded, so you can see later exactly what happened. Your keys
are kept in your operating system's credential store. Nothing leaves your
machine unless you connect a service that needs it.

Read more about [safety and approvals](https://github.com/Dodaios/Dodaios/blob/main/docs/product/privacy-safety-and-support/safety-and-approvals.md)
and [privacy and local data](https://github.com/Dodaios/Dodaios/blob/main/docs/product/privacy-safety-and-support/privacy-and-local-data.md).

## More ways to install

The [one-line installer](#install) is the quickest way in. You do not need to
install anything first. If Python is missing, the installer downloads a private
copy just for Dodaios, and on Windows it does the same for Git, without
administrator rights or questions. It then adds the desktop launcher and opens
the app. If you run it again, it updates your existing installation. You choose
your language, wake phrase and models inside the app.

You need one API key, a subscription or a local model. A microphone helps for
voice. You do not need a GPU.

After the installer has run, open Dodaios from the desktop launcher or from a
terminal:

```bash
dodaios         # full desktop
```

If you prefer a regular desktop installer, download one here:

- [Dodaios for Windows (x64)](https://github.com/Dodaios/Dodaios/releases/latest/download/Dodaios-Setup-x64.exe)
- [Dodaios for macOS (Apple Silicon)](https://github.com/Dodaios/Dodaios/releases/latest/download/Dodaios-macOS-arm64.dmg)
- [Dodaios for macOS (Intel)](https://github.com/Dodaios/Dodaios/releases/latest/download/Dodaios-macOS-x64.dmg)
- [Dodaios for Linux (AppImage, x86_64)](https://github.com/Dodaios/Dodaios/releases/latest/download/Dodaios-Linux-x86_64.AppImage)

Windows installers are signed under our
[code signing policy](https://github.com/Dodaios/Dodaios/blob/main/docs/code-signing-policy.md)
once the SignPath Foundation program approves the project. Free code signing
provided by SignPath.io, certificate by SignPath Foundation.

The macOS disk image is not notarized by Apple yet. The first time you open it
on macOS 15, go to **System Settings > Privacy & Security** and click **Open
Anyway**. Up to macOS 14, right-click the app and choose **Open**. The one-line
installer above does not need this step.

To run Dodaios on a server, use `pip install dodaios` and `dodaios serve`,
then open `http://localhost:47821` in a browser. Using a microphone from another
computer needs HTTPS. The [headless deployment guide](https://github.com/Dodaios/Dodaios/blob/main/docs/headless-vps-deployment.md)
explains the setup. If you install with pip or pipx by hand on an Intel Mac or
on Windows ARM64, you also need the
[native package index](https://github.com/Dodaios/Dodaios/blob/main/docs/product/start-here/install-dodaios.md#install-the-isolated-pypi-package).
The installer sets that up for you.

## First steps

1. Finish the short setup in the app. Pick your language, a wake phrase (or a
   keyboard shortcut instead) and one model.
2. Say your wake phrase and ask for something, for example "Plan a small project
   with me and ask what you need to know."
3. Open a project folder in the Agentic IDE, or create your first agent.

## Works with

- **Models:** OpenAI, Anthropic Claude, Google Gemini and Vertex AI, OpenRouter, NVIDIA, Ollama and any OpenAI-compatible local server, plus your Claude Code and Codex subscriptions.
- **Coding agents:** Claude Code, Codex, OpenCode, Kimi Code, GLM, Grok Build, Antigravity, Cursor CLI and DeepSeek Harness.
- **Speech:** local Whisper, OpenAI, Gemini, Groq, Deepgram and OpenRouter for listening; Piper (local), ElevenLabs, Cartesia, Inworld, Gemini and OpenRouter voices for speaking.

## Docs

- **Getting started:** [quick start](https://github.com/Dodaios/Dodaios/blob/main/docs/product/start-here/first-run-setup.md), [app tour](https://github.com/Dodaios/Dodaios/blob/main/docs/product/start-here/desktop-app-tour.md)
- **Everyday use:** [voice](https://github.com/Dodaios/Dodaios/blob/main/docs/product/everyday-use/voice-conversations.md), [dictation](https://github.com/Dodaios/Dodaios/blob/main/docs/product/everyday-use/dictation.md), [memory](https://github.com/Dodaios/Dodaios/blob/main/docs/product/knowledge-and-sharing/wiki-and-memory.md)
- **Agents and automation:** [agentic IDE](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/agentic-ide.md), [agents](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/dodaios-agents.md), [computer use](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/computer-use.md), [plugins](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/plugins.md), [MCP](https://github.com/Dodaios/Dodaios/blob/main/docs/product/extend-and-automate/mcp-connections.md), [CLI](https://github.com/Dodaios/Dodaios/blob/main/docs/dodaios-cli.md)
- **Models:** [providers](https://github.com/Dodaios/Dodaios/blob/main/docs/product/personalize-and-connect/providers-and-api-keys.md), [local models](https://github.com/Dodaios/Dodaios/blob/main/docs/product/personalize-and-connect/local-ai-providers.md)
- **Running and fixing:** [server](https://github.com/Dodaios/Dodaios/blob/main/docs/headless-vps-deployment.md), [architecture](https://github.com/Dodaios/Dodaios/blob/main/docs/architecture-overview.md), [troubleshooting](https://github.com/Dodaios/Dodaios/blob/main/docs/product/privacy-safety-and-support/troubleshooting.md)

## Contribute

A good place to start is a [good first issue](https://github.com/Dodaios/Dodaios/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). If none are open, pick any issue labeled [`help wanted`](https://github.com/Dodaios/Dodaios/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) or [`area:docs`](https://github.com/Dodaios/Dodaios/issues?q=is%3Aissue+is%3Aopen+label%3Aarea%3Adocs), or ask in [Discussions](https://github.com/Dodaios/Dodaios/discussions). The guide to [your first contribution in 10 minutes](https://github.com/Dodaios/Dodaios/blob/main/CONTRIBUTING.md#your-first-contribution-in-10-minutes) walks you through it. Questions and ideas go to [discussions](https://github.com/Dodaios/Dodaios/discussions), and security reports follow [SECURITY.md](https://github.com/Dodaios/Dodaios/blob/main/SECURITY.md).

A star on GitHub helps other people find Dodaios. Sponsors are listed in [SPONSORS.md](https://github.com/Dodaios/Dodaios/blob/main/SPONSORS.md).

<!-- contributors:start -->

<a href="https://github.com/rubenluetke10-beep"><img src="https://avatars.githubusercontent.com/u/226271791?v=4&s=48" width="48" height="48" alt="rubenluetke10-beep"></a>

<!-- contributors:end -->

## License

[Apache 2.0](https://github.com/Dodaios/Dodaios/blob/main/LICENSE). Releases up to and including 1.6.0 keep their original MIT license. See [NOTICE](https://github.com/Dodaios/Dodaios/blob/main/NOTICE) and the [trademark guidance](https://github.com/Dodaios/Dodaios/blob/main/TRADEMARK.md).
