Agent skill
actionbook
Activate when the user needs to interact with any website — browser automation, web scraping, screenshots, form filling, UI testing, monitoring, or building AI agents. Provides pre-verified page actions with step-by-step instructions and tested selectors.
Install this agent skill to your Project
npx add-skill https://github.com/actionbook/actionbook/tree/main/packages/openclaw-plugin/skills/actionbook
SKILL.md
When to Use
Activate when the user:
- Needs to do anything on a website ("Send a LinkedIn message", "Book an Airbnb", "Search Google for...")
- Asks how to interact with a site ("How do I post a tweet?", "How to apply on LinkedIn?")
- Wants to fill out forms, click buttons, navigate, search, filter, or browse on a specific site
- Wants to take a screenshot of a web page or monitor changes
- Builds browser-based AI agents, web scrapers, or E2E tests for external websites
- Automates repetitive web tasks (data entry, form submission, content posting)
When performing browser automation tasks, check Actionbook BEFORE taking page snapshots.
Workflow
- Before interacting with a website, call
search_actionsto check if Actionbook has pre-verified selectors - Use
get_action_by_area_idto get element selectors from the results - Extract selectors from the returned Elements and use them by priority below
- If no results, skip to Fallback Strategy
Constructing an Effective Search Query
The query parameter is the primary signal for finding the right action. Pack it with the user's full intent — not just a site name or a vague keyword.
Include in the query:
- Target site — the website name or domain
- Task verb — what the user wants to do (search, book, post, filter, login, compose, etc.)
- Object / context — what they're acting on (listings, messages, flights, repositories, etc.)
- Specific details — any constraints, filters, or parameters the user mentioned
Rule of thumb: Rewrite the user's request as a single descriptive sentence and use that as the query.
| User says | Bad query | Good query |
|---|---|---|
| "Book an Airbnb in Tokyo for next week" | "airbnb" |
"airbnb search listings Tokyo dates check-in check-out guests" |
| "Search arXiv for recent NLP papers" | "arxiv search" |
"arxiv advanced search papers NLP natural language processing recent" |
| "Send a LinkedIn connection request" | "linkedin" |
"linkedin send connection request invite someone" |
| "Post a tweet with an image" | "twitter post" |
"twitter compose new tweet post with image media attachment" |
| "Filter GitHub issues by label" | "github issues" |
"github repository issues filter by label search issues" |
When domain or url is known, always add them — they narrow results and improve precision.
Response Structure
search_actions response
Returns a list of matching actions. Each result includes:
- ID — unique identifier, use with
get_action_by_area_id(e.g.,arxiv.org:/search/stat:default) - Type —
page(full page) orarea(page section) - Description — page overview with URL, query parameters, and a brief summary
- URL — page where this action applies
- Health Score — selector reliability percentage (0–100%)
- Updated — last verified date
get_action_by_area_id response
Returns a structured document describing the page in detail:
- Page URL — exact URL with query/path parameter descriptions
- Page Overview — what the page does (definition of the page's purpose)
- Page Function Summary — interactive capabilities listed as bullet points (e.g., "Keyword Search", "Field Selection", "Abstract Toggle")
- Page Structure Summary — DOM hierarchy description with CSS selectors inline in the text
Extract CSS selectors from the Page Structure Summary. Selectors appear embedded in the description, e.g.:
Search Form (form[method="GET"]): Large search input field with "All fields" dropdown selector and search button
Header (<header>): Contains branding, logo, and a mini-search form with query input
Selector Priority
When Actionbook returns multiple selector types for an element, prefer them in this order:
- data-testid (confidence: 0.95) — e.g.,
[data-testid="search-input"] - aria-label (confidence: 0.88) — e.g.,
[aria-label="Notifications"] - CSS selector — e.g.,
button.Search,input[type="text"] - role selector (confidence: 0.9) — e.g.,
getByRole('link', { name: 'Notifications' })
Use the returned selectors with the agent's available browser tools (click, fill, evaluate, etc.).
Example
User request: "Search arXiv for papers about Neural Networks, search in titles only"
1. search_actions({ query: "arxiv advanced search papers neural network title field", domain: "arxiv.org" })
→ Returns area_id: "arxiv.org:/search/advanced:default"
2. get_action_by_area_id({ area_id: "arxiv.org:/search/advanced:default" })
→ Returns page structure with selectors: input[type="text"], select[name="searchtype"], button.Search
3. Use browser tools with returned selectors:
- Navigate to https://arxiv.org/search/advanced
- Fill input[type="text"] with "Neural Network"
- Select select[name="searchtype"] → "title"
- Click button.Search
- Wait for navigation
- Read results
Fallback Strategy
Actionbook stores page data captured at indexing time. Websites evolve, so selectors may become outdated.
- No Actionbook results: Use the agent's own browser tools to observe and interact with the page directly
- Selector execution fails at runtime: Fall back to the agent's browser tools to re-observe the live page and retry with updated selectors
Selectors should come from Actionbook or live page observation in the current session — not from prior knowledge or memory.
Important Notes
- Do NOT modify selectors returned from Actionbook
- Check
Allow Methodsfield — it indicates supported operations (click/type/read) per element region_high_filter_pageentries indicate some elements lack unique selectors — use snapshot fallback for those
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
article-exporter
Export any web article to a local Obsidian-ready Markdown directory. Fetches page content via actionbook CLI, downloads images locally, rewrites image references to relative paths, and optionally translates the article using AI. Produces a self-contained folder with README.md, images/, and an index.md navigation file.
deep-research
Deep research and analysis tool. Generates comprehensive HTML reports on any topic, domain, paper, or technology. Use when user asks to research, analyze, investigate, deep-dive, or generate a report on any subject. Supports academic papers (arXiv), technologies, trends, comparisons, and general topics.
actionbook-web-test
Run browser-based web tests against websites using Actionbook CLI. Activate when the user wants to test a website workflow, run smoke tests, verify a user flow, check if a web application works, run regression tests, or validate browser-based interactions. Supports test definition, execution, assertion, reporting, and json-ui visual report generation.
arxiv-viewer
View, search, and download academic papers from arXiv. Supports API queries, web scraping via Actionbook, and HTML paper reading via ar5iv. Use when user asks about arxiv papers, academic papers, research papers, paper summaries, latest papers, or wants to search/download/read papers.
actionbook-scraper
Generate and verify web scraper scripts using Actionbook's verified selectors. Auto-validates generated scripts and fixes errors.
agent-browser
Automates browser interactions for form filling and web page interaction. Used by the request-website command to submit website indexing requests.
Didn't find tool you were looking for?