From actionbook
This skill should be used when the user needs to automate multi-step website tasks. Activates for browser automation, web scraping, UI testing, or building AI agents. Provides complete action manuals with step-by-step instructions and verified selectors.
How this skill is triggered — by the user, by Claude, or both
Slash command
/actionbook:actionbookThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Activate this skill when the user:
Activate this skill when the user:
Actionbook supports two browser control modes:
| Mode | Flag | Use Case |
|---|---|---|
| CDP (default) | (none) | Launches a dedicated browser instance via Chrome DevTools Protocol |
| Extension | --extension | Controls the user's existing Chrome browser via a Chrome Extension + WebSocket bridge |
When to use Extension mode:
When to use CDP mode (default):
All actionbook browser commands work identically in both modes. The only difference is adding --extension flag (or setting ACTIONBOOK_EXTENSION=1).
# Step 1: Search for action manuals
actionbook search "arxiv search papers"
# Returns: area IDs with descriptions
# Step 2: Get the full manual (use area_id from search results)
actionbook get "arxiv.org:/search/advanced:default"
# Returns: Page structure, UI Elements with CSS/XPath selectors
# Step 3: Open browser
actionbook browser open "https://arxiv.org/search/advanced"
# Step 4: Use CSS selectors from Action Manual directly
actionbook browser fill "#terms-0-term" "Neural Network"
actionbook browser select "#terms-0-field" "title"
actionbook browser click "#date-filter_by-2"
actionbook browser fill "#date-year" "2025"
actionbook browser click "form[action='/search/advanced'] button.is-link"
# Step 5: Wait for results
actionbook browser wait-nav
# Step 6: Extract data
actionbook browser text
# Step 7: Close browser
actionbook browser close
Extension mode uses identical commands — just add --extension. Ensure the bridge is running first (see Extension Setup).
actionbook extension status # verify bridge is running
actionbook --extension browser open "https://arxiv.org/search/advanced"
actionbook --extension browser fill "#terms-0-term" "Neural Network"
# ... remaining browser commands are the same, just add --extension
Note: In extension mode, avoid
browser closeunless the user explicitly asks — it closes a tab in their real browser.
Action manuals return:
### button_advanced_search
- ID: button_advanced_search
- Description: Advanced search navigation button
- Type: link
- Allow Methods: click
- Selectors:
- role: getByRole('link', { name: 'Advanced Search' }) (confidence: 0.9)
- css: button.button.is-small.is-cul-darker (confidence: 0.65)
- xpath: //button[contains(@class, 'button')] (confidence: 0.55)
actionbook search "<query>" # Basic search
actionbook search "<query>" --domain site.com # Filter by domain
actionbook search "<query>" --url <url> # Filter by URL
actionbook search "<query>" -p 2 -s 20 # Page 2, 20 results
actionbook get "<area_id>" # Full details with selectors
# area_id format: "site.com:/path:area_name"
actionbook sources list # List available sources
actionbook sources search "<query>" # Search sources by keyword
All browser commands below work in both CDP and Extension mode. For Extension mode, add
--extensionflag or setACTIONBOOK_EXTENSION=1.
actionbook browser open <url> # Open URL in new tab
actionbook browser goto <url> # Navigate current page
actionbook browser back # Go back
actionbook browser forward # Go forward
actionbook browser reload # Reload page
actionbook browser pages # List open tabs
actionbook browser switch <page_id> # Switch tab
actionbook browser close # Close browser
actionbook browser restart # Restart browser
actionbook browser connect <endpoint> # Connect to existing browser (CDP port or URL)
actionbook browser click "<selector>" # Click element
actionbook browser click "<selector>" --wait 1000 # Wait then click
actionbook browser fill "<selector>" "text" # Clear and type
actionbook browser type "<selector>" "text" # Append text
actionbook browser select "<selector>" "value" # Select dropdown
actionbook browser hover "<selector>" # Hover
actionbook browser focus "<selector>" # Focus
actionbook browser press Enter # Press key
actionbook browser text # Full page text
actionbook browser text "<selector>" # Element text
actionbook browser html # Full page HTML
actionbook browser html "<selector>" # Element HTML
actionbook browser snapshot # Accessibility tree
actionbook browser viewport # Viewport dimensions
actionbook browser status # Browser detection info
actionbook browser wait "<selector>" # Wait for element
actionbook browser wait "<selector>" --timeout 5000 # Custom timeout
actionbook browser wait-nav # Wait for navigation
# Ensure target directory exists before saving screenshots
actionbook browser screenshot # Save screenshot.png
actionbook browser screenshot output.png # Custom path
actionbook browser screenshot --full-page # Full page
actionbook browser pdf output.pdf # Export as PDF
actionbook browser eval "document.title" # Execute JS
actionbook browser inspect 100 200 # Inspect at coordinates
actionbook browser inspect 100 200 --desc "login btn" # With description
actionbook browser cookies list # List all cookies
actionbook browser cookies get "name" # Get cookie
actionbook browser cookies set "name" "value" # Set cookie
actionbook browser cookies set "name" "value" --domain ".example.com"
actionbook browser cookies delete "name" # Delete cookie
actionbook browser cookies clear # Clear all
Commands for managing the Chrome Extension bridge:
actionbook extension install # Install extension files and register native host
actionbook extension uninstall # Remove extension files and native host registration
actionbook extension path # Show extension directory (for Chrome "Load unpacked")
actionbook extension serve # Start WebSocket bridge (keep running in a separate terminal)
actionbook extension status # Check bridge and extension connection status
actionbook extension ping # Ping the extension to verify link is alive
Setup flow (one-time):
Install extension files:
actionbook extension install
Load in Chrome:
chrome://extensions in your browseractionbook extension path to get the directory, then select itStart the WebSocket bridge:
actionbook extension serve # Keep this running in a separate terminal
Auto-pairing: The extension connects automatically via native messaging. If auto-pairing fails: copy the token from serve output → paste in extension popup → Save
Connection check before automation:
actionbook extension status # should show "running"
actionbook extension ping # should show "responded"
For troubleshooting, see references/extension-troubleshooting.md.
actionbook --json <command> # JSON output
actionbook --headless <command> # Headless mode (CDP only)
actionbook --verbose <command> # Verbose logging
actionbook -P <profile> <command> # Use specific profile (CDP only)
actionbook --cdp <port|url> <command> # CDP connection
actionbook --extension <command> # Use Chrome Extension mode
actionbook --extension-port <port> <command> # Override bridge port (default: 19222)
Environment variable alternative: ACTIONBOOK_EXTENSION=1 actionbook <command>
#id) over XPath when both are providedactionbook browser snapshot then CSS selectors from the outputactionbook extension status) before sending browser commandsActionbook stores pre-computed page data captured at indexing time. This data may become outdated as websites evolve:
When Action Manual selectors don't work:
actionbook browser snapshot to get the current accessibility treeactionbook browser screenshot to see the current stateactionbook browser inspect <x> <y> to find elementsactionbook browser eval "document.querySelector(...)" for dynamic queriesIf actionbook search returns no results or action fails unexpectedly, use other available tools to continue the task.
# 1. Find selectors
actionbook search "airbnb search" --domain airbnb.com
# 2. Get detailed selectors (area_id from search results)
actionbook get "airbnb.com:/:default"
# 3. Automate using pre-verified selectors
actionbook browser open "https://www.airbnb.com"
actionbook browser fill "input[data-testid='structured-search-input-field-query']" "Tokyo"
actionbook browser click "button[data-testid='structured-search-input-search-button']"
actionbook browser wait-nav
actionbook browser text
actionbook browser close
# Verify bridge is running
actionbook extension status
# Use the user's existing logged-in session
actionbook --extension browser open "https://github.com/notifications"
actionbook --extension browser wait-nav
actionbook --extension browser text ".notifications-list"
actionbook --extension browser screenshot notifications.png
When using Extension mode, always follow this sequence:
# 1. Check if bridge is already running
actionbook extension status
# 2. If not running, start the bridge (keep running in a separate terminal)
actionbook extension serve
# 3. Wait a few seconds for auto-pairing via Native Messaging, then verify
actionbook extension ping
The extension auto-pairs via Chrome Native Messaging — no manual token paste needed
(requires actionbook extension install to have been run once to register the native host).
For detailed patterns and best practices:
| Reference | Description |
|---|---|
| references/command-reference.md | Complete command reference with all features |
| references/authentication.md | Login flows, OAuth, 2FA handling, state reuse |
| references/extension-troubleshooting.md | Extension bridge troubleshooting guide |
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
npx claudepluginhub razor-ai/actionbook --plugin deep-research