brainstorming
Structured design dialogue that validates ideas before implementation begins.
automating-browser
Controls Chrome browser: takes screenshots, clicks buttons, fills forms, downloads images, inspects pages, captures network requests, checks console errors, debugs API issues. Use when: 'screenshot', 'click', 'fill form', 'download image', 'check browser', 'look at screen', 'capture page', 'check...
Full skill instructions
Control Chrome browser programmatically via the Tabz MCP server. 70 tools for screenshots, interaction, network debugging, and more.
# List all tabz tools
mcp-cli tools tabz
# Search for specific tools
mcp-cli tools tabz | grep screenshot
mcp-cli grep "network"
# Get tool schema before calling (REQUIRED)
mcp-cli info tabz/tabz_screenshot
# Call tool
mcp-cli call tabz/tabz_screenshot '{}'
mcp-cli info tabz/tabz_get_console_logs
mcp-cli call tabz/tabz_get_console_logs '{"level": "error"}'
# 1. Enable capture BEFORE triggering the action
mcp-cli info tabz/tabz_enable_network_capture
mcp-cli call tabz/tabz_enable_network_capture '{}'
# 2. Trigger the action (click button, navigate, etc.)
# 3. Get failed requests (status >= 400)
mcp-cli info tabz/tabz_get_network_requests
mcp-cli call tabz/tabz_get_network_requests '{"statusMin": 400}'
# Or filter by URL pattern
mcp-cli call tabz/tabz_get_network_requests '{"urlPattern": "api/"}'
mcp-cli info tabz/tabz_screenshot
mcp-cli call tabz/tabz_screenshot '{}'
# Returns file path - use Read tool to view the image
mcp-cli info tabz/tabz_get_page_info
mcp-cli call tabz/tabz_get_page_info '{}'
# Returns URL, title, loading state
mcp-cli info tabz/tabz_get_element
mcp-cli call tabz/tabz_get_element '{"selector": "#error-message", "includeStyles": true}'
mcp-cli info tabz/tabz_profile_performance
mcp-cli call tabz/tabz_profile_performance '{}'
# Returns: DOM node count, JS heap size, event listeners, timing metrics
mcp-cli info tabz/tabz_get_dom_tree
mcp-cli call tabz/tabz_get_dom_tree '{"maxDepth": 3}'
# Or focus on specific element
mcp-cli call tabz/tabz_get_dom_tree '{"selector": "main", "maxDepth": 5}'
mcp-cli info tabz/tabz_get_coverage
mcp-cli call tabz/tabz_get_coverage '{"type": "js"}'
# Shows used vs unused bytes per file
| Category | Tools | Purpose |
|---|---|---|
| Tab Management | list_tabs, switch_tab, rename_tab, open_url | Navigate tabs |
| Tab Groups | create_group, add_to_group, ungroup_tabs | Organize tabs |
| Windows | list_windows, create_window, tile_windows | Window management |
| Audio | speak, list_voices, play_audio | TTS notifications |
| Page Info | get_page_info, get_element, get_dom_tree | Inspect content |
| Interaction | click, fill | Click/type |
| Screenshots | screenshot, screenshot_full | Capture visuals |
| Downloads | download_image, download_file | Save files |
| Network | enable_network_capture, get_network_requests | Debug APIs |
| Console | get_console_logs, execute_script | Debug JS |
| Performance | profile_performance, get_coverage | Diagnose slowness |
| Emulation | emulate_device, emulate_geolocation | Responsive testing |
When multiple Claude workers run in parallel, each MUST create their own named group:
# Create unique group for this worker
mcp-cli info tabz/tabz_create_group
mcp-cli call tabz/tabz_create_group '{"tabIds": [123, 456], "title": "ISSUE-ID: Research", "color": "blue"}'
# Add more tabs later
mcp-cli call tabz/tabz_add_to_group '{"groupId": 12345, "tabIds": [789]}'
# Cleanup when done
mcp-cli call tabz/tabz_ungroup_tabs '{"tabIds": [123, 456, 789]}'
Group colors: grey, blue, red, yellow, green, pink, purple, cyan
Screenshot:
mcp-cli call tabz/tabz_screenshot '{}'
Click:
mcp-cli call tabz/tabz_click '{"selector": "button.submit"}'
Fill form:
mcp-cli call tabz/tabz_fill '{"selector": "#email", "value": "[email protected]"}'
Switch tab:
mcp-cli call tabz/tabz_list_tabs '{}' # Get tab IDs (large integers like 1762556601)
mcp-cli call tabz/tabz_switch_tab '{"tabId": 1762556601}'
TTS notification:
mcp-cli call tabz/tabz_speak '{"text": "Done!", "priority": "high"}'
mcp-cli info tabz/<tool> before mcp-cli call1762556601), not 1, 2, 3#id, .class, button[type="submit"]For complex nested JSON, use heredoc to avoid escaping issues:
mcp-cli call tabz/tabz_execute_script - <<'EOF'
{"code": "document.querySelector('button').click()"}
EOF
See references/workflows.md for more patterns.
Structured design dialogue that validates ideas before implementation begins.
Comprehensive design intelligence for web and mobile UI/UX across 10 technology stacks.
Comprehensive implementation plans for multi-step tasks, breaking down specs into bite-sized, testable steps.
Introduction to the obra skills system with mandatory skill invocation rules and best practices.
Execute a written implementation plan with critical review and task checkpoints.
Delegate independent tasks to specialized agents working concurrently with isolated context.
Isolated git worktrees with smart directory selection and safety verification.
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Plan searchable and shareable content that drives traffic, builds authority, and generates leads.
README-first repository scanner that extracts commands and classifies reproduction candidates without executing them.
Brainstorm and prioritize marketing strategies tailored to your SaaS stage, budget, and goals.
Plan and optimize your website's page hierarchy, navigation, URL structure, and internal linking.
The world's fastest calendar for remote work
Capture, organize, and utilize your knowledge effortlessly.
Instant Summaries of Audio & Video Interviews with AnySummary
Transform PDFs into engaging mind maps.
Chat with any PDF instantly
Create an optimal daily plan using your voice
A productivity platform to centralize organizational knowledge and workflows with contextual AI assistance.
AskYourPDF Pricing Plans: Tailored to Your Needs