Releases
TinySearch 0.6.4: Open-Source Browser Automation vs. ChatGPT Agent, Gemini, and Claude in Chrome
In the last year, every major closed-source AI lab has shipped some version of “let the model drive a browser.” OpenAI folded Operator into ChatGPT’s agent mode. Google put a computer-use tool in the Gemini API and shipped Auto Browse in Chrome. Anthropic took Claude in Chrome to general availability in August. Perplexity’s Comet browser has been free to everyone since October. Amazon shipped Nova Act as a metered AWS service. Different products, same shape: a hosted model looks at a screenshot, decides what to click or type, and acts.
TinySearch 0.6.4 adds the same category of capability, browser interaction as a retrieval step, but built for a different job than any of the above. It’s not trying to book a flight or fill out a checkout form on your behalf. It’s there so an agent that already searches and scrapes can also get past a “load more” button, a cookie interstitial, or a client-side search box when static HTML isn’t enough.
What the closed-source players ship
Worth being precise about what “closed source” means in each case, since the products aren’t identical:
- ChatGPT agent (the successor to Operator) runs a remote virtual browser in OpenAI’s cloud and acts autonomously toward a goal, pausing for logins, purchases, or other sensitive steps. It requires a ChatGPT Plus, Pro, or Business subscription.
- Gemini’s computer-use tool is a hosted model you call through the Gemini API; you supply your own browser or executor. Billing is metered per token. The consumer-facing version, Auto Browse in Chrome, needs an AI Pro or Ultra subscription and caps how many sessions you get per day.
- Claude in Chrome reached general availability in August 2026 on every paid Claude plan. It runs inside your own browser with your own logins and auto-approves routine actions behind a pair of safety classifiers, stepping back for anything higher-risk.
- Perplexity Comet is free, but it’s a closed browser: the agent acts as a sidecar on your live, logged-in tabs, and there’s no way to run the underlying system yourself.
- Amazon Nova Act ships an open SDK, but the model behind it is closed, and usage is billed through AWS.
None of these are self-hostable, and all but Comet meter or gate the capability behind a subscription. That’s a reasonable business model for a general-purpose assistant that needs to act on your behalf across the whole web. It’s a much heavier commitment than what most agent-building work actually needs, which is usually just: this one page didn’t render as plain HTML, get me what’s on it.
What TinySearch 0.6.4 adds
browser_navigate opens a URL in a real browser and returns a compact accessibility-tree view of the page instead of a screenshot. browser_act then runs one action against that view: look to re-read the page, click or type against an element ref the model has already seen, wait_for a duration or a text change, or manage tabs. Both tools share the same Chromium install scrape_urls already uses, so there’s no second runtime and no extra download.
The scoping is deliberate. click and type only ever act on a ref the model observed in a prior view. There’s no tool that executes arbitrary code, fills a form blindly, uploads a file, or drags an element, that capability doesn’t exist in the tool surface at all, rather than being merely discouraged by a prompt. browser_storage_state_path lets a cookie banner get accepted once and stay accepted across later navigations, and browser_backend: "off" removes both tools entirely for anyone who’d rather not have them available.
None of that adds up to a computer-use agent in the OpenAI or Google sense. It adds up to a fallback for the cases scrape_urls can’t handle on its own: JavaScript-rendered content, a page hidden behind an interaction, a client-side search UI that has no server-rendered equivalent.
Why the constraint is the point, not a gap to close later
A general-purpose computer-use agent has to be trusted to click “purchase,” “delete,” or “send” without a human confirming each step, because that’s the product. That trust model needs the safety classifiers, virtual sandboxing, and confirmation prompts that OpenAI, Google, and Anthropic have all built out, and it’s a meaningful reason those products are hosted and metered rather than something you’d run yourself.
TinySearch’s browser tools were built for a narrower job: get the model past whatever is standing between it and the text it’s trying to read. Ref-based actions, restricted to what a prior view actually showed, keep that job’s blast radius small enough to self-host without needing a matching safety stack. It’s the same design instinct behind related_links in 0.6.0: let the model decide, but bound what it’s deciding between.
| TinySearch 0.6.4 | ChatGPT agent | Gemini computer use | Claude in Chrome | Perplexity Comet | |
|---|---|---|---|---|---|
| Self-hostable | Yes | No | No (you host the harness, not the model) | No | No |
| Cost | Free | Plus/Pro/Business subscription | Metered API, or Pro/Ultra for Auto Browse | Included in any paid Claude plan | Free |
| Action target | A ref the model already observed | Full-page autonomy toward a goal | Full-page autonomy toward a goal | Full-page autonomy, auto-approved when low-risk | Full-page autonomy on your live tabs |
| Arbitrary code execution or blind form fill | Not possible | Not the intended use, but broad action surface | Not the intended use, but broad action surface | Not the intended use, but broad action surface | Not the intended use, but broad action surface |
| Built for | Retrieval: reading a page an agent already decided to visit | General computer-use tasks | General computer-use tasks | General computer-use tasks | General computer-use tasks |
Where this fits with search and scrape
The recommended order hasn’t changed: search for discovery, scrape_urls for pages you already have a URL for, and the browser tools only when a scrape comes back thin or the page needs an interaction first. If you’re new to that flow, the TinySearch overview covers why raw HTML scraping is the default and why raw webpages make bad context even once you can render them.
Upgrading
pip install --upgrade tinysuite-searchThe browser tools ship enabled by default using the bundled Chromium, the same one scrape_urls already installs. Nothing about search or scrape_urls changes. Set browser_backend to "off" to drop both tools from the tool list, or point browser_cdp_url at a browser you run yourself if you’d rather not use the bundled one. The configuration reference has the full list of browser settings, including timeouts, response size limits, and the external-CDP path.