Omniscio documentation
Browse all documentation
  1. Getting Started13
  2. Sessions & Agents115
  3. Inbox & Notifications59
  4. Projects & Tasks95
  5. Automation & Scheduling75
  6. Knowledge & Memory26
  7. AI Features60
  8. Integrations100
  9. Plugins & Marketplace33
  10. Cloud & Teams56
  11. Settings & Customization58
  12. Account & Billing28
  13. Troubleshooting84
  14. CLI & API Reference22
  15. Legal & Policies4
  16. Uncategorised22

Chrome Extension Dev (Autopilot)

Chrome Extension Dev (Autopilot) lets an agent build and test a Chrome extension itself by driving a real Chrome over the DevTools Protocol — loading the unpacked extension, clicking the popup, reading the console, reloading after edits, and reporting back with screenshots. Covers the setup, the per-session auto-equip, the Extensions hub, and privacy.

Status: in development — hidden by default. Reveal via Settings → Lab → Chrome extension dev (Autopilot) or launch Omniscio with AMC_SHOW_CHROME_EXTENSION_DEV=1.

What it is

When your project is a Chrome extension, this feature lets the agent build and test the extension itself by driving a real Chrome browser — no manual clicking. It does this with agent-browser, a CLI that connects to a headed Chrome over the Chrome DevTools Protocol.

The agent gets a built-in extension-dev workflow that teaches it to:

  • Load the unpacked extension from the project folder into a managed Chrome instance.
  • Click the popup, interact with content scripts, and take screenshots.
  • Read the browser console for JavaScript errors.
  • Reload after code edits (Chrome does not hot-reload extensions — a step that trips up most generic agents).
  • Iterate until the extension behaves as expected, then report back with screenshot evidence.

The result: the agent owns the build-and-verify loop for Chrome extension work, the same way Obscura lets it own the verify loop for web apps — but on real, pixel-rendering Chrome (Obscura has no rendering engine and cannot load extensions).

Inspired by the jlstradingco/chrome-ext-autopilot workflow.

What it is NOT

  • Not Chrome Web Store publishing — this feature covers building and testing only. Distribution to the store is out of scope.
  • Chrome only — Firefox and Safari extension formats are not supported. The underlying agent-browser CLI connects to Chrome (or Chrome-for-Testing); other browsers are not wired.
  • Not a general-purpose browser-automation feature — the feature is scoped to the Chrome-extension development loop. General browser automation is a possible later generalization.

Where to find it

The feature is hidden until you reveal it, in Settings → Lab → Chrome extension dev (Autopilot). With it on, an Extensions tool appears in the sidebar; clicking that opens the Chrome Extensions Hub, one panel listing every Chrome-extension project Omniscio knows about. The guided "Build a Chrome Extension" mission is reachable from a project's empty state and from the mission picker, and the two tools it needs are installed by a one-click "Set it up for me" flow rather than by hand.

How it behaves

Setup

Two prerequisites must be in place before the feature activates:

  1. Enable the feature in Settings → Lab → "Chrome extension dev (Autopilot)" (or run Omniscio with AMC_SHOW_CHROME_EXTENSION_DEV=1).
  2. Install agent-browser and Chrome-for-Testing — use the Toolchain "Set it up for me" flow. Omniscio downloads both the agent-browser CLI and the matching Chrome-for-Testing binary in one click. You do not need a separately installed Chrome.

Proactive nudge: the first time you open a Chrome-extension project with the feature enabled but agent-browser not yet installed, Omniscio drops a single dismissible Inbox card offering one-click setup (once per install, never nags).

Auto-equip (how it activates per-session)

