<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>AG-UI on RockB</title><link>https://baeseokjae.github.io/tags/ag-ui/</link><description>Recent content in AG-UI on RockB</description><image><title>RockB</title><url>https://baeseokjae.github.io/images/og-default.png</url><link>https://baeseokjae.github.io/images/og-default.png</link></image><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 21 Sep 2026 01:01:56 +0000</lastBuildDate><atom:link href="https://baeseokjae.github.io/tags/ag-ui/index.xml" rel="self" type="application/rss+xml"/><item><title>OpenBot Review 2026: AI Coworkers That Each Get a Computer of Their Own</title><link>https://baeseokjae.github.io/posts/openbot-ai-coworker-computer-2026/</link><pubDate>Mon, 21 Sep 2026 01:01:56 +0000</pubDate><guid>https://baeseokjae.github.io/posts/openbot-ai-coworker-computer-2026/</guid><description>OpenBot is CopilotKit&amp;#39;s open-source, MIT-licensed platform where every AI coworker gets its own browser, logins, files, and a fail-closed policy gateway that decides every action before it runs.</description><content:encoded><![CDATA[<p>OpenBot is CopilotKit&rsquo;s open-source, MIT-licensed platform where every AI coworker gets a computer of its own — a real browser with its own logins, its own files, and only the tools you grant. It runs self-hosted on Docker Compose with your own PostgreSQL, accepts any AG-UI agent, and gates every action through a fail-closed policy before it happens. As of late September 2026 it sits at roughly 5,200 GitHub stars, 663 forks, and 29 contributors.</p>
<h2 id="what-is-openbot-an-open-source-ai-coworker-platform">What Is OpenBot? An Open-Source AI Coworker Platform</h2>
<p>OpenBot, created on 17 August 2026 by CopilotKit, is an open-source platform built around a simple but consequential idea: give an autonomous agent not a chat window, but a machine it fully controls. Each AI coworker runs in its own isolated container with its own Chromium browser, its own persistent browser profile, its own workspace volume — and only the tools, logins, and files you explicitly grant it.</p>
<p>The platform was open-sourced under an MIT license and hit 1,089 GitHub stars in its first three days, 3,364 by 29 August, and roughly 5,200 by late September 2026. The latest tagged release, v0.0.13, shipped on 18 September 2026 after 406 commits. The codebase is 84.6% TypeScript and 12.3% Rust. This is alpha software under active development — the maintainers are explicit that rough edges are expected.</p>
<p>Unlike cloud AI products where your agent lives inside someone else&rsquo;s environment, OpenBot is self-hosted. It runs on Docker Compose against your own PostgreSQL database. No model ships in the box: an administrator supplies the model credential, which is encrypted at rest and never logged. Your data and credentials stay inside your own network.</p>
<h2 id="how-openbot-gives-each-coworker-a-computer-of-its-own">How OpenBot Gives Each Coworker a Computer of Its Own</h2>
<p>The &ldquo;each coworker gets a computer&rdquo; framing is literal, not a metaphor. The architecture is one gateway server plus one container per bot. Each bot container ships its own Chromium, a workspace volume, and a persistent browser profile.</p>
<p>Why does the isolation matter? Because a browser profile is an identity. Most agent tools share one browser session across tasks; if that session is signed into a production account, every agent action runs with that account&rsquo;s privileges. OpenBot&rsquo;s per-coworker model means each bot signs into only the accounts you assign it, keeps a separate profile, and mounts only the workspace it needs. A research coworker never inherits the login of a publishing coworker.</p>
<p>A real browser also matters for the work itself. Modern web workflows — logging into SaaS tools, filling forms, navigating authenticated dashboards — are browser-native. An agent without a real browser has to fake the user interface; an OpenBot coworker drives the actual page.</p>
<h2 id="the-policy-gateway-every-action-decided-before-it-happens-recorded-after">The Policy Gateway: Every Action Decided Before It Happens, Recorded After</h2>
<p>OpenBot&rsquo;s core differentiator is what its documentation calls &ldquo;every action decided before it happens and recorded after.&rdquo; Every action a coworker takes — against a computer, a file, an MCP server, a UI component, a browser — routes through a single gateway.</p>
<p>The flow is: the gateway resolves the target, evaluates it against your CEL policy, writes an audit row, then acts — or refuses while naming the exact rule that blocked it. The computer does not decide policy. Policy lives in the gateway, and it is deny-by-default: deny rules are evaluated before allow rules; a missing policy permits nothing; a broken rule fails toward blocking.</p>
<p>This decide-then-record split matters because most agent tools today only do the recording. They write a log after the fact, which is precisely what OpenAI&rsquo;s own postmortem described when one of its agents reached into Hugging Face production systems: the intrusion was recorded, not prevented. OpenBot&rsquo;s gateway flips that — the check happens before the action has a chance to cause harm, and the refusal names the rule so a human can tune the policy with full context.</p>
<h2 id="take-the-wheel-human-handovers-for-2fa-captcha-and-high-risk-steps">Take the Wheel: Human Handovers for 2FA, CAPTCHA and High-Risk Steps</h2>
<p>Not everything should run unattended, and OpenBot acknowledges it. When a coworker hits a 2FA challenge, a CAPTCHA, or a high-risk step, the agent pauses and signals a human to take the wheel. The human takes over the live browser canvas directly, completes the step, then hands control back seamlessly. The handover is granular — only the affected step, not the whole task.</p>
<p>This matters for real-world deployments because login walls still stop agents. The take-the-wheel pattern is a pragmatic middle ground between fully autonomous (dangerous on production accounts) and fully supervised (defeats the purpose of an agent). You get automation for the routine 90% and a human exactly where the risk concentrates.</p>
<h2 id="bring-any-agent-ag-ui-and-framework-agnostic-coworkers">Bring Any Agent: AG-UI and Framework-Agnostic Coworkers</h2>
<p>OpenBot is framework-agnostic because it speaks AG-UI, a standardized agent-user interface protocol. Any agent that speaks AG-UI — built with LangGraph, CrewAI, Mastra, Pydantic AI, or Google ADK — can be brought in as an OpenBot coworker with a channel of its own, with no framework binding.</p>
<p>This is a real advantage over platforms that lock you into one agent framework or one proprietary model. Your existing LangGraph pipeline becomes a coworker with a browser, a policy gateway, and an audit trail overnight. Add a Mastra agent tomorrow and it slots into the same gateway because the interface, not the framework, is the contract.</p>
<p>OpenBot also ships generative UI components: coworkers can render rich interactive React components — dashboards, forms, status panels — directly into channels, rather than dumping plain markdown.</p>
<h2 id="openbot-vs-openai-operator-and-claude-computer-use">OpenBot vs OpenAI Operator and Claude Computer Use</h2>
<table>
  <thead>
      <tr>
          <th></th>
          <th>OpenBot</th>
          <th>OpenAI Operator</th>
          <th>Claude Computer Use</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>License</td>
          <td>MIT, open source</td>
          <td>Proprietary</td>
          <td>Proprietary API</td>
      </tr>
      <tr>
          <td>Hosting</td>
          <td>Self-hosted (Docker Compose + your PostgreSQL)</td>
          <td>Cloud, via ChatGPT Pro</td>
          <td>API-driven</td>
      </tr>
      <tr>
          <td>Isolation</td>
          <td>Per-coworker container, browser, logins, files</td>
          <td>Shared cloud session</td>
          <td>Per-session</td>
      </tr>
      <tr>
          <td>Policy</td>
          <td>Fail-closed CEL gateway, deny-by-default</td>
          <td>Confirmation prompts</td>
          <td>API-level</td>
      </tr>
      <tr>
          <td>Cost</td>
          <td>Your own infra + model credits</td>
          <td>$200/month (Pro)</td>
          <td>API usage</td>
      </tr>
      <tr>
          <td>Agent framework</td>
          <td>Any AG-UI agent</td>
          <td>OpenAI-only</td>
          <td>Anthropic-only</td>
      </tr>
      <tr>
          <td>OSWorld score</td>
          <td>N/A</td>
          <td>38.1%</td>
          <td>—</td>
      </tr>
      <tr>
          <td>WebArena score</td>
          <td>N/A</td>
          <td>58.1%</td>
          <td>—</td>
      </tr>
  </tbody>
