Comparison · Ghostget 0.18.27
agent-browser hands the agent a browser. Ghostget keeps the keys.
agent-browser is Vercel Labs' Rust CLI for agent-driven browsing: open, click, type, fill, snapshot, screenshot, and eval, with sessions and profiles your agent composes as shell commands. The comparison has a twist: Ghostget pins agent-browser 0.32.3 as an internal dependency for page captures that need rendering. Same engine, opposite exposure.
This page describes agent-browser's published command surface and Ghostget's v0.18.27 contract, checked against each project's public source in September 2026. The pin is visible in Ghostget's release manifest.
The difference is exposure, not machinery
Used directly, agent-browser is a steering surface: the agent decides which URL to open, which selector to click, what to type, and what JavaScript to evaluate. Disk-first snapshots keep the token cost lower than streamed MCP state, but the authority model is unchanged. Every reachable page is a place the agent can act, and every action is one the caller chose.
Ghostget uses the same class of engine inside a bounded capture path. When an HTTP fetch cannot produce the requested result, an internal browser acquisition may render the page under an admission cap of two across all Ghostget processes sharing a state home. The caller supplies a URL and a result contract; it cannot supply a selector, a coordinate, a keystroke, or a script. The engine is a component, not an interface.
Side by side
| Decision | agent-browser, used directly | Ghostget |
|---|---|---|
| Interface | Shell commands the agent composes itself | Named operations plus page reads and archives; no browser commands |
| Who chooses the steps | The agent: selectors, coordinates, JavaScript, session state | The reviewed contract; the agent picks only the outcome |
| Browser exposure | Full steering, including eval on live pages |
Internal capture only, behind an admission gate; no steering surface exists |
| Credentials | Whatever the agent's browser profile or typed input contains | Opaque auth locators bound to one account realm and transport |
| Result shape | Snapshots, screenshots, and command output on disk or stdout | Typed Markdown, archive manifests, receipts, or typed errors |
When to pick which
Pick agent-browser directly when your agent needs to compose its own browsing: exploratory sessions, form experiments, or flows where the steps are the deliverable. It is a well-shaped tool for that job, which is part of why Ghostget builds on it rather than reinventing the engine.
Pick Ghostget when the deliverable is the result, not the session. A page read returns bounded Markdown; an account action returns a typed receipt; and the agent cannot turn the capture engine into a navigation surface because no command, selector, or script channel reaches it. If your threat model is "the agent must not click around the web," that closure is the product.