---
name: bijection-steel
description: "Evaluate and integrate the Steel component with Bijection."
---

# Steel

Cloud browser sessions

- Package: @bijectionhq/steel
- Category: Web & Search
- Status: Preview
- License: MIT
- Bijection source (repository access required): https://github.com/bijectionhq/steel/tree/e36afeb17503b3f82f561bd197e7ed398f03f28d
- Upstream: https://github.com/steel-dev/steel-convex/tree/10f642fe9527c89fe7523f2a3c71bed5d0737bfa
- Documentation: https://docs.bijection.com/components/using
- Directory: https://bijection.com/components/steel

## Get the source

Bijection repository access is required. Request access at https://bijection.com/contact.

```sh
git clone https://github.com/bijectionhq/steel.git
cd steel
git checkout e36afeb17503b3f82f561bd197e7ed398f03f28d
```

## Before using this component

Read the package README at the recorded revision for setup, dependencies, and API examples. Upstream documentation describes the original package and may differ from the Bijection adaptation. This is a source candidate for evaluation. Catalog inclusion does not establish npm availability or runtime qualification. Check compatibility with your SDK and deployment before adoption. External providers run their own compute.

## Integration workflow

1. Read the source README and package manifest at the recorded revision.
2. Confirm the required SDK, dependency availability, and runtime compatibility.
3. Follow the component's documented setup and configuration. Never invent an npm install command from a catalog package name.
4. Keep credentials in the project's existing secret store.
5. Follow the project's execution rules for verification and report what was actually checked.

## Original upstream skill

The following guidance describes @steel-dev/convex. Its installation commands and APIs refer to the upstream package. Evaluate compatibility with the Bijection source separately.


> Agents: read this skill fully before writing code that uses Steel Browser. Follow the installation and configuration steps exactly.

# Steel Browser

## Instructions

Steel Browser provides cloud browser automation for Convex applications with built-in multi-tenant session management. Run browser sessions in the cloud for web scraping, taking screenshots, solving captchas, and handling file operations directly from Convex actions. Sessions persist state in your Convex database with real-time queries and automatic tenant isolation by ownerId.

### Installation

```bash
npm install @steel-dev/convex
```

Current npm version: `@steel-dev/convex@0.2.3`

## Use cases

- **E-commerce monitoring** — Create persistent browser sessions to monitor competitor prices, track inventory changes, or scrape product data with session state stored in Convex for real-time frontend updates
- **Multi-tenant web automation** — Build SaaS applications where each customer gets isolated browser sessions for automated workflows, form submissions, or data collection without cross-tenant data leaks
- **Captcha-protected scraping** — Access websites that require captcha solving or complex authentication flows using persistent browser profiles and credential management
- **Document generation workflows** — Generate PDFs or screenshots of web pages as part of automated reporting pipelines with file management integrated into your Convex backend
- **Session-based testing** — Run browser-based integration tests or user journey validation with persistent sessions that maintain login state and browser profiles

## How it works

The component bridges Steel's cloud browser API with Convex's database and action system. You mount the component in `convex.config.ts`, then create a `SteelComponent` instance in your Convex actions with your API key. The component provides modules like `sessions`, `steel`, `captchas`, and `files` that wrap Steel API calls while persisting state in your Convex database.

Every operation accepts an `ownerId` parameter that provides automatic multi-tenant isolation at the database level. When you call `steel.sessions.create()` or `steel.steel.scrape()`, the component makes the Steel API request and stores session metadata in Convex tables. Your frontend can then query session state in real-time using standard Convex queries without polling.

The `sessions` module manages full browser lifecycle with methods like `create()`, `refresh()`, and `release()`. The `steel` module provides one-shot operations for scraping, screenshots, and PDF generation without session management. Additional modules handle captcha solving, browser profiles, credentials, extensions, and file operations, all scoped by tenant and queryable from your Convex functions.

## When NOT to use

- When a simpler built-in solution exists for your specific use case
- If you are not using Convex as your backend
- When the functionality provided by Steel Browser is not needed

## Resources

- [npm package](https://www.npmjs.com/package/%40steel-dev%2Fconvex)
- [GitHub repository](https://github.com/steel-dev/steel-convex)
- [Live demo](https://github.com/steel-experiments/steel-convex-demo)
- [Convex Components Directory](https://www.convex.dev/components/steel-dev)
- [Convex documentation](https://docs.convex.dev)