OpenMausBot

milind-soniApache-2.0活跃维护

开源自托管的 Grok Bot 替代方案,给 AI 智能体配一台可操作的虚拟机,让它们像人一样在桌面环境里执行任务。

Open-source Grok Bot alternative with a virtual machine that bots can use

v0.1.150发布于 2026-11-09 03:26 UTC19,984star +3,072 / 7 天2,731fork同步于 2026-11-10 05:23 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/milind-soni/OpenMausBot && cd OpenMausBot
pnpm install
pnpm dev:server
pnpm dev
硬件要求按 README 说明

README 未说明显存或 GPU 要求;需 macOS(Apple silicon/Intel)、Windows x64 或 Ubuntu 24.04 x64,Node 24+、pnpm,并至少装好一个已登录的 agent CLI。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

开源版 Grok Bot:在聊天应用里管理一队本地 AI 智能体,每个都有自己的模型和电脑

开源自托管的 Grok Bot 替代方案,给 AI 智能体配一台可操作的虚拟机,让它们像人一样在桌面环境里执行任务。

核心能力

  • 每个 bot 是独立 agent,可各自指定模型与人格
  • 复用本机已登录的 claude、codex、grok CLI,无需新账号
  • harness 服务跑在 127.0.0.1,数据存 ~/.openmausbot
  • bot 可操作云端 Linux 桌面、隔离本地 VM 或本机
  • 通过 Composio 接入 500+ 应用,支持审批卡片

容易踩的坑

必须先在机器上安装并登录 claude、codex 或 grok 之一,否则模型选择器为空;Windows 安装包未签名,SmartScreen 会提示未知发布者,需 More info → Run anyway;Ubuntu Wayland 下 bot 控制本机被禁用,仅 Xorg 需显式 opt-in;Composio、Boat 等集成需在 App Settings 里另填 API key。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README
这个条目还没有人工点评。如果它对你很有用,欢迎到 提交仓库 页写下你的使用经验。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    最近发版

    5 个版本v0.1.150
    1. 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

    2. 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

    3. 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 public http:// address is refused with what to do instead.
      • One pairing code. Servers and the web /pair page 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). --lan makes 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

    4. 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

    5. 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

    README 原文

    未翻译

    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.

    TypeScript React Electron Agents Release PRs

    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, and grok CLIs 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.1 owns 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 forWhat it isHow OpenMausBot differsRead more
    Open source Grok BotxAI's roster of bots on one shared cloud computer, Grok only, from a SuperGrok or Cursor planSame roster shape; any model per bot; your own machine; approval cardsGrok Bot vs OpenMausBot
    Open MuseMeta's single personal agent in a Meta cloud VM, US and Canada onlyA team instead of one agent; runs anywhere; data in ~/.openmausbotMeta Muse alternative
    Open dotsOpenAI's always-on agent inside ChatGPT, GPT only, Pro and Business Premium plansSeveral agents; your Claude, ChatGPT or Grok login; no plan requiredOpenAI dots alternative
    Open CueManus's invite-only agents with their own phone, email and walletNo invite; OAuth instead of passwords; open sourceCue by Manus alternative
    Open InstinctSpear Street's invite-only agent that holds your passwords on a cloud computerAsk for approval when you want it; signs in over OAuth; your machineInstinct 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

    Claude Codex Grok Electron React Vite Tailwind CSS Composio Boat Cua ElevenLabs Fish Audio GitHub Sponsors

    ServicePurpose
    Claude · Codex · GrokThe agents behind every bot, run through their local CLIs
    ElectronDesktop shells for macOS, Windows, and Ubuntu
    React + Vite + Tailwind CSSThe chat app UI and its build
    Boat (boat.dev)Each bot's cloud computer · our sponsor
    ComposioConnected apps — Gmail, Slack, GitHub, and more
    Cua DriverNative computer use on your own machine
    ElevenLabs · Fish AudioHosted voices for bots that talk back
    GitHub SponsorsOne-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 · …")]
    
    LayerWhereWhat it does
    Driversserver/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.
    Harnessserver/harness/Registry (configs → live instances) and the fan-in event bus every client folds.
    APIserver/index.tsBots, turns, approvals, model catalog, computer lifecycle, connectors, config — HTTP + SSE.
    Voiceserver/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.
    Appsrc/The chat shell. Server-backed store, one reducer, zero client-side transports.
    Desktopelectron/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.

    DownloadInstall
    macOS (Apple silicon)OpenMausBot.dmgDrag it to Applications, open it. Signed & notarized.
    macOS (Intel)OpenMausBot-intel.dmgSame app, built for Intel Macs. Signed & notarized.
    Windows (x64)OpenMausBot-setup.exeRun 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.AppImageInstall 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

    CapabilitymacOSUbuntu 24.04 XorgUbuntu 24.04 Wayland
    Packaged app, embedded harness, local agent CLIsSupportedBetaBeta
    Composio and Boat/cloud computersSupportedBetaBeta
    Explicit preview-only local screen captureSupportedBetaBeta
    Bot control of this computerSupportedBeta, explicit opt-inDisabled: Wayland safety gate (Omarchy with Cua's Hyprland plugin: experimental)
    Native on-device dictationSupportedPlannedPlanned
    Dictation and Take turns calls through Fish Audio (needs a Fish Audio key)Not used, on-device insteadSupportedSupported

    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:

    CredentialWhat it enablesWhere to get it
    Composio project key (ak_…)Connect Gmail, GitHub, Slack, Notion, and other apps to your botsOpenMausBot Composio setup
    Boat API keyGive bots an isolated remote Linux computer with a desktop and terminalBoat API key guide
    ElevenLabs keyRead replies aloud, and call your botsElevenLabs API keys
    Fish Audio keyRead replies aloud with Fish Audio voices, and call your botsFish 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.