open-dot README

The project's README from github.com/composio-community/open-dot. As one markdown file: README.md.

Open Dot

OpenAI launched Dots on September 29, personal agents that keep working in the background on their own computers, but you need ChatGPT Pro or Business Premium to use them. Open Dot is an open source version that runs on your own Mac with your own OpenAI key, or with open models like Kimi, DeepSeek and Qwen through OpenRouter.

What your dots can do

Get it running on your Mac

Open Dot is a desktop app. The window runs its own local server, and closing the window keeps your dots working in the background until you quit with ⌘Q.

pnpm install
pnpm desktop:build           # makes dist/Open Dot-<version>-arm64.dmg

The build isn't notarized yet, so the first time you open it, right-click the app and choose Open.

Then in Settings:

  1. Paste your OpenAI API key, an OpenRouter key, or both. Keys are stored encrypted on your Mac. An OpenRouter key adds open models like Kimi, DeepSeek, Qwen and GLM to the model picker.
  2. Sign in with Composio to connect your apps. The sign-in opens in your normal browser.
  3. If you want dots to keep working while your Mac sleeps, paste an E2B key too, and each dot gets a cloud computer.
  4. For triggers, paste the API key of a project from platform.composio.dev, then add triggers from a dot's Setup page. You connect the apps for triggers again there, because they run in your own Composio project and not through the sign-in from step 2.

Your data stays in ~/Library/Application Support/Open Dot.

Run it from source

You'll need Node 22 or newer, pnpm and Google Chrome (Playwright's Chromium works if Chrome isn't installed).

cp .env.example .env.local   # add OPENAI_API_KEY, or paste it in Settings later
pnpm install
npx playwright install chromium
pnpm dev                     # http://localhost:3100
pnpm desktop:dev             # optional, opens the desktop window on top of pnpm dev

In development everything is stored in .data/ in the project folder.

Env var Default What it does
OPENAI_API_KEY none Your OpenAI key, unless you paste it in Settings
OPENROUTER_API_KEY none Open models through OpenRouter, unless you paste the key in Settings
COMPOSIO_API_KEY none A Composio project key for triggers, unless you paste it in Settings
DOTS_MODEL best one your key can use, e.g. gpt-5.5 Main model for the dots (Responses API)
DOTS_REVIEW_MODEL gpt-5.4-mini Checks actions against your rules and names chats
DOTS_VOICE_MODEL gpt-realtime-2.1 Voice calls
DOTS_COMPUTER_TOOL computer computer lets the model see and click the screen, off limits it to opening pages and reading them
E2B_API_KEY none Cloud computers, unless you paste the key in Settings
DOTS_COMPUTER picked automatically Force cloud, docker or local
DOTS_BOX_IMAGE node:22-bookworm Container image when dots run in Docker
DOTS_PUBLIC_URL http://localhost:3100 Where the app is served, used for the Composio sign-in redirect
DOTS_DATA_DIR .data/ Where chats, the password vault, browser profiles and workspaces are kept

Good to know

How it's put together

electron/main.mjs      the Mac app: starts the server, opens the window, sends links to your browser
scripts/desktop-*.mjs  packs the Next.js server into the app
src/server/
  agent/runtime.ts     the agent loop: streaming Responses API, a thread per chat,
                       approval cards that pause and resume a run, pause and stop
  agent/tools.ts       the dot's tools and how risky each one is
  agent/review.ts      checks an action against your rules
  agent/prompt.ts      the system prompt, rebuilt every turn from rules, memory, skills and routines
  agent/openrouter.ts  open models through OpenRouter, which keeps no history, so the app keeps it per chat
  computer/            one interface over E2B cloud computers, Docker and local folders
  computer/browser.ts  each dot's Chrome profile, computer-use actions, the live view you can take over
  composio.ts          Composio sign-in and app connections
  triggers.ts          Composio triggers and the live stream of their events
  voice.ts             voice calls (OpenAI Realtime)
  vault.ts             the encrypted password store
  scheduler.ts         routines
  repo.ts, db.ts       SQLite (node:sqlite)
