Botling icon

A team of Claude Code agents on your Mac, in one chat.

Hand off real work to background subagents running in parallel, see the results as live components you can pin, and change the app itself with plugins. All local, on the claude CLI you already have.

Version 1.15.1 · macOS 14 or later · universal build (Apple silicon and Intel) · Release notes

Real app, sample data

Why Botling

A team that works while you talk

Real work goes to background subagents running in parallel, so the bot is never too busy to answer you.

Answers you can see

Charts and cards drawn right in the chat, one click from becoming a pinned chip or a Board tile.

An app that changes itself

Plugins hot-reload, and in developer mode the bot works on Botling's own source.

Nothing leaves your Mac but Claude

It drives the claude CLI you already have; chats and memory are plain markdown files.

In your language

English, 繁體中文, 简体中文, 日本語 and 한국어, and bots reply in the language you pick.

Botling: the left column with the main bot and a project; the main bot's chat with math, a table, a result page preview and a decision; the project's right panel

Features

Everything below is in the app today.

01

A background subagent team

Real work (building, fixing, researching) is handed to subagents that run in the background and in parallel, so the bot stays free to talk to you. Subagents that change code work in a git worktree of their own and merge when their tests pass.

The right panel shows each one running, then settled, and a dropped network does not lose them: they carry on where they stopped.

The chat's latest message carries one row for all background work: subagents, background commands, Monitors that watch for events, and scheduled wake-ups or cron jobs. Press an icon to see the list and each task's last lines of output.

The right panel: what the bot is doing now, its results and the subagents it settled
02

Components, pins and a Board in the chat

Bots draw small HTML components (charts, cards, test summaries) inside their replies, fed by their own data or a CLI command. Cards can be live (Refresh: every 2s), updated in place by id, and keep their own state, so a todo list's ticks survive a restart.

Pin one above the input box as a status chip, float it in a corner over every chat to watch a build, or lay pins out on a per-bot Board: a widget grid where each tile keeps its own cell.

A test-summary component under a bot's reply, drawn from a CLI command
03

One click turns a reply into a component

Press Make into component on any reply (or the suggestion chip a bot adds when it sees something you will ask for again). The bot that wrote the reply writes a brief, and the Maintainer builds the first version from it, reusing a library component when one already does the job.

The spec panel beside the chat shows the fields, a test run, and each change as it happens.

A test-run reply made into a component: the test-summary card under the reply, and its spec beside it
04

/design gives you a Claude Design to pick from

Say /design (or ask for designs to choose from) and the bot makes a Claude Design and replies with its shareable claude.ai link. Pick one and the Maintainer builds that one into the app.

A /design request answered with a link to a Claude Design with three directions to pick from
05

Plugins and developer mode: change the app itself

Plugins change the app VS Code style (the input box, how messages are drawn, panels, hooks, skills and MCP servers) and hot-reload when their files change, keeping the last good version if a new one breaks. Ask the Maintainer to write one for you.

Turn on developer mode and the bot works on Botling's own source: builds, installs (with rollback) and fixes what you mark “Not right”; send the change back upstream as a pull request.

How plugins flow: the Maintainer edits the plugin library, the app hot-reloads it and hands it to every bot
06

Everything stays on your Mac

Botling drives the claude CLI already signed in on your Mac: no server, no account of its own. Chats, memory, routines and the plugin library are plain markdown and text files; each project's notes live in its git-ignored .bot/ folder.

Doctor shows which claude (and codex) the bots use and how each is signed in.

Settings, Doctor: the Claude Code and Codex CLIs found on this Mac, their versions and how each is signed in

And also

 

A main bot and one manager per project

The main bot answers “how is X going?” from each manager's memory.md, hands work over through project inboxes, and calls up a temporary research or prototype team for anything else. Make bots of your own too.

Bots that sleep

Each bot is a long-lived claude process that naps after 50 idle minutes, writing down what matters first, and wakes when you or a routine need it.

Decisions as buttons

With a recommended option and what each one costs; tool permission asks (Allow once / Always / Don't allow) in the chat, with Claude Code's auto mode on by default.

Results as claude.ai Artifacts

Reports, comparisons and previews are published as a private claude.ai Artifact and linked in the reply as a card; anything sensitive stays a local HTML page.

A rich chat

Markdown, LaTeX, tables, images, videos, attachments, replies, group chats, result pages as preview cards, and an input box that works with CJK input methods.

Call in any bot with @name

It answers in your chat and keeps the work, with its steps, in its own chat too.

Drafts that stay

What you typed but did not send stays in each bot's input box across switches and restarts.

Five languages

English, 繁體中文, 简体中文, 日本語 or 한국어 (or follow the Mac), switched at once without a restart. Bots reply in it too; what bots write and your own data are never translated.

Routines

A crontab-style routines.cron per bot, which bots edit when you ask.

Usage at a glance

Today's tokens per bot, rings for the 5-hour and weekly limits, a daily budget, per-bot model and effort, and Doctor to check your Claude Code and Codex installs.

Panels that fold

The left column into a strip of faces, the right panel into icons.

Claude and Codex in one bot

A bot can run on Claude, on Codex, or both at once as two heads. The heads can hand work to each other, and Codex work runs in app-managed workers while you keep chatting. Both engines share the same memory.md.

Answer with

Pick Claude, Codex or Both above the input box; the choice is saved per bot. A message starting with @claude, @codex or @both overrides it for that message only.

Cute characters

Claude and Codex appear as small animated characters wearing the bot's face, with awake, working, waiting and sleepy states. Switch between Cute and Original in Settings, and set the chat size.

Web bots

Embedded Gemini, ChatGPT, Claude and Grok chats, with several Google accounts for Gemini and pinned conversations. A Capture tool records a web page's traffic to help fix page readers.

Reactions and a unified input dock

Emoji reactions, work status and read heads share the message footer. The input dock brings pinned components, Answer with and multi-bot hand-offs together.

Plugins & components

Plugins change the app itself, VS Code style. A plugin is a folder with an npm package.json whose ccb field declares up to three parts.

Web part

Changes the input box, how messages are drawn, components and right-column panels.

Program part

Runs in a Node plugin host: hooks such as beforeSend, commands, routines, storage.

Claude part

Skills, agents and MCP servers handed to every bot.

Or ask the Maintainer to write one for you; it can also turn one of your own projects into a plugin, asking before it reads the folder. External plugins from git, npm or a zip are installed only after you approve a card listing their source, license, permissions and MCP servers. Secrets go to the macOS keychain.

Requirements

The app is ad-hoc signed, not notarized. The first time, right-click it → Open → Open.

NeedsVersion
macOS14 Sonoma or laterrequired
Claude Code CLI2.1.111 or later, signed inrequired: every bot is a claude process
Codex CLI0.99.0 or later, signed inoptional: for bots that call codex
Node.jsany current LTSrecommended: plugins with a program part
gitrecommended: the plugin library's history

Settings → Doctor checks both CLIs the way bots find them: version against the minimum, how each is signed in (no tokens spent), and the latest release on npm, with a one-line fix to copy when something is off.

  1. Download the latest macOS zip from Releases.
  2. Unzip it and drag the app to /Applications.
  3. Open it. If the gear at the bottom of the left column has a red dot, open Settings → Doctor and fix what it lists (usually claude auth login), then say hello to the Main bot.