Alpha: unsigned macOS snapshot. Features and data structures may still change. v0.1.0-rc.5

Persistent AI teammates,
organized by conversation,
on your own Mac.

Bots have names, duties and boundaries. They chat one to one, join groups, get @mentioned and hand work to each other. The window, runtime, sessions and shared workspace live on your Mac; you plug in the model endpoints and MCP tools.

Runs locally pnpm install && pnpm dev

Scroll to watch the full flow

From an empty roster to a delivered report.md, in one pass

The window on the right operates itself as you scroll. It is a reconstruction of the current app; every step maps to a feature that exists today, not a concept sketch.

Settings double as the setup wizard: one local folder as the shared workspace, plus at least one OpenAI-compatible endpoint. The model list records strengths, thinking levels and price, so an agent can pick the model and thinking level for each turn — and leave a reason — instead of asking you every time.

The API key goes in this field only. Never in chat.

Name, duties and boundaries are all required. The avatar is generated from the name. On save, one more face appears on the roster row and a direct chat opens. The roster has no cap and does not include you.

The roster is the row of avatars at the top of the sidebar.

Tell Coordinator who you need. It uses built-in tools to create Researcher and Writer, opens the group "Research" and pulls all three in. Creating bots, groups and configuration is one sentence in a chat.

Bots can create bots, groups, endpoints and MCP servers.

Send a message without @ and every bot present decides to join or pass; passing never enters the transcript. An @mention makes joining mandatory. The app does not arbitrate who speaks and has no turn-count breaker.

Judgement: Researcher joins, the others pass.

Researcher wants an MCP server to fetch web pages. Adding MCP, adding endpoints, reading or writing outside the workspace and outbound network all wait for you; adding MCP can never be set to Always allow. Calls to configured tools run directly.

Allow once or deny. Secrets never enter the transcript.

Researcher writes @Writer into its message and Writer wakes up to continue. Files written during the turn attach to the reply automatically; there is no separate artifact store.

One workspace. Nothing copied, nothing isolated.

Open report.md and the chat preview pane shows a Monaco editor: line numbers, find, folding, rendered Markdown or source. Edit and press Cmd+S to write back to the same path; ⌘O in the sidebar opens an independent workspace overlay from the right (folder tree + preview), without taking the chat preview pane.

It writes a real file on disk.

The window hides in the tray and running turns continue. Stop in a direct chat ends the current turn immediately; in a group you stop bots by telling them. Only Cmd+Q or Quit in the tray ends the window and the daemon.

Closing hides. It does not quit.

What is live, what is being built, what we will not do

"Live" means the code exists. It does not mean every model, tool combination or full task path has been accepted in a real environment.

Live In progress Not doing
Runtime LivemacOS window, resident daemon, local shared workspace, SQLite state In progressLong-running stability in complex real-world scenarios Not doingCloud VMs, cloud billing, multi-user SaaS
Bots LivePersistent roster, direct chats, multi-bot groups, @mentions, judgement, async handoffs; a review at the end of a correction, kept as that bot's experience In progressMeasuring whether reused experience actually picks better and finishes faster Not doingDisposable chat boxes, a central dispatcher, turn-count breakers
Models and tools LiveMultiple OpenAI-compatible endpoints; stdio and Streamable HTTP MCP; an agent picks the model and thinking level before each turn and says why, with rules as the fallback In progressAgent-led choice of tools and collaboration, decided before the turn too Not doingVendor lock-in, a provider catalogue, pretending every implementation is compatible
Safety and permissions LiveApproval cards for dangerous actions, Keychain secrets, Always allow rules, Stop in direct chats In progressFiner-grained MCP permission policies Not doingTreating bots as security sandboxes, pretending full autonomy is safe
Managing the app by chat LiveBots edit profiles and skills, create bots and groups, configure endpoints, model lists and MCP through tools In progressConversational coverage of every operation, including first-run setup Not doingDeep menus for everyday configuration

See the Roadmap for direction; CONTEXT.md is the source of truth for vocabulary.

Download, or run from source

Open source under MIT. The alpha snapshot is macOS only and unsigned; Windows and Linux are out of scope.

Requires macOS, Node.js 22+, pnpm 12.3.4, Bun 1.2+, Rust / Cargo and the Tauri macOS prerequisites (including Xcode Command Line Tools).

  1. Pick a local folder as the shared workspace, ideally outside the source checkout; missing folders are created.
  2. In Settings, choose a workspace folder, then enter an OpenAI-compatible endpoint URL and API key, then the model list and default model.
  3. Create the first bot from the sidebar with a name, duties and boundaries, and open a direct chat.
  4. Ask it to create other bots, form groups or propose MCP configuration; approve dangerous actions in the app.

Download the alpha snapshot

v0.1.0-rc.5

The latest GitHub Release ships .dmg files for Apple silicon and Intel. The build is unsigned: if Gatekeeper blocks the first launch, right-click and choose Open, or run (full FAQ: docs/gatekeeper.md; expensive actions still ask first):

xattr -dr com.apple.quarantine "/Applications/Real Bot.app"
Go to the latest release
zsh — real-bot
# Clone and install
$ git clone https://github.com/Blackman99/real-bot.git
$ cd real-bot
$ pnpm install

# Start the daemon and the desktop window in parallel
$ pnpm dev