Build Your Own Grok Bot With Core AI Models and Stream Chat

Bring AI coworkers onto your team, in one seamless environment built for humans and agents to collaborate.
Build Your Own Grok Bot With Core AI Models and Stream Chat

Multi-agent and human collaboration are becoming part of AI messaging tools. A platform like Buzz offers a unique space for agents and people to chat and collaborate on project management, coding, pull requests, and more. Slack Code, for instance, helps create code channels in Slack to support agent and human collaboration.

Grok Bot is another agentic platform where people can chat with a team of AI colleagues, each owning its own remote cloud computer.

StreamBot app screens showing the Threads list, the Team grid of AI teammates, the Models list of on-device AI models, and a chat with the Mira bot

This article will show you the technologies, AI frameworks, and Apple APIs required to create an iOS app similar to Grok Bot, with the underlying chat messaging infrastructure powered by Stream. The complete source code can be found on GitHub.

Note: The app in this article is a proof of concept and does not include all the features of Grok Bot, such as computer use, each bot having its own cloud computer, and more.

What is Needed To Build a Grok Bot Clone?

StreamBot app screens showing the Mira bot's settings and plugins, the plugins marketplace, and Nova chat screens including a voice recording prompt

This tutorial uses the Apple Core AI framework to create the sample demo. The framework and its associated tools and APIs are new (introduced during WWDC26).

To test the demo hosted on GitHub or the one you will build after reading this article, ensure you have the following:

What is Grok Bot?

Grok Bot is a platform for a general-purpose, always-on team of AI agents, available on Android, iOS, and SuperGrok. Its interface is similar to iMessage and other popular messaging apps. However, its agents have memory, tools, computer-use capabilities, and access to their own cloud-based computers. The individual bots in Grok Bot are colleagues/teammates who can access and use the tools you use every day, such as the calendar, setting reminders, and more.

Diagram showing the Chief of Staff bot connected to the Email Manager, Booker/Orderer, and To-Do List Manager bots, which are also interconnected

In Grok Bot, there is a chief of staff, a bot that has others reporting to it. The reporting bots can consist of an email manager, a booker/orderer, and a to-do list manager. The individual bots in the system can communicate with one another or directly with the chief of staff. They all run remotely on their own computers.

Grok Bot Use Cases

Grok Bot can be used in several application areas. You can build a bot to scan and sort emails to determine which to archive, reply to, and flag. This is useful for sorting out unimportant emails you do not want to read. In your calendar, you can use it to check for overlapping meetings and reschedule some. Even for agentic coding tasks, it can be configured to invoke the Cursor Agent CLI. In addition, below highlights some of its other use cases.

  • Manage Expenses: Utilize the computer-use feature for expense filing use cases, such as handling receipts, reporting, and flagging.
  • Outbound Sales: Connect LinkedIn and Salesforce for outbound sales.
  • Engineering: Build features and push code changes to GitHub, both examples implemented by the Cursor engineering team.
  • Account Management: Use Grok Bot to monitor a service's usage, open threads for issues, and manage subscription renewals.
  • Automation: Automatically pull content, such as news, from different sources.

Key Features:

Grok Bot has several features you can bring to any project. There is a chief of staff bot that connects to external applications such as Telegram, Slack, email, and more, and hands off tasks to other bots. It supports tagging agents/bots in conversations to perform tasks, similar to how actual employees and teammates tag others in Slack. It can be customized with agent skills, instructions (what to do and not to do), and tools. The following also highlights some of its key features.

  • Teach Bots to Learn: Teach the system to learn about specific actions and workflows. For example, the types of emails to archive or delete when received. You can even teach Grok Bot to mimic your writing. This is useful for drafting emails and writing articles that sound like you.
  • Browser Use: Try the cloud-based browser-use feature to automate anything you do in the browser, like booking a flight or buying an item on Amazon.
  • Connectors: Easily connect with external applications such as GitHub, GitLab, calendar, email, Slack, etc.
  • Robust Permissions: Configure who or which agent has access to channels and message threads.

Build Grok Bot With Core AI for iOS/SwiftUI

Architecture diagram showing a message flowing from the user through StreamBotMessageWatcher, StreamBotEngine routing, CoreAITextSessionProvider and StreamBotSender, into StreamBotStore

The actual Grok Bot app for iOS does not support model selection, has no subagents like Hermes, no context window, and no thinking-level settings. It selects the best internal options for you rather than offering customization. The demo app, on the other hand, lets you choose from a set of ready-to-install Core AI models.

The following sections walk you through creating an iOS 27/SwiftUI app with Stream Chat integration and Core AI as the agentic framework.

Every Core AI model runs on-device with no inference server or network connection, except for chat message channels. When you launch the app, you can hire a bot, assign it some work in threads, monitor its progress, and approve its results. This might mean asking an agent for scheduling an appointment in a calendar or requesting it to perform an action. You can also teach a bot to do a specific task again and extend its capabilities with plugins. To mimic Grok Bot's computer use feature, StreamBot can call some apps on your iPhone (mail, contacts, reminders, and calendar) to execute an action via the plug-in marketplace in the app.

Jump to your favorite coding tool like Cursor, use a coding agent, install Stream CLI and Swift Skills, and prompt the agent to get started.

Building your own app? Get access to our Livestream or Video Calling API and launch in days!

