Changelog #001

Happy Super Bowl Sunday šŸˆ Before we settle in to lose money on our respective betting apps, we have some updates we NEED to tell you about.

⭐ New

Introducing Surf.new

Surf.new is an open-source playground for chatting with different web-agents via Steel. We want it to serve as a resource for the community to try out new web agents as they become available, helping developers evaluate what works best for their use-cases. Currently, you can try browser-use's web agent and a browser-specific fork of Claude’s Computer-use agent. We'll be actively maintaining it while using it as a launching pad to showcase new Steel features and improvements in web automation.

It's pretty neat if you ask us 🤠 Give it a try and let us know what you think! Contributions are more than welcome too :)

Embedding and interactive with Live Sessions

Our debugURL has some new life blown into it and, oh boy, are we ever pumped about it. The debugURL you get returned when creating a session is most commonly used for viewing what’s happening live in the browser. A common use-case is embedding that view into your app, such that people can see what’s going on in the browser as actions are being taken. It’s what powers our live session viewer in the Steel dashboard.

In addition to a complete refactoring to improve performance, some of the improvements include:

  • Ability to let a viewer interact with the browser sessions directly via clicking, typing, scrolling, etc. This was a big one lots of people have asked for to powering human-in-the-loop features (think ā€œtake controlā€ in OpenAI’s Operator).
  • Ability to show/hide mouse on screen
  • Show/hide URL bar & to toggle be light mode or dark mode

All of which can be turned on or off via UTM params. Check out the docs for more on this here!

Available on Steel Cloud and available soon on the steel-browser repo.

Dimensions for sessions

We now support the ability to set screen + viewport dimensions when creating a session (POST/v1/sessions).

Python
main.py
1
from steel import Steel
2
3
client = Steel()
4
5
session = client.sessions.create(
6
dimensions={
7
"width":1280,
8
"height":800
9
}
10
)

This helps save you from having to set page viewport on every page load. Which can cause buggy resizing behaviour with your sessions.

Available on Steel Cloud and the steel-browser repo.

Ad blocking

You can now block ads from rendering in your sessions. This is useful for saving on proxy bandwidth, simplifying action space for agents (so they don’t have the option of clicking on ads), and generally speeding up page load times.

It's defaulted to true when starting a session but you can explicitly turn it on/off by passing a bool into the blockAds param in the create session endpoint (POST/v1/sessions) or via the SDK like so:

Python
main.py
1
from steel import Steel
2
3
client = Steel()
4
5
session = client.sessions.create(
6
block_ads=true
7
)

šŸ”§ Fixes/Improvements

Lots of bug fixes and improvements across the board including:

  • Fixed with inability to view sessions where proxy was enabled
  • Better scrape errors
  • Improved Proxy usage tracking
  • Fixed multiple issues with Recording sessions
  • Implemented graceful shutdowns
  • Various dockerfile optimizations
  • Custom executable paths for local browsers when running steel-browser repo locally

šŸ’– First time contributors

Special thanks to the following new contributors to steel-browser who've made the above improvements possible šŸ’– @marclave, @krichprollsch, @BrentBrightling , @Envek, @danew, @raymelon, @21e8, @QAComet, @mislavjc, and @Emmanuel-Melon

As always, thanks for testing out the Steel beta. We really look forward to more of your feedback and continuing to build with this awesome, curious, and supportive community.