functions
通过 Browserbase CLI 部署无服务器浏览器自动化,支持截图、数据抓取和 UI 测试,无需管理浏览器基础设施
npx skills add browserbase/skills --skill functionsBefore / After 效果对比
1 组手动配置 Puppeteer/Playwright,管理浏览器实例、代理和 Headless 运行,维护成本高,一个脚本需要 2 小时配置
使用 Browserbase CLI 一键部署无服务器浏览器,自动处理会话管理和代理,10 分钟内完成自动化脚本运行
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
用户评价 (0)
发表评价
暂无评价
统计数据
用户评分
为此 Skill 评分