.claude/skills/ts-browserbase/SKILL.md
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.
npx skillsauth add eliferjunior/Claude browserbaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
import 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}`);
// 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;
}
// 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
npm 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 expiresdevelopment
Expert guidance for Fireworks AI, the platform for running open-source LLMs (Llama, Mixtral, Qwen, etc.) with enterprise-grade speed and reliability. Helps developers integrate Fireworks' inference API, fine-tune models, and deploy custom model endpoints with function calling and structured output support.
development
Convert any website into clean, structured data with Firecrawl — API-first web scraping service. Use when someone asks to "turn a website into markdown", "scrape website for LLM", "Firecrawl", "extract website content as clean text", "crawl and convert to structured data", or "scrape website for RAG". Covers single-page scraping, full-site crawling, structured extraction, and LLM-ready output.
tools
Expert guidance for Firebase, Google's platform for building and scaling web and mobile applications. Helps developers set up authentication, Firestore/Realtime Database, Cloud Functions, hosting, storage, and analytics using Firebase's SDK and CLI.
development
When the user needs to build file upload functionality for a web application. Use when the user mentions "file upload," "image upload," "upload endpoint," "multipart upload," "presigned URL," "S3 upload," "file validation," "upload to cloud storage," or "accept user files." Handles upload endpoints, file validation (type, size, magic bytes), cloud storage integration, and upload status tracking. For image/video processing after upload, see media-transcoder.