Deploy serverless browser automation as cloud functions using Browserbase.
Automate repetitive workflows and reduce manual effort
Example: Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example: Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example: Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
Time estimate: 15-45 minutes depending on use case complexity
Prerequisites
Submit your Claude Code skill and start earning
epx add browserbase/skills --skill functionsCompatible with
Supported agents
| name | functions |
| description | "Deploy serverless browser automation as cloud functions using Browserbase. Use when the user wants to deploy browser automation to run on a schedule or cron, create a webhook endpoint for browser tasks, run automation in the cloud instead of locally, or asks about Browserbase Functions." |
| license | MIT |
Deploy serverless browser automation using the official bb CLI.
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"
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
echo "BROWSERBASE_API_KEY=$BROWSERBASE_API_KEY" >> .env
echo "BROWSERBASE_PROJECT_ID=$BROWSERBASE_PROJECT_ID" >> .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 invocationpnpm bb 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.
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.
| 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.
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionfunctionsExecute the skills CLI command in your project's root directory to begin installation:
epx add browserbase/skills --skill functionsFetches functions from browserbasehq/sdk-functions and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
.cursor/skills/functions
Restart Cursor to activate functions. Access via /functionsin your agent's command palette.
Learn more:View source on GitHubSkills CLI docsAbout CursorWhat are agent skills?
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
ginkgo-cloud-lab
GinkgoBioworks/ginkgo-cloud-lab · research · 2 shared tags
browserbase-cli
browserbasehq/cli · productivity · 2 shared tags
autobrowse
browserbase/skills · productivity · 2 shared tags
no-mistakes
kunchenguid/no-mistakes · devops · tag: automation
whatsapp-automation
claude-office-skills/skills · Productivity · tag: automation
harmonyos-device-automation
web-infra-dev/midscene-skills · Productivity · tag: automation
functions fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
We added functions from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
We added functions from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
functions reduced setup friction for our internal harness; good balance of opinion and flexibility.
Keeps context tight: functions is the kind of skill you can hand to a new teammate without a long onboarding doc.
functions has been reliable in day-to-day use. Documentation quality is above average for community skills.
functions reduced setup friction for our internal harness; good balance of opinion and flexibility.
functions fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
functions reduced setup friction for our internal harness; good balance of opinion and flexibility.
functions reduced setup friction for our internal harness; good balance of opinion and flexibility.
showing 1-10 of 61