Changelog #008

Howdy yβall! These last few weeks brought significant improvements to session state management and browser control capabilities, along with several important bugfixes to enhance the Steel experience.
β New
Enhanced Session Context Support π
Session contexts have been extended to cover indexedDB and sessionStorage, providing more robust state persistence and authentication handling. This improvement allows for more reliable user sessions, especially for sites that rely heavily on client-side storage for auth tokens and application state.
1// Example: Working with the enhanced session context2const session = await client.sessions.create();3let browser = await chromium.connectOverCDP(4`wss://connect.steel.dev?apiKey=${process.env.STEEL_API_KEY}&sessionId=${session.id}`5);6const page = await browser.contexts()7[0].pages()8[0];910// Session now maintains indexedDB and sessionStorage state11// Perfect for sites using modern auth patterns12await page.goto('https://app.example.com/login');13await page.fill('#email', 'user@example.com');14await page.fill('#password', 'password123');15await page.click('#login-button');1617const sessionContext = await client.sessions.context(session.id);1819const session = await client.sessions.create({ sessionContext });20browser = await chromium.connectOverCDP(21`wss://connect.steel.dev?apiKey=${process.env.STEEL_API_KEY}&sessionId=${session.id}`22);2324const page = await browser.contexts()[0].pages()[0];2526// State persists across navigation27await page.goto('https://app.example.com/dashboard');28// User remains logged in!
Documentation Link | Auth Examples
Steel Browser Now Uses Chromium By Default π
We've upgraded Steel Browser to use Chromium as our default browser, replacing our previous Chrome implementation. While Chrome served us well for bypassing basic anti-bot measures and stealth detection, it presented compatibility challenges for M-chip Mac users.
The key issue was that Mac users running Steel Browser through Docker couldn't operate properly, as Chrome lacked distribution support for ARM Linux machines (which our Docker image utilized for Mac compatibility).
Now that we use Chromium by default (which DOES have an ARM Linux compatible distribution); all the issues that Mac users were facing should now be gone.
π§ Bugfixes/Improvements
- Steel Browser is now plugin-based, allowing
- Fixed multiple UI bugs for a smoother user experience
- Resolved an issue with browser updates happening in the background causing interruptions
- Added support for custom Chrome arguments via environment variables
- Improved session stability when working with sites that use indexedDB heavily
- Fixed state synchronization issues between browser restarts
- Repaired the live viewer for Railway deployments in Steel Browser
- You can now call browser actions with existing sessions
- Improved URL and environment variable management in the open-source repository
- Custom domain support throughout steel browser
- +10 other small bugfixes all around
π First-time contributors
Special thanks to @aspectrr for their help on enabling custom Chrome args for Steel Browser; as well as the ability to run browser actions on current pages within a session.
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.
Got questions or want to chat? Join us on Discord or reach out on Twitter/X.