</table>
<p>Two notable comparisons from the research: OpenAI&rsquo;s computer-use agent, Operator, scored 38.1% on OSWorld and 58.1% on WebArena, and costs $200/month via ChatGPT Pro. OpenBot&rsquo;s positioning is governance-first: open-source, self-hostable, per-bot isolated, with a policy gateway in front of every action. Cloud rivals give you capability inside their sandbox; OpenBot gives you control inside yours.</p>
<h2 id="pricing-and-self-hosting-what-one-coworker-costs-in-ram-disk-and-setup">Pricing and Self-Hosting: What One Coworker Costs in RAM, Disk and Setup</h2>
<p>OpenBot is free software — the MIT license costs nothing. The real cost is the hardware you self-host. The published resource figures for one bot (arm64, August 2026) show a wide spread between measured and documented numbers:</p>
<ul>
<li>Measured: 0.55 GB RAM peak, 5.3 GB disk, 0.06 vCPU</li>
<li>Documented minimum: 2 GB RAM, 8 GB disk, 1 vCPU</li>
<li>Recommended: 4 GB RAM, 10 GB disk, 2 vCPU</li>
</ul>
<p>Disk is the cost people forget. Chromium launches with <code>--disable-dev-shm-usage</code> writing to <code>/tmp</code>, and the image ships Playwright&rsquo;s Firefox and WebKit binaries alongside Chromium. Each coworker is its own container, so multiply the disk figure by the number of coworkers you run. Your own PostgreSQL instance adds to the footprint.</p>
<p>For a quick evaluation, there is a single-image quickstart: <code>docker run</code> with <code>EMBEDDED_POSTGRES=on</code> spins up an ephemeral evaluation environment without a separate database server. For production, you will want the full Docker Compose stack against a real PostgreSQL instance.</p>
<h2 id="security-considerations-openbot_single_user-tool-grants-and-prompt-injection">Security Considerations: OPENBOT_SINGLE_USER, Tool Grants and Prompt Injection</h2>
<p>OpenBot&rsquo;s architecture is thoughtful about policy, but it ships with a setting you should not ignore. <code>OPENBOT_SINGLE_USER=true</code> appears in <code>.env.example</code> by default, and it admits every request as one admin. The reviewers who examined it are unanimous: this is a laptop setting, not a deployment setting. On a VPS, the first person to reach the port owns the deployment, the stored credentials, and any signed-in browser. Turn it off before exposing any instance beyond localhost.</p>
<p>The same reviewers advise starting with an agent that has read-only access to something unimportant, and reading tool grants line by line before widening. Prompt injection is the standing threat: a coworker with a real browser and real credentials is one malicious web page away from trouble. The policy gateway is your defense — it can refuse actions that a prompt-injected agent tries to take — but only if the policy is written to catch them.</p>
<h2 id="who-should-use-openbot-in-2026">Who Should Use OpenBot in 2026</h2>
<p>OpenBot fits a specific profile: a technical team that wants autonomous agents with real browser access, but needs the control and auditability that cloud agent products do not offer. Good candidates:</p>
<ul>
<li>Engineering teams that already run Docker and want self-hosted AI automation inside their network.</li>
<li>Companies where data and credentials are legally or operationally required to stay in-house.</li>
<li>Teams already invested in LangGraph, CrewAI, Mastra, Pydantic AI, or Google ADK that want browser-capable coworkers without a framework rewrite.</li>
<li>Security-conscious operators who will invest the time to write real CEL policies and review tool grants.</li>
</ul>
<p>Skip it if you want a plug-and-play assistant, if you cannot operate containers, or if you are not prepared to treat an alpha project like production software. Real credentials plus a real browser plus alpha code is a combination to be slow about.</p>
<h2 id="verdict-is-openbot-worth-it">Verdict: Is OpenBot Worth It?</h2>
<p>OpenBot earns its attention not because it is flashy but because it confronts the actual blocker in agent adoption: trust. By giving each coworker an isolated computer, gating every action through a fail-closed policy before it runs, recording an audit trail after, and handing control to a human for 2FA and high-risk steps, it addresses the reasons enterprises hold back from autonomous agents.</p>
<p>The trade-offs are real: it is alpha software, it costs hardware and setup time, and its default single-user flag is a documented footgun. But as a governance-first, self-hostable, framework-agnostic alternative to OpenAI Operator and Claude computer use, it is the most credible open-source option on the board in 2026. If the decide-then-record model matches your risk tolerance, OpenBot is worth a Docker Compose trial on a spare machine — with <code>OPENBOT_SINGLE_USER=false</code> from day one.</p>
<h2 id="faq">FAQ</h2>
<p><strong>What is OpenBot?</strong>
OpenBot is an open-source, MIT-licensed platform by CopilotKit where each AI coworker runs in its own isolated container with its own Chromium browser, logins, files, and only the tools you grant. It is self-hosted on Docker Compose with your own PostgreSQL.</p>
<p><strong>Does each OpenBot AI coworker really get its own computer?</strong>
Yes. The architecture is one gateway server plus one container per bot, each with its own Chromium, persistent browser profile, and workspace volume. A browser profile acts as an identity, so per-coworker isolation prevents one agent from inheriting another&rsquo;s logins.</p>
<p><strong>How does OpenBot enforce policy on agent actions?</strong>
Every action routes through a single gateway that resolves the target, evaluates it against CEL policy, writes an audit row, and then acts or refuses while naming the rule that blocked it. Policy is deny-by-default, so a missing rule permits nothing.</p>
<p><strong>How much does OpenBot cost?</strong>
The software itself is free under an MIT license. You pay for self-hosted infrastructure: about 2–4 GB RAM, 5–10 GB disk, and 1–2 vCPU per coworker, plus your own model credentials — there is no bundled model.</p>
<p><strong>Is OpenBot secure enough for production use?</strong>
It is designed around a fail-closed policy gateway and per-coworker isolation, but it ships with <code>OPENBOT_SINGLE_USER=true</code> by default, which admits every request as one admin. You must disable that flag, review tool grants line by line, and treat the alpha software with caution before exposing it beyond localhost.</p>
]]></content:encoded></item></channel></rss>