// get custom made design.md fileslearn more

functions

browserbasehq/sdk-functions · updated May 5, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/browserbase/skills --skill functions
0 commentsdiscussion
summary

Deploy serverless browser automation as cloud functions using Browserbase.

skill.md

Browserbase Functions

Deploy serverless browser automation using the official bb CLI.

Prerequisites

Get API key and Project ID from: https://browserbase.com/settings

export BROWSERBASE_API_KEY="your_api_key"
export BROWSERBASE_PROJECT_ID="your_project_id"

Creating a Function Project

1. Initialize

pnpm dlx @browserbasehq/sdk-functions init my-function
cd my-function

This creates:

my-function/
├── package.json
├── index.ts        # Your function code
└── .env            # Add credentials here

2. Add Credentials to .env

echo "BROWSERBASE_API_KEY=$BROWSERBASE_API_KEY" >> .env
echo "BROWSERBASE_PROJECT_ID=$BROWSERBASE_PROJECT_ID" >> .env

3. Install Dependencies

pnpm install

Function Structure

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 Playwright
  • context.params - Input parameters from invocation

Development Workflow

1. Start Dev Server

pnpm bb dev index.ts

Server runs at http://127.0.0.1:14113

2. Test Locally

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"}}'

3. Iterate

The dev server auto-reloads on file changes. Use console.log() for debugging - output appears in the terminal.

Deploying

pnpm bb 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.

Quick Reference

CommandDescription
pnpm dlx @browserbasehq/sdk-functions init <name>Create new project
pnpm bb dev <file>Start local dev server
pnpm bb publish <file>Deploy to Browserbase

For invocation examples, common patterns, and troubleshooting, see REFERENCE.md.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.861 reviews
  • Chen Reddy· Dec 28, 2024

    functions fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • James White· Dec 28, 2024

    We added functions from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Chaitanya Patil· Dec 24, 2024

    We added functions from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Alexander Thompson· Dec 24, 2024

    functions reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Chen Sethi· Dec 16, 2024

    Keeps context tight: functions is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Hiroshi Liu· Dec 12, 2024

    functions has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Fatima Diallo· Dec 12, 2024

    functions reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Chen Brown· Dec 8, 2024

    functions fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Neel Sharma· Nov 19, 2024

    functions reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Piyush G· Nov 15, 2024

    functions reduced setup friction for our internal harness; good balance of opinion and flexibility.

showing 1-10 of 61

1 / 7