一句话定位: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-releases8Swift主入口:App 下载 + 公开源码(gateway + Swift 客户端),54 个 release
dottie-mac-use0JS~150 个 macOS 工具 + AX/EventKit CLI(:1319)+ HTTP façade(:1321)
dottie-talk0JS本地 STT + koko TTS(:1314)+ HTTP façade(:1320)
dottie-local0JS端上 llama.cpp 推理 + 可选 dotbot harness(:1318)
dottie-omarchy1RustLinux/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
服务端口运行时角色
Gateway1317RustWS + HTTP + agent loop;监管子进程
Dottie Local(可选)1318dottie-local本地 chat
Ollama(可选)11434Ollama本地 chat
dottie-mac-use1321NodeMac 工具 façade;持有 AX CLI
dottie-talk1320Node音频 façade;持有 STT/TTS 二进制
dottie-mac-use-ax1319Swift CLI辅助功能 + EventKit
parakeet-server1315C++本地 STT(ggml/Metal)
koko1314Rust本地 TTS

关键设计:Face 只跟 :1317 说话——Rust 二进制约拥有 agent loop、鉴权、SQLite 记忆与子进程监管,职责边界清晰。dottie-mac-use / dottie-talk 是公开 git submodule(clone 需 --recurse-submodules)。

技术栈

技术版本用途
Swift / SwiftUI5 / macOS 15.4+界面(聊天、语音、设置)
Rust2021零依赖 dottie-gateway(:1317)
SQLite系统 libsqlite3会话 + 记忆
Node.js24(内置)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