Help us improve
Share bugs, ideas, or general feedback.
From stagehand
Deploys serverless browser automation as cloud functions using Browserbase and Playwright. Use for scheduling browser tasks, creating webhook endpoints, or running automation in the cloud.
npx claudepluginhub browserbase/skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/stagehand:functionsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Deploy serverless browser automation using the official `browse` CLI.
Browserbase CLI skill for Browserbase Functions workflows, platform API operations (sessions, projects, contexts, extensions), Fetch API calls, and Search API queries. Activates when users mention `browse` commands or Browserbase platform workflows.
Builds browser automation workflows in Cloudflare Workers using Puppeteer/Playwright for screenshots, PDFs, web scraping, session management, and error handling.
Automates browser tasks with Playwright: tests pages, fills forms, screenshots, responsive design, UX validation, login flows, link checks. Auto-detects dev servers, runs visible browser.
Share bugs, ideas, or general feedback.
Deploy serverless browser automation using the official browse CLI.
Get an API key from: https://browserbase.com/settings
export BROWSERBASE_API_KEY="your_api_key"
browse functions init my-function
cd my-function
This creates:
my-function/
├── package.json
├── index.ts # Your function code
└── .env # Add credentials here
echo "BROWSERBASE_API_KEY=$BROWSERBASE_API_KEY" >> .env
pnpm install
import { defineFn } from "@browserbasehq/sdk-functions";
import { chromium } from "playwright-core";
defineFn("my-function", async (context) => {
const { session, params } = context;
// Connect to browser
const browser = await chromium.connectOverCDP(session.connectUrl);
const page = browser.contexts()[0]!.pages()[0]!;
// Your automation
await page.goto(params.url || "https://example.com");
const title = await page.title();
// Return JSON-serializable result
return { success: true, title };
});
Key objects:
context.session.connectUrl - CDP endpoint to connect Playwrightcontext.params - Input parameters from invocationbrowse functions dev index.ts
Server runs at http://127.0.0.1:14113
curl -X POST http://127.0.0.1:14113/v1/functions/my-function/invoke \
-H "Content-Type: application/json" \
-d '{"params": {"url": "https://news.ycombinator.com"}}'
The dev server auto-reloads on file changes. Use console.log() for debugging - output appears in the terminal.
browse functions publish index.ts
Output:
Function published successfully
Build ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Function ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Save the Function ID - you need it to invoke.
| Command | Description |
|---|---|
browse functions init <name> | Create new project |
browse functions dev <file> | Start local dev server |
browse functions publish <file> | Deploy to Browserbase |
For invocation examples, common patterns, and troubleshooting, see REFERENCE.md.