# Cookbook
URL: /cookbook

---
title: Cookbook
sidebarTitle: Home
description: Runnable recipes for using Steel with your favorite libraries and frameworks.
---

<RecipeSearch recipes={[
  {
    "slug": "trigger-dev-browser-job",
    "title": "Run a Steel browser job with Trigger.dev",
    "description": "Queue a Trigger.dev task that creates a Steel session, drives Playwright over CDP, saves artifacts, and releases the browser in cleanup.",
    "topics": [
      "Browser automation",
      "Trigger.dev"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2026-06-29"
  },
  {
    "slug": "temporal-browser-workflow",
    "title": "Run a durable browser workflow with Temporal",
    "description": "Build a Temporal TypeScript Workflow that schedules retryable Steel browser Activities to capture page summaries, screenshots, and Markdown artifacts.",
    "topics": [
      "Browser automation",
      "Temporal"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2026-06-29"
  },
  {
    "slug": "restate-agent",
    "title": "Run a durable browser agent with Restate",
    "description": "Build a Restate Virtual Object in TypeScript that uses durable OpenAI planning steps and Steel scraping to answer browser research questions.",
    "topics": [
      "Agents",
      "Restate"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2026-06-29"
  },
  {
    "slug": "headless-chrome",
    "title": "Automate a cloud browser with headless_chrome",
    "description": "Use Steel with headless_chrome, the synchronous Rust equivalent of Puppeteer, to connect over CDP and scrape quotes with element handles.",
    "topics": [
      "Browser automation"
    ],
    "languages": [
      "Rust"
    ],
    "date": "2026-06-24"
  },
  {
    "slug": "mcp",
    "title": "Expose a Steel browser to any MCP client",
    "description": "Build a Model Context Protocol server in Go with the official SDK and chromedp that hands any MCP client a Steel cloud browser through explicit session-handle tools.",
    "topics": [
      "Agents",
      "MCP"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2026-06-24"
  },
  {
    "slug": "chromedp",
    "title": "Automate a cloud browser with chromedp",
    "description": "Use Steel with chromedp to connect over CDP, navigate to Hacker News, extract the top stories, and capture a screenshot.",
    "topics": [
      "Browser automation"
    ],
    "languages": [
      "Go"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "rod",
    "title": "Automate a cloud browser with Rod",
    "description": "Use Steel with Rod's fluent, chainable API to connect over CDP and scrape quotes.toscrape.com from a cloud browser.",
    "topics": [
      "Browser automation"
    ],
    "languages": [
      "Go"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "chromiumoxide",
    "title": "Automate a cloud browser with chromiumoxide",
    "description": "Use Steel with chromiumoxide to connect over CDP, drive the handler task, extract page content, and capture a screenshot.",
    "topics": [
      "Browser automation"
    ],
    "languages": [
      "Rust"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "scrape",
    "title": "Scrape a page to Markdown, screenshot, and PDF",
    "description": "Use the Steel TypeScript SDK's direct API to scrape a page to clean Markdown for LLM context, plus screenshot and PDF, with no browser library.",
    "topics": [
      "Steel APIs"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "genkit",
    "title": "Build a browser agent with Genkit",
    "description": "Use Steel with Genkit Go to build a tool-calling agent that navigates and extracts from a chromedp-backed browser and completes a web task.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "Go"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "eino",
    "title": "Build a browser agent with Eino",
    "description": "Use Steel with the ByteDance Eino framework to build a ReAct agent that calls Steel's scrape API as a tool to research and answer a web question.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "Go"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "rig",
    "title": "Build a browser agent with rig",
    "description": "Use Steel with rig to build an agent that drives a cloud browser over CDP with chromiumoxide through navigate and extract tools, then answers a multi-step web task.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "Rust"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "swiftide",
    "title": "Build a research agent with Swiftide",
    "description": "Use Steel with Swiftide to build an agent whose tool reads the web through Steel's scrape endpoint, so the model works from clean Markdown with no browser library.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "Rust"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "langchaingo",
    "title": "Build a browser agent with LangChainGo",
    "description": "Use Steel with LangChainGo's zero-shot ReAct (MRKL) agent and a string-in, string-out scrape tool so Claude reads a page and answers a question.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "Go"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "google-adk",
    "title": "Build a browser agent with Google ADK",
    "description": "Use Steel with Google's Agent Development Kit (ADK) for Go to build a tool-using browser agent that drives a chromedp session over CDP and reads Hacker News.",
    "topics": [
      "Agents",
      "Typed output"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Go"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "microsoft-agent-framework",
    "title": "Build a browser agent with Microsoft Agent Framework",
    "description": "Use Steel with Microsoft Agent Framework 1.0 (the successor to AutoGen and Semantic Kernel) to build a tool-using browser agent.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "Python"
    ],
    "date": "2026-05-11"
  },
  {
    "slug": "convex-chat-with-page",
    "title": "Chat with any webpage on Convex",
    "description": "Convex app that streams an AI agent's answer about any URL. The agent runs server-side with one Steel-backed scrape tool and pages through long articles via a chunked cache.",
    "topics": [
      "Agents",
      "Convex"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2026-05-04"
  },
  {
    "slug": "convex-price-watch",
    "title": "Watch Claude pricing for divergent A/B variants",
    "description": "Convex cron plus two parallel Steel proxy probes against claude.com/pricing. Stores per-tier per-region snapshots and surfaces tiers where the probes disagree.",
    "topics": [
      "Steel APIs",
      "Convex"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2026-05-04"
  },
  {
    "slug": "deep-research",
    "title": "Deep research with Claude Agent SDK subagents",
    "description": "Lead orchestrator dispatches parallel researcher subagents, each driving its own Steel browser, and synthesizes findings into a cited Markdown report.",
    "topics": [
      "Agents",
      "Subagents"
    ],
    "languages": [
      "TypeScript",
      "Python"
    ],
    "date": "2026-05-01"
  },
  {
    "slug": "you-com-search",
    "title": "Combine You.com search with Steel browser actions",
    "description": "Pair the You.com Search and Contents APIs with a Steel cloud browser in a search-then-act LangChain agent that prefers the cheap path and only opens a session when interaction is required.",
    "topics": [
      "Agents",
      "Search"
    ],
    "languages": [
      "Python"
    ],
    "date": "2026-04-30"
  },
  {
    "slug": "claude-agent-sdk",
    "title": "Build a browser agent with the Claude Agent SDK",
    "description": "Use Steel with the Claude Agent SDK (TypeScript) to build a tool-using browser agent on Anthropic's first-party agent loop.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "TypeScript",
      "Python"
    ],
    "date": "2026-04-29"
  },
  {
    "slug": "pydantic-ai",
    "title": "Build a typed browser agent with Pydantic AI",
    "description": "Use Steel with Pydantic AI to build typed, provider-agnostic browser agents with dependency injection.",
    "topics": [
      "Agents",
      "Typed output"
    ],
    "languages": [
      "Python"
    ],
    "date": "2026-04-29"
  },
  {
    "slug": "langgraph",
    "title": "Build a typed browser agent with LangGraph",
    "description": "Use Steel with LangGraph to build a typed browser agent with an explicit state-machine loop and a structured-output formatter node.",
    "topics": [
      "Agents",
      "Typed output"
    ],
    "languages": [
      "Python"
    ],
    "date": "2026-04-29"
  },
  {
    "slug": "mastra",
    "title": "Build a typed browser agent with Mastra",
    "description": "Use Steel with Mastra to build a typed browser agent with the Mastra Model Router and Studio playground.",
    "topics": [
      "Agents",
      "Typed output"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2026-04-29"
  },
  {
    "slug": "openai-agents",
    "title": "Build a typed browser agent with the OpenAI Agents SDK",
    "description": "Use Steel with the OpenAI Agents SDK for TypeScript to build typed, tool-using browser agents.",
    "topics": [
      "Agents",
      "Typed output"
    ],
    "languages": [
      "TypeScript",
      "Python"
    ],
    "date": "2026-04-23"
  },
  {
    "slug": "vercel-ai-sdk",
    "title": "Build a typed browser agent with the Vercel AI SDK",
    "description": "Use Steel with the Vercel AI SDK v6 ToolLoopAgent for typed, tool-using browser agents.",
    "topics": [
      "Agents",
      "Typed output"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2026-04-23"
  },
  {
    "slug": "vercel-ai-sdk-nextjs",
    "title": "Stream a browser agent into a Next.js chat app",
    "description": "A Next.js App Router chat app where a Vercel AI SDK agent drives a Steel cloud browser with embedded Live View.",
    "topics": [
      "Agents",
      "Typed output",
      "Next.js"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2026-04-23"
  },
  {
    "slug": "browser-use-captcha-manual",
    "title": "Solve reCAPTCHA v2 manually with Browser Use",
    "description": "Manually solve reCAPTCHA v2 using Steel's CAPTCHA API with the browser-use framework.",
    "topics": [
      "Agents",
      "Browser Use",
      "Captchas"
    ],
    "languages": [
      "Python"
    ],
    "date": "2026-02-10"
  },
  {
    "slug": "gemini-computer-use",
    "title": "Drive a browser with Gemini Computer Use",
    "description": "Connect Google's Gemini Computer Use to a Steel browser session for autonomous web interactions.",
    "topics": [
      "Computer use"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2025-11-25"
  },
  {
    "slug": "claude-computer-use-mobile",
    "title": "Drive a mobile browser with Claude Computer Use",
    "description": "Claude Computer Use with Steel for autonomous task execution in mobile browser environments.",
    "topics": [
      "Computer use",
      "Mobile"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2025-10-14"
  },
  {
    "slug": "profiles",
    "title": "Persist authenticated sessions with Profiles",
    "description": "Maintain authenticated sessions across Steel browser instances using profiles.",
    "topics": [
      "Steel APIs",
      "Authentication"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2025-10-13"
  },
  {
    "slug": "crewai",
    "title": "Build a multi-agent browser workflow with CrewAI",
    "description": "Integrate Steel with the CrewAI multi-agent framework.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "Python"
    ],
    "date": "2025-09-05"
  },
  {
    "slug": "agentkit",
    "title": "Build a browser agent with Inngest AgentKit",
    "description": "Integrate Steel with Inngest's AgentKit framework.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2025-09-05"
  },
  {
    "slug": "agno",
    "title": "Build a browser agent with Agno",
    "description": "Integrate Steel with the Agno agent framework.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "Python"
    ],
    "date": "2025-09-05"
  },
  {
    "slug": "notte",
    "title": "Control a browser with Notte's reasoning engine",
    "description": "Control browsers with AI using Steel's infrastructure and Notte's reasoning engine.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "Python"
    ],
    "date": "2025-08-26"
  },
  {
    "slug": "magnitude",
    "title": "Build an AI browser agent with Magnitude",
    "description": "Use Steel with Magnitude for AI-powered browser automation.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2025-07-30"
  },
  {
    "slug": "stagehand",
    "title": "Automate browsing with natural-language instructions using Stagehand",
    "description": "Use Steel with Stagehand for natural-language-driven AI browser automation.",
    "topics": [
      "Browser automation"
    ],
    "languages": [
      "TypeScript",
      "Python"
    ],
    "date": "2025-07-16"
  },
  {
    "slug": "claude-computer-use",
    "title": "Drive a browser with Claude Computer Use",
    "description": "Connect Claude to a Steel browser session for autonomous web interactions.",
    "topics": [
      "Computer use"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2025-07-16"
  },
  {
    "slug": "openai-computer-use",
    "title": "Drive a browser with OpenAI Computer Use",
    "description": "Connect OpenAI's Computer Use Assistant to a Steel browser session for autonomous web interactions.",
    "topics": [
      "Computer use"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2025-03-19"
  },
  {
    "slug": "auth-context",
    "title": "Reuse authenticated sessions across browsers",
    "description": "Maintain authenticated sessions across Steel browser instances by capturing and reusing cookies and local storage.",
    "topics": [
      "Steel APIs",
      "Authentication"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2025-03-11"
  },
  {
    "slug": "browser-use",
    "title": "Build a browser agent with Browser Use",
    "description": "Integrate Steel with the browser-use framework for AI-driven web automation.",
    "topics": [
      "Agents",
      "Browser Use"
    ],
    "languages": [
      "Python"
    ],
    "date": "2025-02-20"
  },
  {
    "slug": "browser-use-captcha-auto",
    "title": "Solve CAPTCHAs automatically in a Browser Use agent",
    "description": "Build an AI agent with browser-use and Steel that solves CAPTCHAs automatically.",
    "topics": [
      "Agents",
      "Browser Use",
      "Captchas"
    ],
    "languages": [
      "Python"
    ],
    "date": "2025-02-20"
  },
  {
    "slug": "playwright",
    "title": "Automate a cloud browser with Playwright",
    "description": "Use Steel with Playwright in TypeScript for cloud browser automation.",
    "topics": [
      "Browser automation",
      "Playwright"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Go"
    ],
    "date": "2024-11-19"
  },
  {
    "slug": "puppeteer",
    "title": "Automate a cloud browser with Puppeteer",
    "description": "Use Steel with Puppeteer in TypeScript for cloud browser automation.",
    "topics": [
      "Browser automation"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2024-11-19"
  },
  {
    "slug": "selenium",
    "title": "Automate a cloud browser with Selenium",
    "description": "Use Steel with Selenium in Python for cloud browser automation.",
    "topics": [
      "Browser automation"
    ],
    "languages": [
      "Python"
    ],
    "date": "2024-11-19"
  },
  {
    "slug": "credentials",
    "title": "Automate logins with the Credentials API",
    "description": "Use the Steel Credentials API with Playwright to automate flows with stored credentials.",
    "topics": [
      "Steel APIs",
      "Authentication"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2024-11-19"
  },
  {
    "slug": "extensions",
    "title": "Upload and run browser extensions",
    "description": "Use the Steel Extensions API with Playwright to upload and run browser extensions.",
    "topics": [
      "Steel APIs",
      "Playwright"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2024-11-19"
  },
  {
    "slug": "files",
    "title": "Move files between your machine and a cloud browser",
    "description": "Use the Steel Files API with Playwright to automate file uploads and downloads in the cloud.",
    "topics": [
      "Steel APIs",
      "Playwright"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2024-11-19"
  }
]} featured={[
  {
    "slug": "scrape",
    "title": "Scrape a page to Markdown, screenshot, and PDF",
    "description": "Use the Steel TypeScript SDK's direct API to scrape a page to clean Markdown for LLM context, plus screenshot and PDF, with no browser library.",
    "topics": [
      "Steel APIs"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Rust",
      "Go"
    ],
    "date": "2026-06-23"
  },
  {
    "slug": "playwright",
    "title": "Automate a cloud browser with Playwright",
    "description": "Use Steel with Playwright in TypeScript for cloud browser automation.",
    "topics": [
      "Browser automation",
      "Playwright"
    ],
    "languages": [
      "TypeScript",
      "Python",
      "Go"
    ],
    "date": "2024-11-19"
  },
  {
    "slug": "vercel-ai-sdk",
    "title": "Build a typed browser agent with the Vercel AI SDK",
    "description": "Use Steel with the Vercel AI SDK v6 ToolLoopAgent for typed, tool-using browser agents.",
    "topics": [
      "Agents",
      "Typed output"
    ],
    "languages": [
      "TypeScript"
    ],
    "date": "2026-04-23"
  },
  {
    "slug": "claude-agent-sdk",
    "title": "Build a browser agent with the Claude Agent SDK",
    "description": "Use Steel with the Claude Agent SDK (TypeScript) to build a tool-using browser agent on Anthropic's first-party agent loop.",
    "topics": [
      "Agents"
    ],
    "languages": [
      "TypeScript",
      "Python"
    ],
    "date": "2026-04-29"
  }
]} />
