Install
$ agentstack add skill-chankov-agent-fleet-bowser ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README — it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Playwright Bowser
Purpose
Automate browsers using playwright-cli — a token-efficient CLI for Playwright. Runs headless by default, supports parallel sessions via named sessions (-s=), and doesn't load tool schemas into context.
Requirements
This skill drives the external Playwright Agent CLI (playwright-cli). It is not bundled with agent-fleet — install it once before using this skill (the guided setup checks for it when bowser is selected).
- Node.js 20+
playwright-cli— install globally:
npm install -g @playwright/cli@latest
playwright-cli --help # verify it responds
Or run ad-hoc without a global install via npx playwright-cli .
Browsers are downloaded automatically on first use; to pre-install explicitly:
playwright-cli install-browser # default (chromium)
playwright-cli install-browser firefox # a specific browser
playwright-cli install-browser --with-deps # include system dependencies
Full install docs:
When to use this vs Chrome DevTools MCP
This skill (playwright-cli) and the chrome-devtools-mcp pi extension are complementary, not redundant — they differ by tool model, not just headless-vs-headful (both can do either):
bowser/playwright-cli(this skill) — CLI-driven, headless-first, parallel named sessions, token-efficient (no tool schemas in context). It needs only Bash, so it works as a dispatched subagent under--no-extensions. Use it for automated, parallel, or background runtime-UI evidence and scraping.web-debugger/chrome-devtools-mcp— livechrome_devtools__*tools (DOM/console/network/performance traces) for interactive headful debugging with a human in the loop. Those tools come from an always-on extension, so they are reachable in the main session or a coms peer, not a--no-extensionssubagent. Use it to understand a failure in a running dev app.
Key Details
- Headless by default — pass
--headedtoopento see the browser - Parallel sessions — use
-s=to run multiple independent browser instances - Persistent profiles — cookies and storage state preserved between calls
- Token-efficient — CLI-based, no accessibility trees or tool schemas in context
- Vision mode (opt-in) — set
PLAYWRIGHT_MCP_CAPS=visionto receive screenshots as image responses in context instead of just saving to disk
Sessions
Always use a named session. Derive a short, descriptive kebab-case name from the user's prompt. This gives each task a persistent browser profile (cookies, localStorage, history) that accumulates across calls.
# Derive session name from prompt context:
# "test the checkout flow on mystore.com" → -s=mystore-checkout
# "scrape pricing from competitor.com" → -s=competitor-pricing
# "UI test the login page" → -s=login-ui-test
playwright-cli -s=mystore-checkout open https://mystore.com --persistent
playwright-cli -s=mystore-checkout snapshot
playwright-cli -s=mystore-checkout click e12
Managing sessions:
playwright-cli list # list all sessions
playwright-cli close-all # close all sessions
playwright-cli -s= close # close specific session
playwright-cli -s= delete-data # wipe session profile
Quick Reference
Core: open [url], goto , click , fill , type , snapshot, screenshot [ref], close
Navigate: go-back, go-forward, reload
Keyboard: press , keydown , keyup
Mouse: mousemove , mousedown, mouseup, mousewheel
Tabs: tab-list, tab-new [url], tab-close [index], tab-select
Save: screenshot [ref], pdf, screenshot --filename=f
Storage: state-save, state-load, cookie-*, localstorage-*, sessionstorage-*
Network: route , route-list, unroute, network
DevTools: console, run-code , tracing-start/stop, video-start/stop
Sessions: -s= , list, close-all, kill-all
Config: open --headed, open --browser=chrome, resize
Workflow
- Derive a session name from the user's prompt and open with
--persistentto preserve cookies/state. Always set the viewport via env var at launch:
PLAYWRIGHT_MCP_VIEWPORT_SIZE=1440x900 playwright-cli -s= open --persistent
# or headed:
PLAYWRIGHT_MCP_VIEWPORT_SIZE=1440x900 playwright-cli -s= open --persistent --headed
# or with vision (screenshots returned as image responses in context):
PLAYWRIGHT_MCP_VIEWPORT_SIZE=1440x900 PLAYWRIGHT_MCP_CAPS=vision playwright-cli -s= open --persistent
- Get element references via snapshot:
playwright-cli snapshot
- Interact using refs from snapshot:
playwright-cli click
playwright-cli fill "text"
playwright-cli type "text"
playwright-cli press Enter
- Capture results:
playwright-cli screenshot
playwright-cli screenshot --filename=output.png
- Always close the session when done. This is not optional — close the named session after finishing your task:
playwright-cli -s= close
Configuration
If a playwright-cli.json exists in the working directory, use it automatically. If the user provides a path to a config file, use --config path/to/config.json. Otherwise, skip configuration — the env var and CLI defaults are sufficient.
{
"browser": {
"browserName": "chromium",
"launchOptions": { "headless": true },
"contextOptions": { "viewport": { "width": 1440, "height": 900 } }
},
"outputDir": "./screenshots"
}
Full Help
Run playwright-cli --help or playwright-cli --help for detailed command usage.
See the Playwright Agent CLI docs for full documentation.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: chankov
- Source: chankov/agent-fleet
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.