There are two common ways to let agents interact with websites today. Traditional scraping is complex, fragile, and breaks the moment a site changes its layout or auth flow. CDP-based browser automation (like browser-use) is more robust, but burns through tokens fast (a single DOM snapshot can be 50K+ tokens) and needs a SOTA model to navigate each page from scratch every time.
bb-browser takes a different approach. Instead of automating the browser generically, it wraps websites into CLI commands via "site adapters." Each adapter is a small JS function that calls a website's own internal APIs from inside a managed Chrome where you're already logged in.
bb-browser site twitter/feed
bb-browser site reddit/hot
bb-browser site github/notifications
Structured JSON back, a few hundred tokens at most.
The trick is that your browser is already the best place for these requests to happen. It has all the cookies, sessions, auth state. Login flows, CSRF tokens, CAPTCHAs, anti-bot detection... the stuff that makes traditional scraping so painful, none of it exists when you fetch from inside the browser.
What I find most interesting about this: operating websites through raw CDP is a hard problem that needs a SOTA model. But running a CLI command is trivial, any model can do it. So the SOTA model only needs to run once to write the adapter. After that, even an open-source model handles it fine.
And not everyone needs to write adapters themselves. There's a community repo (https://github.com/epiral/bb-sites) where people contribute them freely. Every new adapter expands what agents can do, and the combinations open up a lot of possibilities. An agent that can read your Twitter feed, check stock prices, and search Reddit can start doing things none of those can do alone. Someone running a local open-source model gets the same access as someone on Claude or GPT. I think agents should work for everyone, not just people who can afford SOTA tokens.
If you do want to add a new website, there's a guide command built in. Tell your agent "turn this website into a CLI" and it reverse-engineers the site's APIs and writes the adapter.
v0.8.x is pure CDP, managed Chrome instance. npm install -g bb-browser and it works.
I built something in this space, bb-browser (https://github.com/epiral/bb-browser). Same CDP connection, but the approach is honestly kind of cheating.
Instead of giving agents browser primitives like snapshot, click, fill, I wrapped websites into CLI commands. It connects via CDP to a managed Chrome where you're already logged in, then runs small JS functions that call the site's own internal APIs. No headless browser, no stolen cookies, no API keys. Your browser is already the best place for fetch to happen. It has all the cookies, sessions, auth state. Traditional crawlers spend so much effort on login flows, CSRF tokens, CAPTCHAs, anti-bot detection... all of that just disappears when you fetch from inside the browser itself. Frontend engineers would probably hate me for this because it's really hard to defend against.
So instead of snapshot the DOM (easily 50K+ tokens), find element, click, snapshot again, parse... you just run
bb-browser site twitter/feed
and get structured JSON back.
Here's the thing I keep thinking about though. Operating websites through raw CDP is a genuinely hard problem. A model needs to understand page structure, find the right elements, handle dynamic loading, deal with SPAs. That takes a SOTA model. But calling a CLI command? Any model can do that. So the SOTA model only needs to run once, to write the adapter. After that, even a small open-source model runs "bb-browser site reddit/hot" just fine.
And not everyone even needs to write adapters themselves. I created a community repo, bb-sites (https://github.com/epiral/bb-sites), where people freely contribute adapters for different websites. So in a sense, someone with just an open-source model can already feel the real impact of agents in their daily workflow. Agents shouldn't be a privilege only for people who can access SOTA models and afford the token costs.
There's a guide command baked in so if you do want to add a new site, you can tell your agent "turn this website into a CLI" and it reverse-engineers the site's APIs and writes the adapter.
v0.8.x dropped the Chrome extension entirely. Pure CDP, managed Chrome instance. "npm install -g bb-browser" and it works.