Steel wrapper

If you use Steel today, you get two surfaces. Agent tasks go to /api/wrappers/steel/tasks (Responses under the hood) and become Banana Peel runs — they default to routing: "smart", so pin routing: "steel" (or a fallback list) only if you want provider parity during migration. Sessions — live browsers you hold open and drive yourself — go through an optional reverse-proxy at /api/wrappers/steel/v1/sessions (available when STEEL_API_KEY is configured on the deployment) and always run on a real Steel browser. See Runs vs. sessions.

Why wrap vs call Responses directly

Use the Steel wrapper when you already have Steel 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

  • In-repo: npm install ./packages/wrappers/steel @bananapeel/steel
  • Or keep steel-sdk for sessions only — set baseURL to ${BANANA_PEEL_BASE}/api/wrappers/steel and steelAPIKey to your bp_live_… key

Before → after

import Steel from "steel-sdk";

const client = new Steel({
  steelAPIKey: process.env.STEEL_API_KEY,
});

// Official Steel is session-first (CDP). Agent tasks vary by product surface.
const session = await client.sessions.create({ useProxy: true });
console.log(session.websocketUrl);

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, optional BANANA_PEEL_BASE (defaults to the production Cloud Run URL)
  • Headers: Authorization: Bearer …, x-api-key, or vendor-shaped steel-api-key, x-steel-api-key
  • HTTP base for this wrapper: ${BANANA_PEEL_BASE}/api/wrappers/steel

API mapping

Steel / clientBanana Peel
tasks.createPOST /api/wrappers/steel/tasks
tasks.retrieveGET /api/wrappers/steel/tasks/:id
sessions.create (steel-sdk)POST /api/wrappers/steel/v1/sessions
task / prompt / goalMapped to Responses input
status / outputVendor-shaped fields + banana_peel (runner, cost, artifacts)

Limits / gaps

  • Not a full steel-sdk reimplementation (files, captchas, computer actions, context APIs).
  • Sessions proxy returns 503 if STEEL_API_KEY is missing on the Banana Peel deployment — tasks still work without it.
  • Steel-native agent product surfaces beyond this task shape are not emulated.

See also

Command Palette

Search for a command to run...