必须先在机器上安装并登录 claude、codex 或 grok 之一,否则模型选择器为空;Windows 安装包未签名,SmartScreen 会提示未知发布者,需 More info → Run anyway;Ubuntu Wayland 下 bot 控制本机被禁用,仅 Xorg 需显式 opt-in;Composio、Boat 等集成需在 App Settings 里另填 API key。
OpenMausBot
milind-soniApache-2.0活跃维护开源自托管的 Grok Bot 替代方案,给 AI 智能体配一台可操作的虚拟机,让它们像人一样在桌面环境里执行任务。
Open-source Grok Bot alternative with a virtual machine that bots can use
git clone https://github.com/milind-soni/OpenMausBot && cd OpenMausBot
pnpm install
pnpm dev:server
pnpm devREADME 未说明显存或 GPU 要求;需 macOS(Apple silicon/Intel)、Windows x64 或 Ubuntu 24.04 x64,Node 24+、pnpm,并至少装好一个已登录的 agent CLI。
开源版 Grok Bot:在聊天应用里管理一队本地 AI 智能体,每个都有自己的模型和电脑
开源自托管的 Grok Bot 替代方案,给 AI 智能体配一台可操作的虚拟机,让它们像人一样在桌面环境里执行任务。
核心能力
- 每个 bot 是独立 agent,可各自指定模型与人格
- 复用本机已登录的 claude、codex、grok CLI,无需新账号
- harness 服务跑在 127.0.0.1,数据存 ~/.openmausbot
- bot 可操作云端 Linux 桌面、隔离本地 VM 或本机
- 通过 Composio 接入 500+ 应用,支持审批卡片
容易踩的坑
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
- v0.1.150OpenMausBot 0.1.150最新正式版2026-11-09 · 2026-11-09 03:26 UTC
What's new in 0.1.150
Clouds finish restores and stay responsive
- A restore on My Cloud finishes by itself. Restoring a backup, or moving this computer's workspace to My Cloud, used to wait on "Fully quit MausBot…", which a Cloud can't do. My Cloud now restarts its own server right after the restore and shows progress while it comes back.
- The turn queue stays fast when many bots wait. Checking who goes next takes time in proportion to the number waiting, not its square, so a busy Cloud keeps answering.
- A Claude turn is never sent twice once one of its model calls has answered.
- Routines save a run's progress once per window, not after every step, so long runs write far less.
- Paired phones and desktops get large bot lists without stalling.
A calmer, clearer app
- Polish pass. One corner-radius scale, clearer headings and lighter icons. A reply with a table or code is now one bubble instead of three boxes of different widths.
- Pages open beside the chat. A bot's page shows as a small card with Open page. The large view keeps the message box usable, so you can talk about the page while looking at it. You can also save a page as a file.
- Simple mode does more. The everyday settings that needed Advanced are now in Simple: what a bot may do without asking, reply style, per-bot notifications, who can see a bot, the cloud computer picker and Android.
- Rules for every bot. One field next to About me holds instructions every bot follows, and bot instructions keep a history with Undo.
- Memory tidies itself. Upkeep moves finished work logs out of memory, and never touches lines that read like rules you gave. A bot that loads a lot every turn shows Tidy memory.
- New Aurora and Diwali skins.
Bots and connections
- A bot can open a thread on another model, including one from another provider, pick it from a short list, and get the result back.
- Secrets typed into a bot's card are kept in the Vault, for that bot only, so it can use them again without asking. They are always masked in transcripts and logs.
- A mailbox that reads but can't send gets a card in the chat for its outgoing server.
- ChatGPT plan turns use your own Codex setup and skills, with their sign-in kept separate.
- AgentMail, AgentPhone, Vapi and Telnyx connect with API keys.
- Public HTTPS MCP servers can be added without an approval step when access is below Full.
- Connect to a server says why it's grey, for example when macOS blocks local network access, and offers a Tailscale pairing button when that route is on.
- Model IDs of an added OpenAI-compatible server can be changed after adding.
Fixes and smaller changes
- Full screen watches a bot's screen without taking control, and you can take over from the viewer.
- ⌘⇧N starts a new thread with the selected bot.
- Sent and attached files share one 100 MB limit. Previews stay at 25 MB.
- Chinese input: IME handling, thread search, mentions, the slash menu, punctuation and sentence boundaries.
- Automations filter by department, and a waiting run can be cancelled.
- Older usage-limit notices are marked as past once their reset time has gone.
- Linux shows which libraries Chrome needs when they are missing.
npm:
npx [email protected]· https://www.npmjs.com/package/openmausbot/v/0.1.150 - v0.1.149OpenMausBot 0.1.1492026-11-08 · 2026-11-08 12:36 UTC
查看更新说明
What's new in 0.1.149
Clouds stay up when bots hand out a lot of work
- No more freezes when one bot hands work to many. When many bot turns waited for memory at once, the server could use all its CPU re-checking the queue and stop answering. Waiting is now cheap, so the Cloud keeps working while the queue drains.
- Starter runs two tasks at once. Other tasks wait their turn, and your own chat still goes first. Once two are running and four are waiting, a new hand-off is refused with a clear note, and you're offered an upgrade to run more.
- Starter keeps five bots awake, including after a restore or a move. Every bot is kept. Bots past five are paused until you upgrade, and you choose which five stay awake (Cloud settings → Choose awake bots).
Your own server can use this computer
- One popup after pairing. When a desktop pairs with a server you run yourself, it asks "Let use this computer?". Allow lends the apps on your screen and this computer's MCP servers. Not now lends nothing and isn't asked again.
- Settings → Servers → Share this computer. A switch turns sharing on or off at any time, and Choose what it can use picks folders, the terminal, apps and the screen. Pause in the menu bar covers these servers too.
- Only a server you paired with as its admin counts. Clouds keep their own sharing rules, and a shared or team server never gets your computer this way.
More engines
- Kiro is a built-in engine. Its model picker lists your account's models plus Kiro default.
- Native Claude Code and Codex on an API key. Each key-based connection is its own engine. Hosts without a model list (DeepSeek, GLM and others) can be added by typing the model, and keys are only ever sent over HTTPS.
This computer on Omarchy (experimental)
- On Omarchy and other Hyprland desktops, This computer works with Cua's Hyprland plugin: bots act in their own agent seats while you keep using the screen. Settings → Computer shows whether the plugin is ready and links the setup guide.
Fixes and smaller changes
- Bots list only the imported skills that fit them and find the rest by search, instead of listing every skill in every prompt. Bots pick the right skill more often, and each turn sends less to the model.
- Computer use runs on Cua Driver 0.41.3 on macOS, Windows and Linux.
npm:
npx [email protected]· https://www.npmjs.com/package/openmausbot/v/0.1.149 - v0.1.148OpenMausBot 0.1.1482026-11-07 · 2026-11-07 21:50 UTC
查看更新说明
What's new in 0.1.148
Connecting to your own server is simpler
- One way to connect. In the app, + → Connect to a server takes the link your server prints, or its address and a pairing code. A plain
http://address works on your own network (Wi-Fi, Tailscale,.local); a publichttp://address is refused with what to do instead. - One pairing code. Servers and the web
/pairpage use the same 12-character code, and a code of the wrong kind says so. - Commands that work when pasted. The server prints one link per way in, checks that the address really reaches it, and prints every command the way you started it (npx, a global install or Docker).
--lanmakes it reachable on this network. - Nothing starts by itself. Each way into this computer has its own switch, all off by default. Tailscale and the phone link never start until you turn them on, and a desktop that only connects to your server starts none of it.
- Phone & devices shows who can reach this computer, with one Pair a device dialog. Servers says how each server is reached, retries a lost connection on its own, and offers Pair again and Remove.
- The self-hosting guide now has one short path per install method and a troubleshooting table.
The private desktop stays chosen
- A bot's Where it works now offers Private desktop.
- On Let it choose, a bot keeps the place you picked, and starts your private desktop before waking or creating a cloud computer.
Fixes and smaller changes
- Codex starts on the chosen model's provider.
- Linked files over 25 MB are saved, and size limits are explained plainly.
- Long OpenRouter turns no longer stop on the reasoning size limit.
- Google sign-in is handed to you when Google refuses the bot's browser.
- Routines read the newest account when several Gmail accounts are connected.
- The automation editors and shared-instruction dialogs no longer lag or spin up the fan.
- A failed connected-apps connection no longer fails the whole turn.
- An MCP tool's approval card names the custom server asking for it.
- Paired clients can use "Continue when your limit resets".
- A Watch button shows while a bot uses its screen.
- Traditional Chinese is complete. French uses "vous" in the Cloud move messages.
- Notification previews show as plain text.
- The sign-in pill slows its checks when a server is down, then says so.
- More security hardening around proxies, local key checks and shared working folders.
npm:
npx [email protected]· https://www.npmjs.com/package/openmausbot/v/0.1.148 - One way to connect. In the app, + → Connect to a server takes the link your server prints, or its address and a pairing code. A plain
- v0.1.147OpenMausBot 0.1.1472026-11-07 · 2026-11-07 17:12 UTC
查看更新说明
What's new in 0.1.147
Meeting notes
- Paste a Google Meet, Microsoft Teams or Jitsi link and a bot joins the call as a guest. It names itself, says in the chat that it's taking notes, and leaves when asked.
- Ask it questions during the call with @notes. When the call ends it posts a Meeting notes card: summary, decisions, action items and the full transcript with who said what.
- A calendar routine can send it to your meetings automatically.
- On a Cloud plan, transcription is included. Elsewhere, use your own ElevenLabs, Groq or OpenAI key, or a local Whisper model.
Fixes
- "Internal service failure (session/new, LocationNotFoundError)" on a Cloud: fixed. OpenCode chats on a Cloud failed in every conversation after a bot's first one; each conversation now reaches its own folder.
- Phone connection: a second relay server now shares the load.
npm:
npx [email protected]· https://www.npmjs.com/package/openmausbot/v/0.1.147 - v0.1.146OpenMausBot 0.1.1462026-11-07 · 2026-11-07 05:10 UTC
查看更新说明
What's new in 0.1.146
More than one workspace on this computer
- The + at the end of the rail now offers New workspace on this computer. Give it a name and a colour (Work, Personal, …), and it opens fresh with its own bots, chats and files.
- One workspace runs at a time, and switching is one click. If a bot is still working, the switch waits for it to finish.
- Right-click a workspace to rename it, change its colour or remove it. Remove asks first and moves the workspace to the Trash.
- Every Cloud on the rail now has a small cloud on its tile, so Clouds and local workspaces are easy to tell apart.
The app opens where you left off
- When the app starts, it reopens the place that was open when you closed it: My Cloud, another Cloud, This Mac or another workspace, or your own server. If that place can't open, it opens My Cloud.
- The "starts fresh" line at the top of This Mac and other workspaces now has a ✕. It also goes away by itself after a few days.
Your phone after moving to My Cloud
- After your bots move to My Cloud, your phone's existing pairing keeps working with This Mac whenever it's open in the app, with no need to pair again.
- A phone that reaches the copy left behind on this computer now gets a plain message saying the bots moved to My Cloud, instead of trying to connect forever.
Engines stay up to date by themselves
- Engines the app installed (OpenCode, Codex, Gemini, Kimi, Cline, Copilot, Command Code, pi, MiniMax, DeepSeek, Cursor on Linux and Antigravity) now update themselves to the versions tested for this release.
- Updates happen only when no bot is using the engine. The new version is checked before it replaces the old one, and the old one stays if anything goes wrong.
- OpenCode copies installed before version 2 move to version 2 with your sessions, keys and models kept.
Voice notes
- A bot only says a voice note is recorded once the audio is saved. Otherwise it says the note wasn't sent, so a reply never claims a note that isn't there.
npm:
npx [email protected]· https://www.npmjs.com/package/openmausbot/v/0.1.146
OpenMausBot
The open-source Grok Bot alternative: your own team of AI bots, in a chat app.
openmausbot.com · Download · Open source Grok Bot alternative, compared
OpenMausBot is an open-source Grok Bot alternative: an independent project inspired by Grok Bot, and the open-source alternative to Meta Muse, OpenAI dots and Cue by Manus — bring-your-own-agent, local-first, on the models you already have. Also known as MausBot; formerly OpenGrokBot. Not affiliated with xAI, Meta, OpenAI or Manus.
Every bot in the sidebar is a real agent — Claude or Codex running locally under the hood — with its own personality, its own model, its own cloud computer, and its own connected apps. Talk to them like contacts. Watch them work. Approve what matters.
latest release · macOS: Apple silicon & Intel · signed & notarized .dmg · Windows: x64 installer · Ubuntu 24.04 x64: .deb or AppImage beta · all releases
Powered by boat.dev
⚠️ No affiliation with any cryptocurrency. OpenMausBot has no token. Any coin using the OpenMausBot, Maus, or SupaMaus name is not created, endorsed, or affiliated with this project or its maintainer. I have received no tokens, payment, or allocation from anyone, and I will not be endorsing any token.
Why
One assistant in one box is the wrong shape for agents. OpenMausBot is an independent, open-source project inspired by Grok Bot — it keeps the idea (AI as a messaging app: a roster of bots you chat with, each with its own personality, memory of its thread, model, computer, and apps) and rebuilds it open, local-first, and on the agents you already have:
- Bring your own agents. Bots run on the
claude,codex, andgrokCLIs installed on your own machine — your existing logins and subscriptions, no new accounts, no proxy in the middle. Point any engine at a custom CLI binary (a versioned build or wrapper) in Settings → Engines. - Local first. One small harness server on
127.0.0.1owns every agent process. Transcripts, keys, and events live in~/.openmausbot, not a cloud. - Agents with hands. Each bot can use a cloud Linux desktop, an isolated Local VM, or—where the platform safety boundary is currently certified—your own computer, plus 500+ apps through Composio. Host control is available on macOS and Ubuntu Xorg after explicit opt-in. Ubuntu Wayland host control remains disabled while issue #345 is resolved.
The open-source alternative to Grok Bot, Muse, dots and Cue
Four closed personal-agent products shipped in seven weeks of 2026, and each one keeps the model, the computer and your data on its maker's side of the line. OpenMausBot is the open-source version of that shape: a team of agents in a chat app, each with its own model, its own computer and its own connected apps, running on your machine under Apache 2.0. If you searched for an open Muse, open dots, an open-source Grok Bot, an open Instinct or an open Cue, this is the repository.
| Looking for | What it is | How OpenMausBot differs | Read more |
|---|---|---|---|
| Open source Grok Bot | xAI's roster of bots on one shared cloud computer, Grok only, from a SuperGrok or Cursor plan | Same roster shape; any model per bot; your own machine; approval cards | Grok Bot vs OpenMausBot |
| Open Muse | Meta's single personal agent in a Meta cloud VM, US and Canada only | A team instead of one agent; runs anywhere; data in ~/.openmausbot | Meta Muse alternative |
| Open dots | OpenAI's always-on agent inside ChatGPT, GPT only, Pro and Business Premium plans | Several agents; your Claude, ChatGPT or Grok login; no plan required | OpenAI dots alternative |
| Open Cue | Manus's invite-only agents with their own phone, email and wallet | No invite; OAuth instead of passwords; open source | Cue by Manus alternative |
| Open Instinct | Spear Street's invite-only agent that holds your passwords on a cloud computer | Ask for approval when you want it; signs in over OAuth; your machine | Instinct AI alternative |
All five side by side: Muse vs Grok Bot vs Dots vs Cue, and a decision guide in five questions: Which AI agent should I use?
Features
🧠 Pick a brain per bot
A model picker with a provider rail — Claude and Codex models side by side, defaults marked, unavailable providers dimmed with the reason. Switch a bot's model mid-conversation.
🖥️ Every bot gets a computer
Open the Computer panel and the bot's cloud desktop spins up on its own — live screen preview while it works, "Open desktop" to take over in your browser, or point the bot at this Mac instead.
🙋 Bots ask before they act
Shell commands, file edits, and questions surface as inline cards — Allow / Deny / answer in chat. A permission broker turns every risky action into a decision you make, for cloud and local computers alike.
🔌 Connected apps
A one-click marketplace over Composio Sessions: Gmail, Slack, GitHub, Notion, Linear and hundreds more. OAuth once, and every bot can use them as tools.
🗂 Manage bots like chats
Right-click any bot: pin, mark unread, edit profile, duplicate, copy conversation ID, hide, delete. It's a messaging app — your agents behave like contacts.
🔑 Keys once, everything lights up
Paste credentials in App Settings — they persist locally and the provider fleet hot-reloads instantly. Secrets are write-only: the UI only ever sees "configured" flags.
#️⃣ Channels for every context
Keep Work, Personal, and each project in separate channels without cloning your bots. Every channel has its own transcript, shared instructions, working folder, responder rules, and editable bot roster. File a channel and its bots under a named context, then rename it or change its members whenever the team changes.
⚡ Fast decisions with Jev
Add a Cloudflare Workers AI token with its account ID, a TypeSafe Jev key, or an OpenRouter key and model, in Settings → Decision and extraction and rooms set to Auto pick the bot that fits each un-mentioned message in a few hundred milliseconds, falling back to the room's lead whenever the decision model is off or unsure. See docs/decision-model.md.
📦 Install a complete team from one Markdown file
Browse outcome-driven teams on BotMRR, then choose Add to OpenMausBot. The app
opens a review screen before creating the bots, Chief of Staff, channels, playbooks, connector checklist,
and suggested routines. You can also import the same .md file from disk or paste its public GitHub URL
in Teams → Import.
The format stays portable: OpenMausBot reads the structured YAML frontmatter for a reliable one-click install, while Grok, Claude, ChatGPT, and people can follow the ordinary Markdown playbook. Connections remain off until you approve them, routines arrive paused, and packages never carry credentials, conversations, permissions, memory, or computer access. Browse the open-source playbook repository or read its portable format.
🤝 Share a whole department
Right-click a department and choose Share department… (or use Templates → Share) to save the whole department as one file: its bots with their instructions, pictures and skills, group chats, routines, shared instructions, Chief of Staff, connection slots and each bot's starter notes (untick them to leave them out). The dialog shows exactly what the file holds before you save it. Chat history, keys and passwords, model choices and computers never go in, and anything that looks like a secret is removed from the text. Whoever imports it gets new bots on Ask, skills switched off and routines paused. See docs/team-sharing.md. Desktops connected to an organization also get Templates → From {Organization}: the packages its Admin shares, added with one click, skills switched on. See docs/org-library.md. Your New bot defaults can travel too, as a preset bot that appears in New bot (in a team file, or on their own with Share as preset…). See docs/presets.md.
🎧 Bots that talk back
Press the speaker on any reply, or switch a bot to read its answers out as they land — so you can listen to what ran overnight while you make breakfast. Hit call and it's a conversation: it hears you, tells you what it's doing while it works, and asks for approvals out loud.
Choose ElevenLabs, Fish Audio, Grok (xAI), built-in Mac voices, or a local Chatterbox server in an agent profile. Paste a cloud key once when needed, pick a voice, and every bot can talk. Give a bot its own voice and a channel stops sounding like one person.
For Grok, save your xAI API key in Settings → Connections, then choose Grok (xAI) and a voice under the bot’s Voice & alerts. It reuses that host-side key and returns MP3 audio for spoken replies and calls. Language is detected automatically from the reply text; quality varies outside xAI’s officially supported languages. This adds speech synthesis to the existing call flow; microphone transcription remains unchanged.
Also in the box: streaming replies with tool-run activity chips · dictation from the composer mic (on-device Apple speech recognition on macOS, Fish Audio speech-to-text on Windows and Linux, in the desktop app) · SupaMaus cursor mascots with role-aware expressions · screenshots of the bot's work folded into the transcript.
Powered By
| Service | Purpose |
|---|---|
| Claude · Codex · Grok | The agents behind every bot, run through their local CLIs |
| Electron | Desktop shells for macOS, Windows, and Ubuntu |
| React + Vite + Tailwind CSS | The chat app UI and its build |
| Boat (boat.dev) | Each bot's cloud computer · our sponsor |
| Composio | Connected apps — Gmail, Slack, GitHub, and more |
| Cua Driver | Native computer use on your own machine |
| ElevenLabs · Fish Audio | Hosted voices for bots that talk back |
| GitHub Sponsors | One-time and monthly project support |
How it works
Two processes. The app holds no transports of its own — it sends typed commands over HTTP and folds one SSE event stream into state. The harness server owns every agent process and normalizes each provider's native protocol into one canonical runtime event stream (logged per-thread as NDJSON).
flowchart LR
subgraph app ["App — React + Tailwind (5199)"]
UI[Chat UI · model picker · computer panel]
end
subgraph server ["Harness server (127.0.0.1:8799)"]
REG[Driver registry] --> BUS[Event bus → SSE]
BROKER[Permission broker]
end
subgraph agents ["Agents on your computer"]
CL[claude CLI]
CX[codex CLI]
GR[grok CLI]
end
UI -- "HTTP commands" --> server
BUS -- "one SSE stream" --> UI
REG --> CL & CX & GR
CL & CX & GR -- "permission requests" --> BROKER
server -- "Boat API" --> BOAT[("Cloud computer<br/>boat.dev")]
server -- "Composio Session" --> APPS[("Gmail · Slack · GitHub · …")]
| Layer | Where | What it does |
|---|---|---|
| Drivers | server/drivers/ | One per provider: Claude, Codex, and Grok Build over their local CLIs (stream-JSON / JSON-RPC / ACP), plus a cloud-computer agent. Unknown drivers degrade to "unavailable", never crash the fleet. |
| Harness | server/harness/ | Registry (configs → live instances) and the fan-in event bus every client folds. |
| API | server/index.ts | Bots, turns, approvals, model catalog, computer lifecycle, connectors, config — HTTP + SSE. |
| Voice | server/tts/ | ElevenLabs, Fish Audio, Grok (xAI), built-in Mac voices, or local Chatterbox. Cloud keys stay on the harness; markdown is rewritten into something worth hearing before it is spoken. |
| App | src/ | The chat shell. Server-backed store, one reducer, zero client-side transports. |
| Desktop | electron/ | macOS, Windows, and Ubuntu shells with an embedded harness and platform capabilities; Apple speech stays macOS-only, Ubuntu Xorg has opt-in local control, and Wayland remains fail-closed. |
Orchestrate OpenMausBot over MCP
OpenMausBot ships a stdio MCP server for external clients such as Claude Desktop and Cursor. It exposes a deliberately bounded team control plane: inspect bots and channels, read/search compact transcript pages, create and configure bots/channels/tasks, send work, wait for completion, switch models, and interrupt turns. It does not expose approval grants, deletion, arbitrary settings, credentials, or computer lifecycle.
See MCP server setup and tool reference.
Run it from scripts and CI
The openmausbot command drives a running workspace without a screen: set a
team up from a file, give a bot one job, wait until it and every teammate it
asked are done, and export what they made. One JSON document with --json,
and exit codes a script can branch on.
openmausbot team apply team.yaml
openmausbot run "Room Lead" "Rehearse the launch of https://example.com" --export ./out
See Run OpenMausBot from scripts and CI.
Quick start
Released builds (latest release): the harness server is embedded, so no separate server setup is required.
| Download | Install | |
|---|---|---|
| macOS (Apple silicon) | OpenMausBot.dmg | Drag it to Applications, open it. Signed & notarized. |
| macOS (Intel) | OpenMausBot-intel.dmg | Same app, built for Intel Macs. Signed & notarized. |
| Windows (x64) | OpenMausBot-setup.exe | Run it — one-click, per-user, no admin rights. The installer isn't code-signed yet, so SmartScreen shows "unknown publisher": More info → Run anyway. |
| Ubuntu 24.04 (x64) | OpenMausBot-amd64.deb · OpenMausBot.AppImage | Install the .deb with APT (recommended), or make the AppImage executable and run it. Beta; GNOME is the supported desktop. |
See the Ubuntu Desktop guide for installation, capabilities, and troubleshooting. Any desktop build can also pair as a client to another Windows, macOS, or Ubuntu host over Tailscale; see desktop-to-desktop companion mode.
From source:
git clone https://github.com/milind-soni/OpenMausBot && cd OpenMausBot
pnpm install
pnpm dev:server # harness server → 127.0.0.1:8799
pnpm dev # app → http://127.0.0.1:5199
pnpm dev:desktop # Electron shell; keep the two commands above running
Requirements: macOS, Windows, or Ubuntu 24.04 x64, Node 24+, pnpm, and at least one agent CLI — claude,
codex, or grok — installed and logged in. They appear
in the model picker automatically.
Package the desktop application:
pnpm package:mac # macOS: DMG + ZIP; requires Swift/Xcode tools
pnpm package:win # Windows: installer + ZIP
pnpm package:linux # Ubuntu x64: .deb + AppImage + verified CUA runtime
Desktop capability status
| Capability | macOS | Ubuntu 24.04 Xorg | Ubuntu 24.04 Wayland |
|---|---|---|---|
| Packaged app, embedded harness, local agent CLIs | Supported | Beta | Beta |
| Composio and Boat/cloud computers | Supported | Beta | Beta |
| Explicit preview-only local screen capture | Supported | Beta | Beta |
| Bot control of this computer | Supported | Beta, explicit opt-in | Disabled: Wayland safety gate (Omarchy with Cua's Hyprland plugin: experimental) |
| Native on-device dictation | Supported | Planned | Planned |
| Dictation and Take turns calls through Fish Audio (needs a Fish Audio key) | Not used, on-device instead | Supported | Supported |
The Linux preview is user-initiated and never enables local bot control or Auto routing. On Xorg, the reviewed Cua Driver 0.41.3 runtime starts only after explicit opt-in and without its full-screen cursor overlay. On Wayland the app never starts it and clears legacy opt-ins while that real-seat safety gate remains unresolved. Chat, preview, Cloud, and Local VM remain available on both sessions. See the Ubuntu Desktop guide and tracking issues #29, #345, and #113.
The Linux packager downloads only the tag-pinned upstream archive during the build, verifies its size, SHA-256,
complete member allowlist, and inner executable hashes, then packages only the CLI and cursor-theme sidecar. The
installed app never downloads or self-updates native automation code. Cua's MIT notice, Inter's SIL OFL, a generated
third-party license report, and a CycloneDX inventory ship with the runtime. See
third_party/cua-driver/ for the reviewed provenance record.
These credentials are optional — local chat works without them. Paste a key once in App Settings (gear in the sidebar footer) when you want to enable its integration:
| Credential | What it enables | Where to get it |
|---|---|---|
Composio project key (ak_…) | Connect Gmail, GitHub, Slack, Notion, and other apps to your bots | OpenMausBot Composio setup |
| Boat API key | Give bots an isolated remote Linux computer with a desktop and terminal | Boat API key guide |
| ElevenLabs key | Read replies aloud, and call your bots | ElevenLabs API keys |
| Fish Audio key | Read replies aloud with Fish Audio voices, and call your bots | Fish Audio API keys |
Composio and Boat are third-party services with their own accounts and terms. Boat is a paid service after its trial, and using a cloud computer may incur charges.
pnpm typecheck # app + server
pnpm test # unit, driver, API, and desktop capability tests
pnpm build # typecheck + production build
pnpm check:electron # syntax-check Electron main/preload files
pnpm package:win # Windows installer + zip → release/
pnpm package:linux # Ubuntu x64 .deb + AppImage → release/
Triggers: schedules and webhooks
A trigger is "when something happens, a bot does something". Tell a bot "every weekday at 9, send me a summary
of my inbox" or "whenever our form calls, draft a reply" and it sets the trigger up in that turn with
its trigger tool (no confirmation; the chat shows a live card with Edit, Pause and Undo). Triggers, first in
the sidebar, lists every schedule and webhook, with a calendar and the run history. Bots manage them with
trigger_info (list, app events), trigger (create, update, pause, resume, run now) and delete_trigger; a webhook a bot makes never shows the bot its secret:
the person copies the link from the card or the Triggers page.
Schedules (routines) can run once, on selected weekdays, or every 5–1,440 minutes, using either a bot's configured model/computer or the Cloud VM runner. Interval schedules stay aligned to their chosen start time and skip an occurrence when the previous run is still active, so slow work cannot build an unbounded queue. A separate optional Advanced run limit can safely stop stuck work; no timeout is imposed unless one is chosen. The existing duration field remains calendar/display metadata. Webhook triggers are independent from schedules but reuse the same queued task executor and calendar receipts.
App events start a bot when something happens in a connected app ("whenever I get an email from Acme, draft
a reply"). The bot finds the app's events with trigger_info (action: "events") and calls trigger with
action: "create" and when: "app_event"; the person can also choose New → Set it up yourself → When something happens in an app.
Composio sends each event to OpenMausBot's connected-apps service, which queues it; the app collects the queue
with a long poll, so a desktop needs no public address and events wait while it is closed. Gmail is checked every
15 minutes; Slack, GitHub and other push apps arrive at once. A desktop keeps up to 500 events a day and a paid
Cloud 2,000; what is skipped shows on the automation. App events need the included connected apps: a server
using its own Composio key cannot watch apps yet. Details: docs/composio.md.
OpenMausBot starts a webhook-only receiver on 127.0.0.1:8800 by default (or one port above OMB_PORT).
Set OMB_WEBHOOK_PORT to choose another port. A webhook secret is shown once when the trigger is created
or rotated. Bearer authentication is recommended so the secret stays out of request URLs and most access
logs; a single capability URL remains available for senders that cannot configure headers. The receiver
exposes only /health and secret /hooks/... endpoints; it never exposes the app's broader API.
OpenMausBot must remain running to accept a delivery. For public internet delivery, proxy only this
dedicated receiver through a hosted relay or a tool such as Tailscale Funnel.
Status
Early but real — the loop works end to end: message → agent → streamed reply → tools → approvals →
computer use. macOS, Windows, and Ubuntu 24.04 x64 have released builds; Ubuntu remains a beta with the
capability limits above. Rough edges to expect: hosted/mobile connectivity is still being built, and webhook
triggers currently use the local receiver rather than an always-on hosted relay.
Hosted voice needs an ElevenLabs, Fish Audio, or xAI key; built-in Mac and local Chatterbox voices need no cloud key. Take-turns calls and the composer mic listen on-device on macOS and through Fish Audio speech-to-text on Windows and Linux (the same Fish Audio key as voices). See docs/voice-mode.md for the design and the known gaps.
Contributions welcome — the driver SPI in server/contracts.ts is deliberately
small; adding a provider is one file in server/drivers/ plus a one-line registration.
No code needed at all for your own engines: any ACP-speaking CLI or OpenAI-compatible endpoint
plugs in through config — see docs/custom-engines.md.
Users can add their own MCP tool servers with zero code via docs/custom-mcp-servers.md.
To run bots on OpenRouter, Fireworks AI, DeepSeek, Cline or your own OpenAI- or Anthropic-compatible provider,
see Other model providers.
Privacy
Usage analytics are optional and anonymous: product events and a once-a-day count of what is set up, never keys,
names, addresses or conversations. Turn them off in Settings → General → Usage analytics;
docs/analytics.md lists every event and property.
Support the project
OpenMausBot is free and open source. If it does real work for you, you can support its development through GitHub Sponsors with a one-time contribution or a monthly sponsorship. Your support helps fund ongoing development and maintenance; OpenMausBot remains free and open source.
Run from a terminal or on a server
With Node 24 or newer, install once and run:
npm install -g openmausbot
openmausbot
Or use npx openmausbot without a global install. First launch guides you with
arrow-key choices: choose AI access, sign in or paste a hidden API key, choose
a model, and optionally connect a phone. Next time, the same command reuses your
saved setup and opens OpenMausBot on this computer. Keep the terminal open; Ctrl-C stops
the server, not your saved work. Use --no-open to skip opening the browser.
Phone access is optional and defaults to skipping. Choose an explicitly
approved managed public HTTPS endpoint protected by pairing, an existing
Tailscale connection, or your own HTTPS reverse proxy. Both native apps pair from
this flow: the QR is an app link when you are connecting an Android phone, and the
iOS app takes either that or the web link. A browser works on either phone. A phone
cannot use a localhost link. --local ignores saved remote access for one launch;
--no-pair suppresses phone prompts and invitations but does not disable a saved
remote connection.
The web UI can also be installed from Safari or Chrome as a standalone phone app. See Install the phone web app for Home Screen installation and pairing.
Run openmausbot setup to reconfigure without resetting bots or conversations;
the saved model default applies only to new bots. Native setup confirms provider
sign-in; API setup asks before a potentially billable test message. API keys are
saved as plaintext, not encrypted, in private config.json (0600 on Unix).
See the short setup guide for account differences,
phone choices, credential storage, and cancellation.
For a server on a VPS or an always-on computer, run npx openmausbot serve
with one way in: --public-url behind your own cloudflared, Caddy or nginx,
--domain for a certificate on your own domain, --tailscale for your
tailnet, --lan for this network only, or --tunnel (after
npx openmausbot login) for a free MausBot web address. It prints one
pairing link; paste it into the desktop app under + → Connect to a
server. The short path for each install method (npx, Docker, a service) is
at the top of docs/self-hosting.md; a server from
scratch is docs/deploy-vps.md.
License
Apache License 2.0 © 2026 Milind Soni and OpenMausBot contributors,
except enterprise/, which is source-available under its
own license; delete that folder and what remains is the
open-source edition. Details, including how contributions are signed off, are
in LICENSING.md.
Packaged Cua Driver components retain their upstream MIT, SIL OFL 1.1, MPL-2.0, and other dependency terms;
the corresponding notices, license texts, source locations, and SBOM are in
third_party/cua-driver/ and ship beside the native runtime.
OpenMausBot is an independent, open-source project inspired by Grok Bot. It is not affiliated with, endorsed by, or associated with xAI; "Grok" is a trademark of its respective owner.