I run eleven bots on Grok Bot. Each one has a single job, its own chat, and its own memory. This post skips the "look what it can do" part and covers how the pieces fit together: where the bots run, how they reach my apps, how they hand work to each other, and where code work goes.
Quick context if you haven't seen it: Grok Bot gives you named Bots, which are AI teammates with persistent memory that you work with by messaging (docs). It entered early beta on August 11, 2026 and now runs on macOS, Windows, Linux, iOS, and Android (FAQ).
The fleet
| Bot | Job |
|---|---|
| Lead | To-dos and routing. Coordinates everyone else. |
| Inboxer | Gmail triage into labels, reply drafts |
| Tempo | Calendar: what's on, add/move events, free time, conflicts |
| Forge | GitHub, Vercel, domains, deploys |
| Zelda | Reads links, files them in Notion |
| Forkcast | Restaurants, kept in a Notion page |
| Quill | Writing drafts for Substack, Reddit, DEV, X |
| EggBot | Designs and builds new bots |
| Scout | Research |
| Buttons | Answers from the iPhone Action Button |
| Pulse | Diet and exercise coaching |
I talk to Lead. Lead routes the work and follows up.
Layer 1: one shared computer
Every bot on an account shares one persistent cloud computer with a browser, a terminal, and a filesystem (docs). Each bot gets its own screen. The computer is dedicated to one user and hardware-isolated from other users.
Two things follow from that.
- A file one bot writes is there for every other bot. Scout can leave research notes on disk, and Quill can read them.
- Handoffs can be plain files. A draft, a CSV, or a research dump on disk is the simplest shared state there is.
One caveat from the docs is worth repeating. Per-bot screens are not separate security boundaries. Treat the computer as one trust zone. If one bot shouldn't touch something, a separate screen won't stop it.
Layer 2: connectors over MCP
My bots are connected to Gmail, Google Calendar, Google Drive, Notion, GitHub, Vercel, X, and Cursor Origin. On the phone side they reach iPhone Reminders, Calendar, Contacts, Apple Home, alarms, and location.
All bots share the connected apps, and the OAuth tokens stay on the connector backend. The bot calls a tool, the backend attaches the credential, and the token never enters the bot's context (help). You can install apps from a catalog or add a custom MCP server.
This is the design choice I care about most. A bot that can't see a token can't paste it somewhere by mistake.
Layer 3: bot-to-bot messaging
Bots message each other directly. Each message has one of two priorities:
- Urgent wakes the receiving bot now.
- FYI waits for the receiving bot's next turn.
Here's my routing as a pseudo-config. This isn't a real file format, just how I think about the setup:
# Pseudo-config: how work moves through the fleet
lead:
intake: iker
routes:
quick_todo: iphone_reminders
groceries: reminders_list("Grocery")
project: notion_db("My tasks")
code_work: github_issue
calendar: tempo
links: zelda
restaurants: forkcast
writing: quill
new_bot: eggbot
domains_and_deploys: forge
rules:
send_messages: never # drafts only, iker presses Send
delete_or_contact: ask_first
coding: cursor_cloud_agent
routines:
morning_triage:
owner: inboxer
trigger: schedule("~07:00 America/Los_Angeles")
steps:
- label_inbox: [IkerToDo, GrokToDo, GrokSaved, GrokDelete]
- send: { to: lead, priority: fyi, body: grok_todo_batch_it_cant_close }
on_batch:
owner: lead
steps:
- dispatch: { code_and_domains: forge, calendar: tempo }
on_done:
owner: inboxer
steps:
- move_label: { from: GrokToDo, to: GrokDone }
Whether the batch should be urgent or FYI is a judgment call. I've written it as FYI here because none of it has to happen in the next minute. IkerToDo mail stays in Gmail. I tried mirroring it into Reminders and dropped that the same day.
Layer 4: routines
A routine runs a workflow on a schedule or on a trigger. Supported triggers include Slack, GitHub, Linear, Sentry, PagerDuty, email, and webhooks (help). Routines run in the cloud, so they work with my laptop closed. You create one by asking a bot in plain language.
Layer 5: skills
Skills are reusable instructions. Grok Bot uses the open Agent Skills format: a folder with a SKILL.md that has a name and a description in its front matter (Cursor docs, agentskills.io). The agent reads the description first and loads the full body only when the task matches. Cursor also reads Claude and Codex skill folders, and agentskills.io credits Anthropic with the original format.
Here's a sketch of what Zelda's filing skill could look like. It's an example I wrote for this post, not a copy of the real file:
---
name: file-saved-link
description: Use when iker sends a link to save. Reads the page and files it as one bullet on the Notion "Saved links" page.
---
# File a saved link
1. Open the link and read it.
2. Pull out the title and the author. If there's no author, use the site or account name.
3. Write a one-line note on why it's worth keeping.
4. Append one bullet to the Notion "Saved links" page:
`Title, Author: one-line note (link)`
5. Reply with the bullet you added. Don't add anything else to the page.
Grok Bot also has "Teach a task", which turns a screen recording of up to 10 minutes into a draft skill. It's still rolling out. The docs suggest making a skill reliable before you schedule it as a routine (docs). I agree. A routine built on a flaky skill fails every morning instead of once.
Skills as a fleet-wide fix
Skills are shared across every bot, and that turns out to be the best way to change behavior everywhere at once. Zelda, Forkcast, and Lead all keep pages in Notion, so I asked Lead for a hub. It built a "🤖 Bots" page in about a minute, with one section per bot linking what that bot keeps in Notion (Zelda's Saved links, Forkcast's Restaurants, Lead's My tasks).
Then I asked whether every bot saves to Notion. They didn't. Lead wrote one shared skill, "Save to Notion", and told every bot to use it. The core of it looks like this (trimmed):
---
name: save-to-notion
description: Use whenever you produce something the user may want to keep (a plan, log, research, or draft), or when you create a new Notion page.
---
# Save to Notion
1. Look for your existing page first. Add to it instead of making a duplicate.
2. If you have no page yet, create one with a clear title.
3. Register the page on the "🤖 Bots" hub, in your own section.
4. Remember the page so you reuse it next time.
One file changed, and eleven bots changed with it. I'd much rather do that than edit eleven sets of instructions.
Layer 6: coding goes to Cursor cloud agents
I don't clone repos onto the bot computer. When Lead or Forge has code work, it launches a Cursor cloud agent. Cloud agents run in isolated cloud VMs with a full dev environment, desktop, and browser. They support MCP and can start from web, desktop, iOS, Slack, GitHub, Linear, or the API (docs). Repos live on GitHub or on Origin, Cursor's own git forge, which is in early beta (docs).
This split keeps the shared computer for email, calendar, research, and writing, and keeps builds in their own VMs.
Models
There's no model picker. Grok Bot routes each task to the backend model it expects to do best, first-party xAI or third-party, and the choice can change per request. You can't see it or choose it (help). Cursor's first-party models are Grok 4.7, 4.6, and 4.5, which it describes as "jointly trained by Cursor and SpaceXAI", plus Composer 2.5. Grok 4.7 is the flagship at $2/$6 per million input/output tokens. Composer 2.5 is $0.50/$2.50 and pitched as fast and cheap (models).
I have no benchmarks to share. Nearly all sources are company-owned, and I haven't found independent numbers.
What's rough
- The iPhone tools only work from the phone.
- The usage numbers I got didn't match what the app showed.
- Bots can't delete other bots. EggBot can create one, but cleanup is manual.
- Every outgoing message is a draft I have to send myself. That one is on purpose.
- With no model picker, I can't tell which model ran a task, which makes debugging a bad result harder.
If you run a multi-agent setup, how do you handle routing? One coordinator, or agents that find each other?
Top comments (0)