---
title: "pi-browser-use"
description: "Managed persistent, fresh, and existing Chrome sessions with focus-safe browser tools and CLI-first skills."
canonical: https://agentpluginsdirectory.com/plugins/pi-browser-use
last-updated: 2026-09-11
---

# pi-browser-use
Managed persistent, fresh, and existing Chrome sessions with focus-safe browser tools and CLI-first skills.
- Slug: pi-browser-use
- Publisher: 0xPlayerOne
- Repository: https://github.com/0xPlayerOne/pi-browser-use
- Manifest: plugin.json
- Version: 0.11.3
- License: MIT
- Category (editorial): other
- Skills: 8 (auth-bootstrap, browser-policy, derive-client, dogfood, gmail-auth, playwright-handoff, triage-console, visual-qa)
- MCP servers: 1 (browser)
- Stars: 1
- Repository created: 2026-09-05
- Repository last pushed: 2026-09-10
- Publisher type: User
- Listing: https://agentpluginsdirectory.com/plugins/pi-browser-use
- Schema: https://agent-plugins.org/schemas/1.0.0/plugin.schema.json

## What pi-browser-use does, in the publisher's words

Native Pi extension and Agent Plugins 1.0 / standalone MCP server, sharing the same curated browser runtime. See portable installation and configuration.

Opinionated browser-use for the Pi coding agent, powered by chrome-devtools-mcp, not Playwright.

- Persistent Pi browser by default: self-launched headless Chrome on ~/.pi/browser-profile (log in once via browser_setup); MCP attaches over an ephemeral loopback port. No window, no focus steal, no consent popups.
- Fresh clean room on request: mode: fresh for anonymous checks; nothing persists.
- Existing-Chrome escape hatch: mode: existing brokers background tabs into the collapsed pi-browser-use group via the bundled extension (extension/).
- CLI-first policy bundled: skills/browser-policy tells agents to prefer gh / wrangler / APIs and web fetching before driving the browser.
- Safer proxying: browser_-prefixed tools, noisy/privileged tools excluded, sensitive network headers redacted, background/focus-safe page defaults.

From the project README, punctuation lightly normalized. Full text: https://raw.githubusercontent.com/0xPlayerOne/pi-browser-use/HEAD/README.md

## Skills

- auth-bootstrap: Initialize or reauthenticate the managed persistent browser profile. Use on a new machine or plugin instance, at a login wall, or when SSO, 2FA, passkeys or provider verification require a human. Works with native Pi and portable MCP hosts.
- browser-policy: Browser-use policy for agents. Use before any browser_* tool call. Prefer CLIs and APIs over browser automation, default to a dedicated persistent headless profile, use fresh mode for anonymous checks, and never steal user focus.
- derive-client: Turn observed browser traffic into a standalone API client. Use when a task repeats the same site interactions and should stop driving the browser, record the network calls, then replace clicks with fetch.
- dogfood: Exploratory testing playbook for bug hunts and quality passes. Use when asked to dogfood, poke at, or break a site, tour it with intent instead of clicking around.
- gmail-auth: Verify Gmail authentication in the persistent managed browser profile. Use when a task needs the Gmail inbox, after browser_setup, or when Google shows a login or verification challenge.
- playwright-handoff: Decide when browser automation has hit its limits and hand off to a repo Playwright run instead. Use when a task needs request mocking, assertions, traces, repeatability, or CI parity that browser_* tools cannot provide.
- triage-console: Standard flow for diagnosing a broken page. Use when a site misbehaves, renders wrong, or throws, snapshot, console errors, failed network requests, then screenshot.
- visual-qa: Screenshot discipline for visual checks of WebGL/canvas scenes and layouts. Use when asked whether something \"looks right\", for before/after comparisons, or for viewport coverage.

Descriptions come from the frontmatter of each SKILL.md, punctuation lightly normalized.

## MCP servers

- browser: transport: stdio; command: node ${PLUGIN_ROOT}/dist/mcp-server.js; env: PI_BROWSER_USE_DATA_DIR

Read from the plugin's own mcp.json. Environment variable names only, never values.
