Pi package. Adds browser tool backed by dev-browser for page navigation, AI snapshots, interaction, screenshots, and session-scoped browser state.
Repo root = package root. Important because Pi installs GitHub packages by cloning repo and reading root package.json.
From GitHub:
pi install git:github.com/magimetal/pi-dev-browser
# or
pi install https://github.com/magimetal/pi-dev-browserProject-local install:
pi install -l git:github.com/magimetal/pi-dev-browserFrom local checkout:
pi install /absolute/path/to/pi-dev-browser
# or project-local
pi install -l /absolute/path/to/pi-dev-browserInstall Pi 0.77.0 and Node.js >=22.19.0 first. Package also requires dev-browser CLI and browser runtime before first use.
npm install -g dev-browser
dev-browser installWhat this does:
- installs
dev-browserCLI globally - installs browser runtime used by managed
headlessandheadedmodes
If dev-browser is missing during an interactive Pi session, the extension can offer global install automatically. Non-UI runs must satisfy the prerequisite manually. Missing CLI/install infrastructure failures throw tool execution errors; browser command failures from dev-browser are returned as recoverable content with error details so the agent can inspect and continue.
Typical flow:
open <url>snapshot -i- interact with
@e...refs viaclick,fill,type, orselect snapshot -iagain after page changesscreenshot [--full]close
Example tool calls:
browser({ command: "open https://example.com" })
browser({ command: "snapshot -i" })
browser({ command: "click @e12" })
browser({ command: "screenshot --full" })
open <url>snapshot [-i]click <@ref>fill <@ref> <text>type <@ref> <text>select <@ref> <value>press <key>scroll <up|down|left|right> [px]get text|url|title [@ref]wait <@ref|ms>screenshot [--full]close
Detailed grammar: docs/commands.md
Tool supports dev-browser transport selection:
mode: "headless"— default managed Chromiummode: "headed"— visible managed Chromiummode: "connect"— attach to existing Chrome/CDP browserconnectUrl— optional CDP endpoint whenmode: "connect"ignoreHttpsErrors— managed mode helper for localhost or self-signed certs
Example:
browser({ command: "open https://localhost:3000", mode: "headed", ignoreHttpsErrors: true })
browser({ command: "snapshot -i", mode: "connect", connectUrl: "http://localhost:9222" })
Cause: CLI missing from PATH.
Fix:
npm install -g dev-browserRestart shell or Pi after install if command still missing.
Cause: dev-browser install not run yet.
Fix:
dev-browser installCause: connectUrl passed without mode: "connect".
Fix: move CDP endpoint into call with mode: "connect".
Cause: HTTPS ignore flag only works for managed headless and headed launches.
Fix: remove ignoreHttpsErrors or switch away from connect mode.
Install deps:
npm installRun quality gates:
npm run lint
npm run typecheck
npm test
npm run check
npm pack --dry-runLocal installability proof should use isolated temp HOME and project-local install target so existing global Pi settings cannot false-pass discovery.
Verification commands used for this package:
npm install
npm run lint
npm run typecheck
npm test
npm run check
npm pack --dry-run
HOME="$TMP_HOME" pi install -l /absolute/path/to/pi-dev-browser
HOME="$TMP_HOME" pi list
HOME="$TMP_HOME" pi config.
├── extensions/
│ ├── dev-browser.ts
│ ├── dev-browser-core.ts
│ └── dev-browser-runtime.ts
├── tests/
│ └── dev-browser-core.test.ts
├── docs/
│ └── commands.md
├── package.json
├── CHANGELOG.md
├── LICENSE
└── README.md
