BCTRL

View as Markdown

BCTRL gives your application or AI agent a managed browser it can control.

Launch an isolated browser Runtime. Drive it with Playwright or Selenium, call typed Tools, or send a goal through a Conversation. Every active browser session produces a Run that brings status, traces, events, files, usage, and an optional recording together.

What can you build?

Choose how to automate

  • Connect your framework when you want full browser control or already use Playwright or Puppeteer or Selenium.
  • Call a Tool for a bounded, typed operation such as opening a page, performing a semantic action, or extracting structured data.
  • Start a Conversation when a browser goal spans multiple steps and you want to stream its progress.

All three approaches operate through an active Runtime, and BCTRL records their activity in its Run.

How BCTRL organizes access and work

Public API requests are authenticated with a BCTRL API key. The key sets the maximum account boundary:

  • An Organization key can work at the Organization root or narrow supported requests to one of its Subaccounts.
  • A Subaccount key stays inside its own Subaccount.

Account context can narrow access; it cannot expand it.

API key
└─ Account context: organization or one subaccount
└─ Space: shared storage, Vault, and AI configuration
└─ Runtime: managed browser
└─ Run: one start-to-stop session record

A Space configures the environment available to its Runtimes. A Runtime is the durable browser resource. Each time it starts, BCTRL creates a Run that records what happened.

Choose your integration

  • SDK — build from application code with a typed TypeScript or Python client.
  • API — call the public v1 API directly from any HTTP stack.
  • CLI — create, inspect, and automate BCTRL resources from a terminal or CI job.
  • MCP — let a compatible AI client discover and call BCTRL operations and schemas.