src/app/api/events     one stream of live updates to the window
src/lib/store.ts       the window's state, read with useSyncExternalStore

The dots use OpenAI's built-in web_search and computer tools, or OpenRouter's web search on open models. Everything else is a function tool, so any action can go through your rules first.

Built with

OpenAI (GPT-5.5 through the Responses API, Realtime for voice, computer use), OpenRouter for open models, Composio, Next.js, Electron, Playwright with your installed Chrome, E2B and SQLite.

open-dot (composio-community/open-dot)

Searching Database…

这是什么?Open Dot 是 OpenAI“Dots”个人智能体的开源版本,原版通常需要 ChatGPT Pro 或 Business Premium。它在你自己的 Mac 上用你自己的 OpenAI 密钥运行,也可以通过 OpenRouter 使用 Kimi、DeepSeek、Qwen 等开放模型,让智能体在你的电脑后台持续工作。
它是桌面应用还是网络服务?它是一款 Mac 桌面应用(基于 Electron),会运行自己的本地服务器;关闭窗口后 dots 仍在工作,直到你用 Cmd+Q 退出。
怎么让它运行起来?下载 Mac 应用,由于构建尚未公证,右键点击并选择“打开”,然后在设置中粘贴你的 OpenAI 或 OpenRouter 密钥,并登录 Composio 来连接你的应用。也可以用 Node 22+、pnpm 和 Google Chrome 从源码运行。
必须有 OpenAI 密钥,还是可以用开放模型代替?你至少需要一个 OpenAI 密钥或 OpenRouter 密钥(后者可解锁 Kimi、DeepSeek、Qwen 和 GLM)。连接应用需要登录 Composio,E2B 密钥是可选的云端算力,而语音通话无论其他部分用什么模型都仍需要 OpenAI 密钥。
定时任务、触发器或开放模型方面有什么坑吗?例程和触发器只在应用打开时才会触发,因此 Mac 休眠期间到期的任务会被跳过。开放模型用不了 OpenAI 的计算机操作工具,只能靠读取页面文本来点击/输入,这在画布绘制的界面上会失效;另外它没有登录界面,所以不应在公共服务器上运行。
它只能在 Mac 上运行,还是也支持其他平台?它是专门为 macOS 构建的;没有提到支持 Windows 或 Linux。
Mac 休眠时它还能继续工作吗?不做额外配置的话不可靠:默认情况下 Mac 一休眠智能体就会停止,除非你添加 E2B 密钥,为每个 dot 提供一台持续运行的云电脑。
我保存的密码和数据都到哪里去了?保存的网站密码用 macOS 钥匙串中的密钥加密,并直接键入页面,模型永远看不到它们;所有应用数据都保存在本地 ~/Library/Application Support/Open Dot。
我的 dot 能访问 Gmail 或 Slack 这类真实应用吗?可以。通过 Composio,它可以连接 Gmail、Calendar、Slack、Notion、GitHub 以及 1,500 多个其他应用。读取操作它可以自行进行,但在发送、发布、付款或修改任何内容之前都会先征得同意。
可以用语音和 dot 交谈吗?可以。你可以呼叫它并对话;通话中交代的事情在你挂断后会继续运行,完整的通话记录会显示在聊天里,方便你继续用文字跟进。
多个 dot 能协同工作吗?可以。你可以创建多个分工不同的 dot,让它们互相传递工作;每个 dot 都会记住与你有关的信息,并为重复执行的任务保存技能。
代码实际在哪里执行?每个 dot 在自己的工作区里运行代码,根据配置不同,工作区可以是 E2B 云电脑、本地 Docker 容器,或 Mac 上的普通文件夹。
Size
0.5 MB
Stars
654
Updated
CommitSep 30
Age
18d
Commits · 90 Days