From fff4312d16bf03e4db16816284b544097489b670 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Fri, 23 Jan 2026 11:41:17 -0600 Subject: [PATCH] update provider flag (#217) * auto-release * fixes * fix secret name * update provider flag --- README.md | 14 ++++++++++++-- src/browser.ts | 21 ++++++++++----------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index ebd9eb4..f6f3b14 100644 --- a/README.md +++ b/README.md @@ -708,14 +708,24 @@ curl -o .claude/skills/agent-browser/SKILL.md \ [Browserbase](https://browserbase.com) provides remote browser infrastructure to make deployment of agentic browsing agents easy. Use it when running the agent-browser CLI in an environment where a local browser isn't feasible. -To enable Browserbase, set these environment variables: +To enable Browserbase, use the `-p` flag: ```bash export BROWSERBASE_API_KEY="your-api-key" export BROWSERBASE_PROJECT_ID="your-project-id" +agent-browser -p browserbase open https://example.com ``` -When both variables are set, agent-browser automatically connects to a Browserbase session instead of launching a local browser. All commands work identically. +Or use environment variables for CI/scripts: + +```bash +export AGENT_BROWSER_PROVIDER=browserbase +export BROWSERBASE_API_KEY="your-api-key" +export BROWSERBASE_PROJECT_ID="your-project-id" +agent-browser open https://example.com +``` + +When enabled, agent-browser connects to a Browserbase session instead of launching a local browser. All commands work identically. Get your API key and project ID from the [Browserbase Dashboard](https://browserbase.com/overview). diff --git a/src/browser.ts b/src/browser.ts index 04cfa66..fb75d59 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -678,14 +678,16 @@ export class BrowserManager { /** * Connect to Browserbase remote browser via CDP. - * Returns true if connected, false if credentials not available. + * Requires BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID environment variables. */ - private async connectToBrowserbase(): Promise { + private async connectToBrowserbase(): Promise { const browserbaseApiKey = process.env.BROWSERBASE_API_KEY; const browserbaseProjectId = process.env.BROWSERBASE_PROJECT_ID; if (!browserbaseApiKey || !browserbaseProjectId) { - return false; + throw new Error( + 'BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID are required when using browserbase as a provider' + ); } const response = await fetch('https://api.browserbase.com/v1/sessions', { @@ -727,8 +729,6 @@ export class BrowserManager { this.pages.push(page); this.activePageIndex = 0; this.setupPageTracking(page); - - return true; } catch (error) { await this.closeBrowserbaseSession(session.id, browserbaseApiKey).catch((sessionError) => { console.error('Failed to close Browserbase session during cleanup:', sessionError); @@ -844,14 +844,13 @@ export class BrowserManager { return; } - // Try connecting to cloud browser providers if configured - // Browserbase: auto-connects when BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID are set - if (await this.connectToBrowserbase()) { + // Cloud browser providers require explicit opt-in via -p flag or AGENT_BROWSER_PROVIDER env var + // -p flag takes precedence over env var + const provider = options.provider ?? process.env.AGENT_BROWSER_PROVIDER; + if (provider === 'browserbase') { + await this.connectToBrowserbase(); return; } - - // Browser Use: requires explicit opt-in via -p browseruse flag or AGENT_BROWSER_PROVIDER=browseruse - const provider = options.provider ?? process.env.AGENT_BROWSER_PROVIDER; if (provider === 'browseruse') { await this.connectToBrowserUse(); return;