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)

personal
Searching Database…

What is this?Open Dot is an open-source version of OpenAI's 'Dots' personal agents, which normally require ChatGPT Pro or Business Premium. It runs on your own Mac with your own OpenAI key, or with open models like Kimi, DeepSeek and Qwen through OpenRouter, keeping agents working in the background on your computer.
Is this a desktop app or a web service?It is a Mac desktop app (Electron-based) that runs its own local server; closing the window keeps dots working until you quit with Cmd+Q.
How do I get it running?Download the Mac app, right-click and choose Open since the build isn't notarized yet, then in Settings paste your OpenAI or OpenRouter key and sign in with Composio to connect your apps. Alternatively, run it from source with Node 22+, pnpm and Google Chrome.
Do I need an OpenAI key, or can I use open models instead?You need at least an OpenAI key or an OpenRouter key (which unlocks Kimi, DeepSeek, Qwen and GLM). Composio sign-in is needed to connect apps, E2B key is optional for cloud compute, and voice calls still require an OpenAI key regardless of which model you use elsewhere.
Any gotchas with scheduling, triggers, or open models?Routines and triggers only fire while the app is open, so anything due while your Mac is asleep gets skipped. Open models don't get OpenAI's computer-use tool and instead click/type by reading page text, which fails on canvas-drawn UI, and there's no login screen so it shouldn't be run on a public server.
Does it only run on Mac, or other platforms too?It's built specifically for macOS; there's no mention of Windows or Linux support.
Can it keep working while my Mac is asleep?Not reliably without extra setup: by default the agent stops when the Mac sleeps unless you add an E2B key, which gives each dot a cloud computer that keeps running.
Where do my saved passwords and data go?Saved site passwords are encrypted with a key in your macOS Keychain and typed directly into the page so the model never sees them; all app data lives locally in ~/Library/Application Support/Open Dot.
Can my dots access real apps like Gmail or Slack?Yes, through Composio it connects to Gmail, Calendar, Slack, Notion, GitHub and over 1,500 other apps. It reads on its own but asks before sending, posting, paying, or changing anything.
Can I talk to a dot by voice?Yes, you can call it and talk; whatever you ask during the call keeps running after you hang up, and the full call transcript shows up in the chat so you can continue in text.
Can multiple dots work together?Yes, you can create several dots with different jobs that pass work to each other; each one remembers things about you and saves skills for tasks it repeats.
Where does code actually execute?Each dot runs code in its own workspace, which can be an E2B cloud computer, a local Docker container, or a plain folder on your Mac, depending on configuration.
Size
0.5 MB
Stars
654
Updated
CommitSep 30
Age
18d
Commits · 90 Days