Chalk Labs
Need help deploying bowser?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/haytamaroui-bowser
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/bowser
Tools it pre-approves 1
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash
What's inside
- Skill name
bowser- Description
- Headless browser automation using Playwright CLI. Use when you need headless browsing, parallel browser sessions, UI testing, screenshots, web scraping, or browser automation that can run in the background. Keywords - playwright, headless, browser, test, screenshot, scrape, parallel.
- License
- MIT
- Allowed tools
- Bash
- Instructions
- 110 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves any shell command
Files (1)
- SKILL.md
SKILL.md (first lines)
# 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.
## Key Details
- **Headless by default** — pass `--headed` to `open` to see the browser
- **Parallel sessions** — use `-s=<name>` 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=vision` to 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.
```bash
# 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:
```bash
playwright-cli list # list all sessions
playwright-cli close-all # close all sessions
playwright-cli -s=<name> close # close specific session
playwright-cli -s=<name> delete-data # wipe session profile
```
## Quick Reference
```
Core: open [url], goto <url>, click <ref>, fill <ref> <text>, type <text>, snapshot, screenshot [ref], close
Navigate: go-back, go-forward, reload
Keyboard: press <key>, keydown <key>, keyup <key>
Mouse: mousemove <x> <y>, mousedown, mouseup, mousewheel <dx> <dy>
Tabs: tab-list, tab-new [url], tab-close [index], tab-select <index>
Save: screenshot [ref], pdf, screenshot --filename=f
Storage: state-save, state-load, cookie-*, localstorage-*, sessionstorage-*
Network: route <pattern>, route-list, unroute, network
DevTools: console, run-code <code>, tracing-start/stop, video-start/stop
Sessions: -s=<name> <cmd>, list, close-all, kill-all
Config: open --headed, open --browser=chrome, resize <w> <h>
```
## Workflow
1. Derive a session name from the user's prompt and open with `--persistent` to preserve cookies/state. Always set the viewport via env var at launch:
```bash
PLAYWRIGHT_MCP_VIEWPORT_SIZE=1440x900 playwright-cli -s=<session-name> open <url> --persistent
# or headed:
PLAYWRIGHT_MCP_VIEWPORT_SIZE=1440x900 playwright-cli -s=<session-name> open <url> --persistent --headed
# or with vision (screenshots returned as image responses in context):
PLAYWRIGHT_MCP_VIEWPORT_SIZE=1440x900 PLAYWRIGHT_MCP_CAPS=vision playwright-cli -s=<session-name> open <url> --persistent
```
3. Get element references via snapshot:
```bash
playwright-cli snapshot
```
4. Interact using refs from snapshot:
```bash
playwright-cli click <ref>
playwright-cli fill <ref> "text"
playwright-cli type "text"
playwright-cli press Enter
```
5. Capture results:
```bash
playwright-cli screenshot
playwright-cli screenshot --filename=output.png
```
6. **Always close the session when done.** This is not optional — close the named session after finishing your task:
```bash
playwright-cli -s=<session-name> 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.
```json
{
"browser": {
"browserName": "chromium",
"launchOptions": { "headless": true },
"contextOptions": { "viewport": { "width": 1440, "height": 900 } }
},
"outputDir": "./screenshots"
}
```
## Full Help
Run `playwright-cli --help` or `playwright-cli --help <command>` for detailed command usage.
See [docs/playwright-cli.md](docs/playwright-cli.md) for full documentation.From haytamAroui/OpenPi, MIT.
More from haytamAroui/OpenPi
- 0.474score
perf-auditor
haytamAroui
Use when diagnosing performance issues, optimizing bundle size, fixing slow queries, reducing memory usage, or auditing hot paths.
SkillCFreshness: CClaude Code +9 - 0.474score
refactor-guide
haytamAroui
Use when refactoring code, cleaning up technical debt, removing code smells, extracting modules, or restructuring without changing behavior.
SkillCFreshness: CClaude Code +9 - 0.474score
env-scanner
haytamAroui
Use when entering an unfamiliar project, diagnosing setup/build issues, detecting stack, package managers, frameworks, git state, or project structure.
SkillCFreshness: CClaude Code +9 - 0.473score
spec-driven
haytamAroui
Use when a request is vague, requirements are unclear, or a feature should be specified before planning or coding.
SkillCFreshness: CClaude Code +9 - 0.471score
ultrathink
haytamAroui
Use for hard debugging, architecture tradeoffs, risky plans, cross-file coupling analysis, root-cause work, adversarial decision making, or explicit…
SkillCFreshness: CClaude Code +9 - 0.471score
security-guard
haytamAroui
Use before ship/deploy, when handling credentials or env files, importing external code, changing automation, or reviewing security-sensitive code.
SkillCFreshness: CClaude Code +9 - 0.469score
session-continuity
haytamAroui
Use when context is long, resuming work, summarizing progress, nearing compaction, or preparing to stop.
SkillCFreshness: CClaude Code +9 - 0.442score
test-first
haytamAroui
Use before implementing production code, fixing bugs, refactoring, or when asked about tests, coverage, validation, or TDD.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- May 24, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/haytamAroui/OpenPi
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from haytamAroui
- 0.474score
perf-auditor
haytamAroui
Use when diagnosing performance issues, optimizing bundle size, fixing slow queries, reducing memory usage, or auditing hot paths.
SkillCFreshness: CClaude Code +9 - 0.474score
refactor-guide
haytamAroui
Use when refactoring code, cleaning up technical debt, removing code smells, extracting modules, or restructuring without changing behavior.
SkillCFreshness: CClaude Code +9 - 0.474score
env-scanner
haytamAroui
Use when entering an unfamiliar project, diagnosing setup/build issues, detecting stack, package managers, frameworks, git state, or project structure.
SkillCFreshness: CClaude Code +9 - 0.473score
spec-driven
haytamAroui
Use when a request is vague, requirements are unclear, or a feature should be specified before planning or coding.
SkillCFreshness: CClaude Code +9 - 0.471score
ultrathink
haytamAroui
Use for hard debugging, architecture tradeoffs, risky plans, cross-file coupling analysis, root-cause work, adversarial decision making, or explicit…
SkillCFreshness: CClaude Code +9 - 0.471score
security-guard
haytamAroui
Use before ship/deploy, when handling credentials or env files, importing external code, changing automation, or reviewing security-sensitive code.
SkillCFreshness: CClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get bowser running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
bowser skill. Agent Mart. https://agentmart.dev/skills/haytamaroui-bowser (last updated 2026-10-24)