So I- I- I was looking at the new Browser Use update this morning,
and the change is actually kind of wild.
It's- it's not just clicking buttons and taking screenshots anymore.
They've integrated direct, low-level Chrome DevTools Protocol access.
Like, full CDP, directly through the @Browser or @Chrome decorators.
Thanks to Jellypod for helping make this daily show a reality.
But yeah, this means instead of just guessing why an automation failed by looking at
a PNG, you can programmatically grab the actual runtime state.
We're talking performance profiles, network traffic, console errors,
even local storage values, right there in the execution loop.
Wait, so it's not just using the high-level Selenium-style commands anymore?
It's actually talking to the DevTools WebSocket directly?
Exactly.
It's hooking straight into the debugging port.
So if your agent is trying to scrape a page and it hits a silent JavaScript error,
you don't have to guess.
You can just query the console logs directly through the CDP connection.
But- but here is the thing, you actually have to turn it on first.
By default, it's- it's sandboxed.
You have to go into the Browser settings UI and manually toggle "Enable full CDP
access."
Or, if you're managing this across a team, you can enforce it in the config.
Oh, like an admin lock.
How do they handle that in the codebase?
Is it in a YAML file or...
It's in requirements.toml.
You set browser_use_full_cdp_access = false if you want to lock it down and
prevent developers from spinning up agents that can sniff local network sockets or
read arbitrary storage.
Which, let's be honest, is a massive security surface area if you're running
untrusted agent code.
Right, because if an agent gets hijacked, and it has full CDP access,
it could theoretically inject scripts, steal session cookies from other tabs,
or even intercept raw network requests.
That's...
yeah, that's a lot of power for a visual assistant to suddenly have.
Exactly.
Which is why the security boundaries they put around this are actually pretty
strict.
They didn't just open the floodgates.
Yeah, because if I'm running this on my local machine, I don't want an agent digging
through my active banking session just because it's running in the same browser
context.
What are they doing to keep this scoped?
Well, first off, every single CDP interaction has to go through an explicit
human-in-the-loop approval step in the UI.
The agent can't just silently trigger a network trace in the background; you get a
prompt.
And more importantly, they've restricted the entire CDP feature set to
unauthenticated routes only.
If the browser detects it's transitioned into a logged-in state or a secure origin,
the CDP capabilities get throttled to prevent credential exposure.
Okay, that actually makes me feel a lot better about running this locally.
It's like having a tight sandbox but with an escape hatch only when you explicitly
sign off on it.
Yeah, it's a smart compromise.
Now, speaking of workflows, they also slipped in a couple of really nice
quality-of-life updates.
The App Composer now has the /init command built-in.
Previously, you had to jump out of the composer, drop to your terminal,
run the CLI init script to bootstrap your project structure,
and then go back.
Now it's just a single slash command right inside the composer UI to get your
boilerplate set up.
Thank goodness.
Jumping between the browser UI and the terminal just to scaffold a project was such
a friction point.
What about the API side?
Any changes to how they're handling rate limits?
Actually, yeah.
They're introducing what they call a "rate-limit reset banking program."
Instead of your unused requests just vanishing at the end of the minute or hour,
a portion of your unused quota actually rolls over into a temporary bank.
So if your agent is idle for twenty minutes while you're writing code,
and then you trigger a massive parallel test run, you can draw from that accumulated
bank to avoid getting immediately rate-limited.
Oh, that is huge for development cycles.
You're not penalized for taking time to think.
Alright, I'm going to go play with this /init command.
Talk to you later.
Catch you later.