Install any skill in seconds. Free to start, no credit card required.
Get Started Free →You are an expert in BrowserBase, the cloud platform for running headless browsers at scale. You help developers deploy browser-based automations, AI agents, and web scraping pipelines using managed Chromium instances with residential proxies, session recording, stealth mode, and parallel execution — without managing browser infrastructure.
.claude/skills/terminalskills-browserbase/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 41% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 85% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 39% | 0% |
You are an expert in BrowserBase, the cloud platform for running headless browsers at scale. You help developers deploy browser-based automations, AI agents, and web scraping pipelines using managed Chromium instances with residential proxies, session recording, stealth mode, and parallel execution — without managing browser infrastructure.
typescriptimport Browserbase from "@browserbasehq/sdk"; import { chromium } from "playwright-core"; const bb = new Browserbase({ apiKey: process.env.BROWSERBASE_API_KEY! }); // Create a browser session const session = await bb.sessions.create({ projectId: process.env.BROWSERBASE_PROJECT_ID!, browserSettings: { fingerprint: { locales: ["en-US"], screen: { maxWidth: 1920, maxHeight: 1080 }, }, viewport: { width: 1280, height: 720 }, }, proxies: true, // Residential proxy (avoid blocks) keepAlive: true, // Keep session alive between connections timeout: 300, // Max session duration (seconds) }); // Connect with Playwright const browser = await chromium.connectOverCDP(session.connectUrl); const context = browser.contexts()[0]; const page = context.pages()[0]; await page.goto("https://example.com"); // ... automation logic ... // Session recording available at: console.log(`Recording: https://browserbase.com/sessions/${session.id}`);
typescript// Process 50 URLs concurrently with cloud browsers async function scrapeInParallel(urls: string[], concurrency = 10) { const results: any[] = []; // Process in batches for (let i = 0; i < urls.length; i += concurrency) { const batch = urls.slice(i, i + concurrency); const batchResults = await Promise.allSettled( batch.map(async (url) => { const session = await bb.sessions.create({ projectId: process.env.BROWSERBASE_PROJECT_ID!, proxies: true, keepAlive: false, // Auto-cleanup }); const browser = await chromium.connectOverCDP(session.connectUrl); const page = browser.contexts()[0].pages()[0]; try { await page.goto(url, { waitUntil: "networkidle" }); const data = await page.evaluate(() => { // Extract data from page return { title: document.title, text: document.body.innerText.substring(0, 5000) }; }); return { url, ...data }; } finally { await browser.close(); } }) ); results.push(...batchResults); } return results; }
typescript// Create a context that persists cookies/auth across sessions const context = await bb.contexts.create({ projectId: process.env.BROWSERBASE_PROJECT_ID!, }); // First session: log in and save context const loginSession = await bb.sessions.create({ projectId: process.env.BROWSERBASE_PROJECT_ID!, browserSettings: { context: { id: context.id, persist: true } }, }); // ... log in via Playwright ... // Later sessions reuse the authenticated context const workSession = await bb.sessions.create({ projectId: process.env.BROWSERBASE_PROJECT_ID!, browserSettings: { context: { id: context.id, persist: true } }, }); // Already logged in — cookies persisted
bashnpm install @browserbasehq/sdk playwright-core # Get API key: https://browserbase.com
proxies: true for sites that block datacenter IPs; BrowserBase provides residential proxieskeepAlive: true for long workflows; false for one-shot scrapingPromise.allSettled for parallel workenv: "BROWSERBASE"timeout to prevent zombie sessions; sessions auto-terminate when the timeout expires| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | pass→pass | 13,978 | 13,983 | +0% | 1 | 1 | 0% | 3,046 | 4,008 | +32% | 0 | 0 | — |
case-01 | fail→pass | 13,176 | 8,458 | -36% | 1 | 1 | 0% | 2,794 | 3,149 | +13% | 0 | 0 | — |
case-03 | fail→pass | 9,869 | 8,445 | -14% | 1 | 1 | 0% | 2,164 | 3,043 | +41% | 0 | 0 | — |
case-04 | pass→pass | 6,840 | 4,052 | -41% | 1 | 1 | 0% | 1,477 | 1,980 | +34% | 0 | 0 | — |
case-05 | pass→pass | 4,337 | 3,381 | -22% | 1 | 1 | 0% | 833 | 1,746 | +110% | 0 | 0 | — |
case-06 | fail→pass | 5,563 | 3,906 | -30% | 1 | 1 | 0% | 987 | 1,829 | +85% | 0 | 0 | — |
case-07 | pass→pass | 5,311 | 3,809 | -28% | 1 | 1 | 0% | 990 | 1,920 | +94% | 0 | 0 | — |
case-08 | pass→pass | 10,278 | 6,077 | -41% | 1 | 1 | 0% | 2,123 | 2,202 | +4% | 0 | 0 | — |
case-09 | pass→pass | 9,052 | 5,868 | -35% | 1 | 1 | 0% | 1,779 | 2,257 | +27% | 0 | 0 | — |
case-10 | pass→pass | 10,839 | 6,182 | -43% | 1 | 1 | 0% | 1,955 | 2,368 | +21% | 0 | 0 | — |
case-11 | pass→pass | 9,859 | 3,663 | -63% | 1 | 1 | 0% | 2,225 | 1,921 | -14% | 0 | 0 | — |
case-12 | pass→pass | 10,716 | 7,671 | -28% | 1 | 1 | 0% | 1,947 | 2,571 | +32% | 0 | 0 | — |
case-13 | pass→pass | 5,793 | 5,216 | -10% | 1 | 1 | 0% | 1,063 | 2,179 | +105% | 0 | 0 | — |
case-14 | pass→pass | 11,257 | 5,987 | -47% | 1 | 1 | 0% | 1,803 | 2,212 | +23% | 0 | 0 | — |
case-15 | pass→pass | 5,600 | 2,451 | -56% | 1 | 1 | 0% | 1,011 | 1,562 | +55% | 0 | 0 | — |
case-16 | fail→pass | 13,953 | 10,935 | -22% | 1 | 1 | 0% | 2,784 | 3,352 | +20% | 0 | 0 | — |
case-17 | fail→pass | 8,014 | 3,667 | -54% | 1 | 1 | 0% | 1,274 | 1,775 | +39% | 0 | 0 | — |
case-18 | pass→pass | 2,360 | 2,114 | -10% | 1 | 1 | 0% | 398 | 1,478 | +271% | 0 | 0 | — |
case-19 | pass→pass | 5,857 | 5,762 | -2% | 1 | 1 | 0% | 1,137 | 2,128 | +87% | 0 | 0 | — |
case-20 | pass→pass | 7,743 | 4,380 | -43% | 1 | 1 | 0% | 1,520 | 1,925 | +27% | 0 | 0 | — |
case-21 | pass→pass | 8,320 | 5,273 | -37% | 1 | 1 | 0% | 1,616 | 2,237 | +38% | 0 | 0 | — |
case-22 | pass→pass | 7,853 | 6,459 | -18% | 1 | 1 | 0% | 1,531 | 2,511 | +64% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.