Open Dot runs personal agents on your own Mac with your own model key
Open-source personal AI agents that work on their own, on their own computers. Mac app, OpenAI + Composio.
At a glance
- What is it?
- Open Dot is an open source rebuild of the background personal agents OpenAI shipped as Dots, packaged as a Mac desktop app that keeps working when the window is closed. It drives a logged-in browser, gates risky actions behind approval rules, and reaches Gmail, Slack, GitHub and 1,500 other apps through Composio. It is Mac-only, unsigned, and its licence is unstated.
- Who is it for?
- Mac users who want the background agent pattern from OpenAI's Dots without a ChatGPT Pro or Business Premium subscription, and who are willing to hand a logged-in browser and a Composio connection to a local process, are the people Open Dot is for.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 23 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Open Dot is an open source answer to OpenAI's Dots
The framing in the README is about a specific gap. OpenAI launched Dots on September 29, personal agents that keep working in the background on their own computers, but using them requires ChatGPT Pro or Business Premium. Open Dot is presented as an open source version of that idea, with two differences that matter. It runs on your own Mac rather than on OpenAI's machines, and it uses your own OpenAI key, or open models like Kimi, DeepSeek and Qwen through OpenRouter. The repository is under the composio-community organisation and the project description says it works with OpenAI and Composio The people this is for are individual developers and small teams who want an agent that keeps running overnight, holds a logged-in session and does real work in real apps, without a subscription that ties the capability to a vendor account. The README also states plainly that Open Dot is not affiliated with OpenAI.
Each dot drives its own browser profile that stays logged in
The core mechanism is a browser per agent. The README says each dot has its own browser that stays logged in, and you can watch it work from the Computer tab, which is also where you take over when the agent needs you to log in or get past a captcha, and hand it back afterwards. The repository layout shows where that lives: computer/browser.ts holds each dot's Chrome profile, the computer-use actions, and the live view you can take over. The login state is what makes the agent useful, because an agent that has to authenticate on every task is not an agent, it is a script with extra steps. The same file list shows a computer/ directory described as one interface over three targets, E2B cloud computers, Docker and local folders, with the choice controlled by the DOTS_COMPUTER environment variable. Passwords are handled separately, saved for sites and encrypted with a key in the macOS Keychain, then typed straight into the page so the model never sees them.
Rules and a small review model decide what an agent may do unattended
The approval system is the part that makes this usable rather than merely interesting. You decide what a dot can do without asking, with rules written in plain language such as when it wants to reply to an email, ask first. A small model checks each risky action against those rules, and the README says agent/review.ts is the file that does it, with agent/tools.ts holding the dot's tools and how risky each one is. You then approve or deny the action from a card in the chat. The risk classification living in tools.ts is the interesting design choice, because it means the decision about what counts as risky is data about the tools rather than a rule buried in a prompt. The default review model is gpt-5.4-mini, and the agent/review.ts module also names chats. App connections through Composio are read-only by default: it reads on its own and asks you before it sends, posts, pays for or changes anything.
Composio supplies the app connections, 1,500 integrations deep
The integration surface comes from Composio, and the README says the app connects to Gmail, Calendar, Slack, Notion, GitHub and 1,500 other apps through it. That breadth is the reason to use this project rather than writing your own OAuth plumbing for every service, and it is also where the trust decision sits, since a single Composio sign-in grants the app a large surface of connected accounts. Two distinct Composio paths exist and they are not interchangeable. The normal path is signing in with Composio in the Settings screen, which opens in your browser. The trigger path needs the API key of a project from platform.composio.dev, and the README explains why: triggers run in your own Composio project rather than through the sign-in, so you connect the apps for triggers again. Triggers wake a dot when something happens, such as an email from your bank or a new issue on your repository, and they are optional and need that API key.
Building the desktop app takes pnpm install and one build script
Open Dot is a desktop app rather than a web service you deploy. The window runs a local server, and closing the window keeps the dots working in the background until you quit with ⌘Q. The build is two commands, and the second one produces a disk image for the arm64 Mac.
pnpm install
pnpm desktop:build # makes dist/Open Dot-<version>-arm64.dmgThe build is not notarized yet, so the first time you open it you right-click the app and choose Open, which is a real step for every user and a support burden for anyone distributing it. The package metadata shows the shape of the thing: a Next.js server on port 3100, an Electron shell that starts the server and opens the window, and electron-builder producing the macOS package under the product name Open Dot. Running from source needs Node 22 or newer, pnpm and Google Chrome, with Playwright's Chromium accepted as a substitute.
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 devIn development, data is stored in a .data/ directory in the project folder, and in the packaged app it lives under ~/Library/Application Support/Open Dot.
The environment variables decide the models, the computer and the storage
The configuration table is the honest description of the runtime. Three keys are the ones you will touch first: OPENAI_API_KEY for OpenAI, OPENROUTER_API_KEY for open models through OpenRouter, which adds Kimi, DeepSeek, Qwen and GLM to the model picker, and COMPOSIO_API_KEY for triggers. Three more select the models. DOTS_MODEL is the main model, defaulting to the best one your key can use, and it talks to the Responses API. DOTS_REVIEW_MODEL defaults to gpt-5.4-mini and is the model that checks actions against your rules. DOTS_VOICE_MODEL, default gpt-realtime-2.1, handles voice calls. DOTS_COMPUTER_TOOL is the one with a real behavioural effect: computer lets the model see and click the screen, while off limits it to opening and reading pages. DOTS_COMPUTER forces cloud, docker or local, DOTS_BOX_IMAGE sets the container image, DOTS_PUBLIC_URL is where the app is served for the Composio sign-in redirect, and DOTS_DATA_DIR is where chats, the password vault, browser profiles and workspaces are kept.
Where the agent breaks: sleep, canvas sites and payments
The README has a Good to know section, and it is where the limits are. Routines and triggers only run while the app is open, so a routine that comes due while your Mac is asleep gets skipped, and so do trigger events that arrive then. There is no login screen, which the README says is deliberate since it is made to run on your own Mac, and it is also the reason you should not put it on a public server as it is. Open models do not get OpenAI's computer tool, so they click and type by the text on the page instead, which works on most sites but not on things drawn on a canvas, and voice calls still need an OpenAI key. For bookings and purchases, the site needs a card saved in your account there, or you take over for the payment step. And trigger latency is uneven: most fire within seconds, while ones with an Interval setting, such as Gmail's, can take up to that many minutes. Each of these is a boundary on the automation, not a bug.
How Open Dot compares with OpenAI's hosted Dots
The two approaches differ in where the agent lives and who pays for the model. OpenAI's Dots are gated behind a ChatGPT Pro or Business Premium subscription, with the model access and the compute managed for you. Open Dot puts the same idea on your Mac, where the browser profile, the encrypted password vault, the chats and the workspaces are local files, and where the model calls are billed to your own key. That buys control and removes the subscription, and it costs you the always-on machine, the notarization and the support of a hosted product. The trade is clearest for a scheduled task like a weekday inbox and calendar brief, which Open Dot can run because the app stays open, and clearest against OpenAI's own product for the same reason: if the task needs to run when your laptop is closed, Open Dot does not help you, since its routines are skipped while the machine sleeps.
Editorial conclusion
Mac users who want the background agent pattern from OpenAI's Dots without a ChatGPT Pro or Business Premium subscription, and who are willing to hand a logged-in browser and a Composio connection to a local process, are the people Open Dot is for. It is the wrong tool for a Windows or Linux user, for a team that cannot let an agent sit in a logged-in browser session, and for a deployment that needs agents to run on a machine nobody is sitting in front of, because routines and triggers only fire while the app is open. Check three things before you install: that you accept the app running unnotarized, since the first launch needs a right-click and Open, that your key can be used for the review model as well as the main model, since approvals run on a separate model, and that the site you want automated has a card saved in its own account, because the agent cannot complete a payment you have not pre-authorised. No licence file appears in the repository, there are no GitHub releases, and the last push was on 2026-09-30.
Frequently asked questions
How do I build and run Open Dot on my Mac?
Run pnpm install and then pnpm desktop:build, which produces a dist/Open Dot-<version>-arm64.dmg. The build is not notarized yet, so the first launch needs a right-click and Open. Running from source needs Node 22 or newer, pnpm and Google Chrome, then pnpm dev serves the app at http://localhost:3100.
Does Open Dot need a ChatGPT subscription?
No. You paste your own OpenAI API key, an OpenRouter key, or both, and the keys are stored encrypted on your Mac. An OpenRouter key adds open models such as Kimi, DeepSeek, Qwen and GLM to the model picker.
How does Open Dot handle passwords and logins?
Each dot has its own browser that stays logged in, and you can take over from the Computer tab when a site asks you to log in or get past a captcha. Saved site passwords are encrypted with a key in your macOS Keychain and typed into the page, so the model never sees them.
Can Open Dot run unattended while my Mac is asleep?
No. Routines and triggers only run while the app is open, so a routine that comes due while your Mac is asleep is skipped, and trigger events arriving then are also skipped. Voice calls also need an OpenAI key even when you use open models.
What does the Composio API key in Open Dot add?
It is needed for triggers, and the README says triggers run in your own Composio project on platform.composio.dev rather than through the sign-in, so you connect the apps for triggers again. The regular Composio sign-in covers the app connections for reading and for the actions that need your approval.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/composio-community-open-dot)Was this useful?