Browser Extensions

View as Markdown

Browser extensions can be loaded into browser runtimes to add capabilities such as ad blocking, authentication helpers, or custom internal tools.

Access extensions through bctrl.browserExtensions.

List extensions

1const extensions = await bctrl.browserExtensions.list();

Upload an extension

1import { readFileSync } from "node:fs";
2
3const extension = await bctrl.browserExtensions.upload({
4 file: readFileSync("./internal-tools.zip"),
5 filename: "internal-tools.zip",
6});

Import an extension from a URL

1const extension = await bctrl.browserExtensions.importFromUrl({
2 url: "https://example.com/extension.crx",
3});

Launch with extensions

1const runtime = await space.runtimes.browser.launch({
2 name: "extension-test",
3 extensionIds: [extension.id],
4});
5
6const connection = await runtime.connections.create({
7 protocol: "cdp",
8});

Delete an extension

1await bctrl.browserExtensions.delete(extension.id);