
一句话定位:macOS 桌面语音助手(Steve Derico,
dottie.ai)——“control your computer with voice”。Rust 网关 + 端上语音 + 默认 Grok,按住Option+Space说话即可让它在你的 Mac 上动手干活。
⚠️ 先别和 OpenAI 的 Dottie 搞混:dots 里也出现过 “Dottie”——那是 OpenAI Dots 产品经理 Holly Li 在 DevDay 现场演示的那只 dot 的角色名(就是演示卡壳 10 秒的那只),只是重名,与本项目无关。
为什么值得关注
它是本库个人 Agent 专题里少见的桌面原生 + 语音优先形态,且有几点很实在:
- 可全覆盖给 macOS 工具:~150 个桌面工具(日历/邮件/Safari/文件/辅助功能 AX),且权限类别默认全关、破坏性操作弹确认。
- 工具层可独立复用:
dottie-mac-use与dottie-talk都是 standalone MCP/HTTP 服务——不装 Dottie.app 也能让 Claude Code / Cursor 直接用。 - 本地/云端可切换:默认走 Grok(Dottie Pro),但可切 Dottie Local(端上 llama.cpp)或 Ollama,做到”聊天不出本机”。
- 架构分开得很干净:Swift 只做脸,Rust 网关管 agent loop / 鉴权 / 记忆 / 监管,Node 只管 Mac 工具与语音。
仓库群(一个项目,5 个仓库)
| 仓库 | ★ | 语言 | 作用 |
|---|---|---|---|
dottie-desktop-releases | 8 | Swift | 主入口:App 下载 + 公开源码(gateway + Swift 客户端),54 个 release |
dottie-mac-use | 0 | JS | ~150 个 macOS 工具 + AX/EventKit CLI(:1319)+ HTTP façade(:1321) |
dottie-talk | 0 | JS | 本地 STT + koko TTS(:1314)+ HTTP façade(:1320) |
dottie-local | 0 | JS | 端上 llama.cpp 推理 + 可选 dotbot harness(:1318) |
dottie-omarchy | 1 | Rust | Linux/Omarchy 版双向语音助手(Grok duplex + 本地 STT/TTS) |
核心能力
语音与听写
- Push-to-talk:按住
Option+Space说话,松开即在光标处输入文字。 - 实时转写:流式 STT + 句尾检测(end-of-utterance)。
- Grok Voice:音频经 relay 送 xAI(或自带 key BYOK)。
- 端上 STT:Parakeet(
parakeet-server,Metal 加速)。 - 唤醒词:
Hey Dottie(走 Apple Speech)。
语音合成
- koko(Kokoros) 本地 TTS,
kokoro-v1.0音色族。 - 可选音色 + 0.5×–2.0× 语速;开启后自动朗读回复;合成前在服务端清洗 markdown / emoji / URL / 代码。
AI Chat(四种后端可切)
- Dottie Pro(默认):经
api.dottie.ai用 Grok,登录即用、无需贴 key。 - Dottie Local:端上 llama.cpp(
:1318),OpenAI 兼容、无 API key。 - Ollama:
127.0.0.1:11434。 - BYOK xAI:自己的 Grok key 存 Keychain。
- 历史落 SQLite(
~/.dottie/agent.db);**单一 WS(/v1/realtime)**统一走文字、语音、TTS。
Agent 工具
- ~150 个工具(日历、邮件、提醒、联系人、备忘录、Safari 标签、文件、照片、音乐、截图、天气、地图、系统命令)。
- 15 类权限默认关闭,需在设置里逐项开启;破坏性动作有确认 UI。
- Standalone MCP:Claude / Cursor 可脱离 Dottie.app 直接调 mac-use 与 talk。
记忆
- Rust SQLite 存”学到的事实”于
agent.db;可编辑镜像~/.dottie/dottie-memory.md;重启与清空单次会话后仍保留。
桌面 UX
- 菜单栏头像(空闲/工作中/说话中/聆听中/错误五态)、浮动球体(Metal 或 Web 头像)。
- System Health 面板:gateway + talk + mac-use 状态。
架构与端口
![]()
Dottie.app (Swift/SwiftUI) ──WS/HTTP──▶ Gateway :1317 (Rust, 零依赖 crate)
│
┌───────────────────────────┼───────────────────────────┐
▼ ▼ ▼
Providers (chat) mac-use :1321 talk :1320
Pro / xAI / Local / Ollama tools + AX :1319 STT :1315 / TTS :1314
| 服务 | 端口 | 运行时 | 角色 |
|---|---|---|---|
| Gateway | 1317 | Rust | WS + HTTP + agent loop;监管子进程 |
| Dottie Local(可选) | 1318 | dottie-local | 本地 chat |
| Ollama(可选) | 11434 | Ollama | 本地 chat |
| dottie-mac-use | 1321 | Node | Mac 工具 façade;持有 AX CLI |
| dottie-talk | 1320 | Node | 音频 façade;持有 STT/TTS 二进制 |
dottie-mac-use-ax | 1319 | Swift CLI | 辅助功能 + EventKit |
parakeet-server | 1315 | C++ | 本地 STT(ggml/Metal) |
koko | 1314 | Rust | 本地 TTS |
关键设计:Face 只跟 :1317 说话——Rust 二进制约拥有 agent loop、鉴权、SQLite 记忆与子进程监管,职责边界清晰。dottie-mac-use / dottie-talk 是公开 git submodule(clone 需 --recurse-submodules)。
技术栈
| 技术 | 版本 | 用途 |
|---|---|---|
| Swift / SwiftUI | 5 / macOS 15.4+ | 界面(聊天、语音、设置) |
| Rust | 2021 | 零依赖 dottie-gateway(:1317) |
| SQLite | 系统 libsqlite3 | 会话 + 记忆 |
| Node.js | 24(内置) | talk + mac-use façade |
| parakeet-server | 内置 | 本地 STT(C++/ggml,Metal) |
| koko | 内置 | 本地 TTS(Kokoros) |
隐私模型
- Dottie Pro(默认):聊天与云端语音经
api.dottie.ai到 xAI,需账号。 - Dottie Local / Ollama:聊天留在本机,STT/TTS 也走本地 talk。
- BYOK xAI:prompt(及 Grok Voice 音频)直达 xAI。
- 工具:权限默认 off;桌面端不发任何产品分析事件;日志在
~/.dottie/logs/。
快捷键
| 快捷键 | 动作 |
|---|---|
Option+Space(按住) | Push-to-talk |
ESC | 停止录音/播放/TTS |
| 菜单栏头像 | 切换对话模式 |
PTT 与按住时长可在 Settings → Voice 自定义。
与个人 Agent 品类的关系
- 形态差异:muse/dots 是”云端常驻 + 多端 App”;Dottie 是”macOS 原生 + 语音优先 + 可全本地”——更轻、更贴桌面,但只覆盖一台 Mac 的能力,没有云电脑与多端协同。
- 共同点:都有专属记忆、都有工具权限治理、都把”不可逆操作先确认”当默认。
- 可借鉴点:工具层做成 standalone MCP(脱离主体也能被别的 agent 复用)这个做法,对自研 Agent 的工具分层很有参考价值。
- 额外线索:其 Linux 版
dottie-omarchy已支持 Grok duplex 实时语音(grok-voice-think-fast-2.0,支持打断 barge-in),可与 grok-bot 的语音能力对照看。
适用场景
- 想要一台全本地优先的 Mac 语音助手(聊天/语音都不出本机)。
- 想给 Claude Code / Cursor 接一套现成的 macOS 工具 MCP(不装 Dottie.app 也行)。
- 想研究”Swift 脸 + Rust 网关 + Node 外设”这种多语言桌面 Agent 分层怎么落地。
局限性
- 仅 macOS:需 Apple Silicon + macOS 15.4+,无 Windows/Linux(Linux 只有社区向的 omarchy 版)。
- 社区很小:主仓库仅 8★(54 releases 但 star 极少),维护者是个人开发者,长期可持续性待观察。
- 默认依赖云:开箱即用走 Dottie Pro(需账号),全本地需自己配 Local/Ollama 模型。
- 工具权限面很大:~150 个工具虽默认全关,但一旦开启就是完整的 macOS 控制能力,需自行权衡。
- 首次使用成本:本地模型需下载(第三方评测口径约 2GB),首次启动较慢。
相关
- dots — OpenAI Dots(其中”Dottie”是演示角色名,与本项目重名但无关)
- README — 个人 Agent 品类目录入口
- grok-bot — 同样以 Grok 为大脑的常驻 Agent(对照其语音能力)
- playwright-mcp — 另一种”把能力包装成 MCP”的思路
- screencapture — macOS 原生能力,与本项目工具层同类
主要来源
- 主仓库
https://github.com/stevederico/dottie-desktop-releases(MIT,54 releases,最新 v2026.9.14) - 官网
https://www.dottie.ai - 子仓库
dottie-mac-use/dottie-talk/dottie-local/dottie-omarchy