Skip to content

SOP 006: Manage Chrome Extensions

Fresh
FieldValue
SOP IDSOP-006
Version1.0
StatusActive (Beta)
SourceSteel Extensions API

Overview

Add Chrome extensions to Steel sessions. Extensions are stored globally per organization and can be injected into any session.

Prerequisites

  • Steel account with API key
  • Extension file (.zip/.crx) or Chrome Web Store URL

Extension Lifecycle

Procedure

Step 1: Upload Extension from File

typescript
await client.extensions.upload({
  file: fs.readFileSync('extensions/recorder/recorder.zip')
});

Step 2: Upload from Chrome Web Store

typescript
await client.extensions.upload({
  url: "https://chromewebstore.google.com/detail/extension-name/extension-id"
});

Step 3: Inject into Sessions

typescript
// Inject ALL org extensions
const session = await client.sessions.create({
  extensionIds: ['all_ext']
});

// Inject specific extensions
const session = await client.sessions.create({
  extensionIds: ['extensionId_1', 'extensionId_2']
});

Step 4: Manage Extensions

typescript
// List all extensions
const extensions = await client.extensions.list();

// Update extension from file
await client.extensions.update("{extensionId}", {
  file: fs.readFileSync("extensions/recorder2/recorder2.zip")
});

// Update from Chrome Web Store
await client.extensions.update("{extensionId}", {
  url: "https://chromewebstore.google.com/detail/.../..."
});

// Delete single extension
await client.extensions.delete("{extensionId}");

// Delete ALL extensions
await client.extensions.deleteAll();

Requirements

  • Extensions need a manifest.json file
  • Supported formats: .zip and .crx
  • Extensions are loaded when the session starts
  • Communication via Chrome DevTools Protocol (CDP)

Verification Checklist

  • [ ] Extension uploaded successfully
  • [ ] Extension appears in client.extensions.list()
  • [ ] Session starts with extension injected
  • [ ] Extension functionality works in session

Troubleshooting

IssueSolution
Upload failsVerify manifest.json exists, check file format (.zip/.crx)
Extension not loadingEnsure extensionIds includes correct ID or 'all_ext'
Extension crashes sessionTest extension locally first, check compatibility

See Also

SOP Documentation Hub - Built from Steel.dev Official Docs