Setting up AI Coworkers with OpenBot
A first look at CopilotKit's OpenBot: an open-source template for running AG-UI agents as coworkers with their own computers, gated through a single policy-enforcing gateway.
4 min read
What this is
OpenBot is an open-source template from CopilotKit for running AI agents as "coworkers" you can hand real work to. Each Bot gets its own computer — a container with its own browser, its own logins, and its own /workspace volume — and every action it takes against a browser, file, MCP server, or component passes through a single gateway that decides whether to allow it and records what happened either way. The project explicitly describes itself as "a template, not a product," with no hosted version and nothing published as a package to depend on. You clone the repo, replace the example coworkers under examples/ with your own, and run it yourself. It's currently alpha and under active development, per the GitHub repo.
Install
There's no package to npm install. You clone the repository and bring it up with Docker Compose and Bun. The documented sequence from the quick start is:
Requirements per the source: Docker (for PostgreSQL and the Bots), Bun, a CopilotKit Intelligence project (a free plan exists, and Intelligence can be self-hosted), and a model key — the proof-of-concept Bot uses OpenAI, and the LangGraph Bot can use OpenAI, Anthropic, or Google.
scripts/start.sh starts the Docker services, applies migrations, starts the API server on port 3001, starts the app on port 3010, and checks that everything answers its own health route before printing next steps. Then you open http://localhost:3010.
The repo also ships a prompt.txt meant to be pasted into an AI assistant if you're setting this up with one — the README says it carries the same steps plus the parts that are easy to get wrong, like which of the ten blank keys in .env.example you actually need to fill yourself (three) versus which the start script generates.
Hello world
Once the app is running, the shortest documented interaction is in the "Try it" section of the README: open /bot and give it a task.
No agent configuration is required first, because a default Bot is already wired up. From there the source suggests two follow-ups: ask the Bot to fill out https://httpbin.org/forms/post and then inspect /admin/audit to see the recorded action trail, or open /admin/boundaries, add a deny rule, and retry the same browser action to watch it get refused.
The one concept you must understand first
Everything in OpenBot routes through one gateway, and that gateway is the whole point. Per the source: "Anything a Bot does to a computer, a file, an MCP server or a component goes through one gateway that decides and records it. That is the difference between an agent that can use your tools and an agent you can let near them." Concretely, the gateway resolves the target from a server-held snapshot, evaluates a CEL policy against it (deny is checked before allow, a missing policy permits nothing, and a broken rule refuses rather than opens), writes an audit row, and only then calls the Bot's computer — there's no path that acts before the record exists. Once you see the gateway as a mandatory checkpoint rather than a logging layer bolted on afterward, the rest of the surface area — boundaries, audit, credentials, MCP grants — reads as configuration of that one checkpoint rather than separate systems.
Next steps
- The full docs index, for everything past the quick start: docs/README.md
- Deployment sizing, platform notes, and multi-replica behavior for running this somewhere other than a laptop: docs/deployment.md
- The AG-UI protocol that any Bot must speak to plug in — relevant once you want to bring your own agent instead of using the shipped examples: ag-ui-protocol/ag-ui
More background and framing on the project is at copilotkit.ai/openbot.
Sources
- CopilotKit/OpenBot
<div align="center"> # OpenBot **AI coworkers you can hand real work to, and actually trust with the access.** Each gets a computer of its own: a real browser with its own logins, its own files, and only the tools you grant. Every action decided before it happens and recorded after. [**copilotkit.ai/openbot**](https://copilotkit.ai/openbot) · [**Quick start**](#quick-start) · [**Features**](#features) · [**Bring your own agent**](#bring-your-own-agent) · [**Architecture**](#architecture) · [*