Browser Use wrapper
If you use Browser Use Cloud today, keep your runs.create / poll flow and point it at Banana Peel: create against POST /api/wrappers/browser-use/run, poll GET …/run/:id (also available at /task/:id). Your tasks default to routing: "smart" — the best runner across all providers — so pin routing: "browser-use" only if you want provider parity during migration.
Why wrap vs call Responses directly
Use the Browser Use wrapper when you already have Browser Use client code and want the smallest diff: same method names / request shapes, Banana Peel key + base URL, optional routing. Use POST /api/v1/responses for new work — one API for smart routing, benchmarks, MFA input, and run inspection. Wrappers are a migration bridge, not the long-term product surface.
Install
npm install ./packages/wrappers/browser-use→@bananapeel/browser-use- Or raw
fetchagainst the wrapper paths (no package required)
Before → after
import { BrowserUse } from "browser-use-sdk/v4";
const client = new BrowserUse(); // BROWSER_USE_API_KEY
const run = await client.runs.create({
task: "Find the top Hacker News story",
model: "bu-max",
});
const result = await client.runs.waitForCompletion(run.id);
console.log(result.result);Auth & base URL
Agents: npx -y @banana-peel/cli init --agent --json (see /docs/agents). Humans who already have an account can copy a key from the keys console: bp_live_… (or bp_test_…).
- Env:
BANANA_PEEL_API_KEY, optionalBANANA_PEEL_BASE(defaults to the production Cloud Run URL) - Headers:
Authorization: Bearer …,x-api-key, or vendor-shapedx-browser-use-api-key,browser-use-api-key - HTTP base for this wrapper:
${BANANA_PEEL_BASE}/api/wrappers/browser-use
API mapping
| Browser Use | Banana Peel |
|---|---|
| runs.create | POST /api/wrappers/browser-use/run |
| runs.get / waitForCompletion | GET /api/wrappers/browser-use/run/:id |
| task / result | task → Responses input; result as output (status: finished when done) |
| model / session / workspace | Not emulated — use routing + native Responses |
Limits / gaps
- No Cloud
modelcatalog, live session streaming, or workspaces. - Response field names follow the wrapper shape (
output,is_success), not every v3/v4 SDK field.
See also
- Wrappers overview
- OpenAI-compatible Responses API (
POST /api/v1/responses) - Quickstart
- MCP server
- Migrating providers