packages/skills/skills/browser-lock-multi-agent-playwright-concurrency/SKILL.md
# Browser Lock (Multi-Agent Playwright Concurrency) Multiple Claude agents share a **single browser instance** via MCP Playwright. A hook-based locking system prevents conflicts — only one agent can use the browser at a time; others wait their turn. ## How It Works 1. **PreToolUse hook** (`~/.claude/hooks/playwright-lock.sh`) runs before any `mcp__playwright*` tool call: - If lock is free or held by the same session: acquire/refresh, allow the call - If held by another session: poll eve
npx skillsauth add mediar-ai/skillhubz packages/skills/skills/browser-lock-multi-agent-playwright-concurrencyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Multiple Claude agents share a single browser instance via MCP Playwright. A hook-based locking system prevents conflicts — only one agent can use the browser at a time; others wait their turn.
PreToolUse hook (~/.claude/hooks/playwright-lock.sh) runs before any mcp__playwright* tool call:
PostToolUse hook (~/.claude/hooks/playwright-unlock.sh) runs after each tool call:
Session exit (~/.claude/hooks/session-end.sh) releases the lock on clean exit
| File | Purpose |
|------|---------|
| ~/.claude/hooks/playwright-lock.sh | PreToolUse hook — acquires lock or waits |
| ~/.claude/hooks/playwright-unlock.sh | PostToolUse hook — refreshes lock timestamp |
| ~/.claude/playwright-lock.json | Lock state: { session_id, timestamp } |
| ~/.claude/playwright-mutex.d/ | Atomic filesystem mutex (transient, should not persist) |
| ~/.claude/playwright-lock.log | Event log (ACQUIRED, BLOCKED, REFRESHED, TIMEOUT, EXPIRED) |
| ~/.claude/settings.json | Hook config under PreToolUse / PostToolUse with matcher mcp__playwright.* |
| Parameter | Value | Defined in |
|-----------|-------|------------|
| Lock expiry | 30s of inactivity | playwright-lock.sh LOCK_EXPIRY |
| Max wait | 120s | playwright-lock.sh MAX_WAIT |
| Poll interval | 2s | playwright-lock.sh POLL_INTERVAL |
| Mutex stale timeout | 5s | playwright-lock.sh MUTEX_EXPIRY |
| PreToolUse hook timeout | 130s | settings.json |
| PostToolUse hook timeout | 5s | settings.json |
cat ~/.claude/playwright-lock.json
tail -f ~/.claude/playwright-lock.log
rm -f ~/.claude/playwright-lock.json ~/.claude/playwright-mutex.d
grep "BLOCKED\|ACQUIRED after\|TIMEOUT\|EXPIRED" ~/.claude/playwright-lock.log | tail -20
settings.json)session_id), with terminal-based fallbacktools
Design web-like user interfaces in the terminal and inside tmux with a cell-grid Canvas, CSS-like box model, flexbox/grid layout, and 15 reusable widgets such as Panel, Table, Card, ProgressBar, Meter, Tabs, Tree, Badge, Banner, and a braille line chart. Use when an agent needs a dashboard, panel, table, status page, TUI layout, tmux dashboard, screenshot-driven CLI/TUI replica, ANSI frame, truecolor render, pyte PNG screenshot smoke test, wide-character alignment, or a new terminal widget.
tools
Drive interactive terminal (TUI) programs — CLIs, REPLs, installers, menu apps, agent CLIs, and editors like vim — through a PTY, reading semantic screen snapshots. A pattern library classifies a screen (REPL, menu, pager, fzf search, confirm dialog, form, spinner, wizard) and drives it with a ready recipe. Use when a program expects a live terminal (arrow-key menus, prompts, spinners, password fields, curses UIs), or when a piped command hangs or prints nothing.
tools
Design and render terminal/CMD visual effects and ASCII art from a one-line request via the pluggable `fx` engine (18 hot-swappable, themeable effects plus scripted shows). Effects include donut, matrix rain, plasma, fire, a spinning 3D ball, Game of Life, wireframe cube, 3D text banners, rainbow/lolcat gradient text, starfield, tunnel, fireworks, image-to-ASCII, and more. Use when the request is for a terminal animation, ANSI/CLI art, or a new console effect. Pure Python stdlib; truecolor.
tools
# X Twitter Scraper Use Xquik for X/Twitter tweet search, user lookup, profile tweets, follower export, media download, monitors, webhooks, posting workflows, and MCP-backed API exploration. ## Prerequisites - A Xquik API key in `XQUIK_API_KEY`. - Internet access to `https://xquik.com/api/v1`, `https://xquik.com/mcp`, and `https://docs.xquik.com`. - A clear user request that identifies the target tweets, users, accounts, keywords, media, monitor, webhook, or write action. ## Source Truth -