Skip to content

extension_start ​

Run the PRODUCTION build in a browser: build the project, serve it, and launch.

Quick start ​

Launch the production build in Edge

Asked for the production build, the agent builds it and launches it in Chrome.

Asked for the production build, the agent builds it and launches it in Chrome.

How the agent uses it ​

There is no hot module replacement and no control channel, so your edits are not picked up and extension_eval, extension_storage, extension_reload, extension_open and extension_dom_snapshot cannot attach to this session. Use extension_dev while writing code, and this to check what actually ships. Pass build:false to launch an existing dist/<browser> without rebuilding, or outputPath to launch any prebuilt unpacked extension directory, one another toolchain produced included, which implies build:false. The answer says what it confirmed (the engine process, and the browser pid the launcher recorded once the contract lands) and what a production session cannot confirm (that the browser loaded the extension: it opens no debug port and has no console stream), and names extension_dev for a proven load.

Reference ​

Grouplocal, on by default
TierRun
Needsnone
Read onlyno
Destructiveno
Idempotentno
Reaches the open webno

Inputs ​

InputTypeRequiredDefaultWhat it does
projectPathstringyesExtension project root
browser"chrome" | "chromium" | "edge" | "brave" | "opera" | "vivaldi" | "yandex" | "firefox" | "waterfox" | "librewolf" | "zen" | "floorp" | "safari" | "chromium-based" | "gecko-based" | "firefox-based" | "webkit-based"no"chrome"
buildbooleannotrueBuild before serving. false serves the existing dist/<browser> as-is and fails when there is none.
polyfillbooleannotrueApply cross-browser polyfill (build only)
portnumbernoPassed to the engine as --port (0 for auto-assign). A production start serves nothing over it today; it matters only to a toolchain that reads it.
noBrowserbooleannofalseBuild (or, with build:false, check the dist) without launching a browser. A production start serves nothing, so with no browser the engine process ends once the build does; read the result with extension_build rather than a session.
outputPathstringnoAn existing unpacked extension directory to launch as it is (a manifest.json at its root), for an artifact built by another toolchain or an exact release candidate. Implies build:false; projectPath still names the project the session belongs to. Relative paths resolve against projectPath.
profilestringnoProfile path, or "false" to reuse the real user profile. Omit for a throwaway one.
startingUrlstringnoURL the browser opens on launch
chromiumBinarystringnoCustom Chromium-based binary to launch; browser still names the target family the engine builds for (chromium-based when none is given).
geckoBinarystringnoCustom Gecko/Firefox binary to launch; browser still names the target family the engine builds for (gecko-based when none is given).
hoststringnoBind host, default 127.0.0.1. Use 0.0.0.0 in Docker or devcontainers.
publicHoststringnoHost the browser dials for HMR and reload when it differs from the bind host
extensionsarray of stringnoExtra extension paths or store URLs to load alongside the project

Next ​

  • MCP server: install, the two groups and the session gates
  • Install in your client
  • extension_dev: Run the extension while you edit it: dev build, hot module replacement, and a browser with the extension loaded.
  • extension_stop: Stop a session that extension_dev or extension_start is running: terminate the server and the browser it launched, and remove the live-preview carrier if extension_dev placed one.
  • extension_wait: Wait for a running dev or start session to be ready.