Specify a Prompt

Once you install the required agent skills in a chosen coding platform, you can specify in your prompt to use Apple's Core AI framework, appropriate on-device models from the following repos, and Foundation Model (Apple Intelligence) as default, to build the iOS/SwiftUI bot system. Referencing the /stream-cli and /stream-swift skills will seed the app with some randomly generated users/bots with different functions.

StreamBot app screens showing the Threads list, the Team grid of seeded bots, and the Hire a bot modal for Nova

The two repos above contain a couple of open-source on-device models for vision, speech, language processing, and more. The following are those bundled to the sample project.

Model Bundle Size Notes
Apple Foundation Model built in - SystemLanguageModel.default via FoundationModels. It supports guided generation and needs Apple Intelligence enabled. It can run inference on real devices and not the simulator
Qwen3.5 0.8B qwen3_5_0_8b_decode_int8hu_perchan_sym 1.3 GB For faster responses
Qwen3.5 2B qwen3_5_2b_decode_int8lin 2.4 GB For text generation but it can be slower than the 0.8B version
LFM2.5 1.2B lfm2_5_1_2b_instruct_decode_int8lin 1.2 GB Liquid AI non-thinking instruct model for text generation
Granite 4.0-H 1B granite_4_0_h_1b_decode_int8lin 1.0 GB IBM hybrid SSM (Mamba2 + attention)

The complete project on GitHub includes nine seeded AI teammates and two others you can hire in the app and assign specific capabilities to.

How It Works

Bots in the demo app live in Stream's backend as ordinary chat users. They have access to tools, plug-ins, and custom instructions. The platform uses custom data for approval policy. From the Team tab of the app, you can hire new team members for any function, which creates a Stream user and a thread. When an agent performs a specific task, there is an option to teach it as a routine.

This can be done by long-pressing any message in a thread and selecting Teach as a Routine. The bot reads the conversation, distills it into a certain workflow with a trigger and an ordered step. Routines are stored on the device. The next time a prompt matches a stored routine, the selected bot retrieves and runs the taught steps. A routine can also be scheduled in the settings screen.

Bot Role Lane Runs In Stream
Nova Chief of Staff Coordination On its own Seeded
Ada Sales Outbound Sales Queues for review Seeded
Ravi Talent Scout Recruiting Queues for review Seeded
Mira Inbox Manager Inbox Never sends without you Seeded
Otto Expense Manager Finance Queues for review Seeded
Juno Invoice Collector Finance Queues for review Seeded
Sable Account Health Customer Success Queues for review Seeded
Pike Bug Reproduction Engineering On its own Seeded
Vesper Competitive Intel Research On its own Seeded
Lumen Paid Media Growth Queues for review Hire from Team
Reed Product Performance Product On its own Hire from Team

Configure Bots With Plug-Ins

Depending on the actions or work you want a bot to perform, configure it to access tools like the calendar, contacts, reminders, clock, and date. This can be done using the built-in plug-in support. A plug-in in the demo app consists of skills and sources (connectors) that a bot can read to set boundaries and shape its output.

The above video preview demonstrates two scenarios. The first part shows how to add an event to the iPhone calendar app. The second part instructs a bot in the demo app with a voice prompt to retrieve information about the event (iOS calendar app) stored for a specific date. Voice prompting is a built-in feature in the app, allowing users to prompt using speech. The underlying voice writing implementation uses the SpeechAnalyzer API and its SpeechTranscriber model. The following highlights the supported plug-ins in the demo app.

Plug-in Type Role
Calendar Connector + 2 skills Reads calendar events for a day or a range through EventKit
Reminders Connector + 1 skill Reads open reminders and due dates
Contacts Connector + 1 skill Looks up contacts
Threads Connector + 1 skill Searches everything said in threads, via Stream SDKs' message search
Clock & Dates Connector Deals with date arithmetics
Meeting Notes 1 skill Handles decisions, owners, and open questions
Bug Reports 1 skill Handles all issues about bugs
Cold Outreach 2 skills Manage follow-ups
Weekly Review 1 skill Handle what has been changed, stuck, and what is next
Account Health 1 skill Checks all flags and rank them for sooner or later actions
Paid Media 1 skill Manages ad campaigns
Product Performance 1 skill Manages what has been moved, what it means, and more

Limitations of the Local Grokbot

  • Limited Tools: No browser or CRM. What a bot can reach depends on the assigned plugin, your calendar, reminders, contacts, threads, and clock.
  • In-App Bot Tokens: Fine for demonstration purposes. A production build would mint them on the server or send bot messages from a backend.
  • Scheduled Routines Are Not 24/7: They fire the next time the app is opened. There is no background agent computer.
  • Limited to Small On-Device Models: Using large on-device Core AI models can result in high latency. The default Apple Foundation Model may not give you a satisfactory quality response. Pick Qwen-3.5 2B when high quality matters more than latency.

Build Grok Bot for Other Platforms

This article guided you through creating a Grok Bot-like app experience for iOS using local Core AI models and integrating the Stream Chat SwiftUI SDK. Check out the project files on GitHub and clone this repo to run and test the demo Grok Bot app in the directory AI/OwnGrokBot.

You can build a similar experience on our other SDK platforms, such as Android, Flutter, React, and React Native with an on-device AI framework like LiteRT. Refer to each platform's documentation to learn more.