Omniscio detects that a project is a Chrome extension when its root contains a manifest.json with "manifest_version": 2 or "manifest_version": 3. When all three conditions hold — the project is a Chrome extension, the feature is enabled, and agent-browser is installed — the session is automatically equipped with:

  1. The extension-dev workflow (a built-in skill injected into the session's context), which teaches the agent the load → exercise → screenshot → reload → iterate loop.
  2. A git-excluded agent-browser.json written to the project root: { "headed": true, "extensions": ["<absolute project path>"] }. This tells agent-browser to launch in headed mode and load the project directory as an unpacked extension. The extension path is absolute on purpose — Chrome resolves a relative "." against its own install directory (not the project) and fails with "manifest missing", so Omniscio writes the absolute project path. Omniscio writes this file on first equip (only when absent — it never clobbers a config you authored) and adds it to the project's .gitignore; it is never committed.

Coaching mission — "Build a Chrome Extension"

A guided "Build a Chrome Extension" coaching mission takes a non-programmer from idea → working, tested extension in one session. It scaffolds the extension folder structure and manifest, then hands off to a session that has the Autopilot workflow already active — so the agent builds the popup, background logic, and any content scripts, then verifies each piece by driving Chrome. The mission is reachable from the project empty-state and the mission picker.

Privacy

agent-browser launches a clean managed Chrome-for-Testing instance — not your real Chrome profile. Omniscio passes no cookies, saved passwords, bookmarks, or sign-in state to the test browser. There is no way for the agent to accidentally browse as you or access your real Chrome history. The managed instance only exists while the session is running.

Extensions hub

When the chrome-extension-dev feature is visible, an "Extensions" tool appears in the sidebar. Clicking it opens the Chrome Extensions Hub — a dedicated panel that lists every Chrome-extension project Omniscio knows about, all in one place.

What the hub shows

Each project row displays:

  • A status pill — Tested (the project has screenshots under tests/screenshots/, indicating at least one Autopilot run has passed) or Draft (no screenshots yet).
  • Three quick-action icon buttons: Open (switches Omniscio to that project), Test it (shows a confirmation dialog then launches a new Autopilot session for that extension), and Install in Chrome (opens an InstallDialog that reveals the project folder via the OS file manager and walks through Chrome's Load-unpacked flow — this button is disabled until the project has been tested at least once).
  • A right-click menu with Rename (edits the project name via PROJECT_UPDATE) and Remove (soft-deletes the project via PROJECT_DELETE with an undo toast — the project record is marked deleted, not physically removed).

A "+ New Extension" button at the top launches the guided "Build a Chrome Extension" coaching mission, taking you from idea to a working, tested extension in one session.

What Install in Chrome does (and doesn't do)

"Install in Chrome" never auto-installs the extension or opens a chrome:// URL. It reveals the built extension folder in your OS file manager and gives you step-by-step instructions for Chrome's built-in Load unpacked flow (chrome://extensions → Developer mode → Load unpacked → select folder). This is intentional: Chrome requires a deliberate user gesture to load an unpacked extension — there is no API Omniscio can call to do it silently.

How project discovery works

The hub calls CHROME_EXTENSIONS_LIST (a read-only IPC channel) which invokes listExtensionProjects() on the backend. That function filters the full project list through isChromeExtensionProject (the same detection used for Autopilot workflow injection) and attaches a tested flag based on whether tests/screenshots/ exists in the project folder.

Gating

The sidebar "Extensions" tool and the hub panel are both gated by the chrome-extension-dev unreleased feature, via the same sidebarLaunch check used throughout — when the feature is hidden, the tool does not appear at all.

Key code — extensions hub

  • src/renderer/src/features/chrome-extensions/ — all hub UI components (ChromeExtensionsHubView, InstallDialog, icon actions).
  • src/main/services/chrome-extension/chrome-extensions-service.ts — listExtensionProjects() backend implementation.
  • src/main/ipc/chrome-extensions-handlers.ts — CHROME_EXTENSIONS_LIST IPC handler.

For agents

Key code

  • src/main/services/chrome-extension/ — feature services:
    • is-chrome-extension-project.ts — detects manifest.json with manifest_version 2 or 3.
    • session-context-provider.ts — content-matched provider that injects the workflow when all gates pass.
    • extension-dev-workflow.ts — the workflow text injected into the session context.
    • ensure-agent-browser-config.ts — writes/validates agent-browser.json and updates .gitignore.
    • agent-browser-installed.ts — checks whether the agent-browser binary is available.
    • extension-dev-nudge.ts — the once-per-install Inbox nudge when agent-browser is missing.
  • src/shared/unreleased-features.ts — the chrome-extension-dev entry in UNRELEASED_FEATURES (setting key chromeExtensionDevEnabled, env var AMC_SHOW_CHROME_EXTENSION_DEV).
  • src/main/services/session-context/ — the session-context provider seam that content-matched providers (like this one) plug into.

Design spec: docs/superpowers/specs/2026-06-19-chrome-extension-dev-autopilot-design.md.

Related

Verifying a web app by driving a real browser is the sibling capability described on the Web app verification page, and the browser surface itself is covered by AI browser. The guided "Build a Chrome Extension" mission belongs to the wider mission system on the Missions hub page.

Last verified 2026-10-06