F

functions

by @browserbasev
4.3(13)

Deploy serverless browser automation via Browserbase CLI, supporting screenshots, data scraping, and UI testing, without managing browser infrastructure.

automationweb-scrapingbrowser-automationserverlessGitHub
Installation
npx skills add browserbase/skills --skill functions
compare_arrows

Before / After Comparison

1
Before

Manually configure Puppeteer/Playwright, manage browser instances, proxies, and Headless operation, high maintenance costs, a script takes 2 hours to configure.

After

Use Browserbase CLI to deploy serverless browsers with one click, automatically handle session management and proxies, complete automation script execution within 10 minutes.

SKILL.md

functions

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

Command Description

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. Weekly Installs579Repositorybrowserbase/skillsGitHub Stars548First SeenTodaySecurity AuditsGen Agent Trust HubPassSocketPassSnykWarn

User Reviews (0)

Write a Review

Effect
Usability
Docs
Compatibility

No reviews yet

Statistics

Installs1.7K
Rating4.3 / 5.0
Version
Updated2026年5月21日
Comparisons1

User Rating

4.3(13)
5
38%
4
38%
3
15%
2
8%
1
0%

Rate this Skill

0.0

Compatible Platforms

🔧Claude Code

Timeline

Created2026年4月25日
Last Updated2026年5月21日