Source profileQuality 91/100Review permissions

actionbook/actionbook/skills/actionbook/SKILL.md

actionbook

Browser action engine. Provides up-to-date action manuals for the modern web — operate any website instantly, one tab or dozens, concurrently.

Source repository stars
1,583
Declared platforms
0
Static risk flags
2
Last source update
2026-08-12
Source checked
2026-08-25

Decision brief

What it does: where it fits

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…

Best for

  • 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

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/actionbook/actionbook --skill "skills/actionbook"
Safe inspection promptEditorial

Inspect the Agent Skill "actionbook" from https://github.com/actionbook/actionbook/blob/5a3eb05ec18fcebc09ef771008d6dda649295765/skills/actionbook/SKILL.md at commit 5a3eb05ec18fcebc09ef771008d6dda649295765. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Core workflow: snapshot, act, wait

    Review the “Core workflow: snapshot, act, wait” section in the pinned source before continuing.

    Review and apply the “Core workflow: snapshot, act, wait” source section.
  2. 02

    When to Use This Skill

    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…

    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
  3. 03

    How It Works

    Actionbook provides up-to-date action manuals for the modern web. Action manuals tell agents exactly what to do on a page — no parsing, no guessing.

    10x faster — action manuals provide selectors and page structure upfront. No snapshot-per-step loop needed.Accurate — handles SPAs, streaming components, dropdowns, date pickers, and dynamic content reliably.Concurrent — stateless architecture with explicit --session/--tab. Operate dozens of tabs in parallel.
  4. 04

    Browser Automation

    Every browser command is stateless — pass --session and --tab explicitly. No "current tab" — you can run commands on any session/tab in parallel.

    Every browser command is stateless — pass --session and --tab explicitly. No "current tab" — you can run commands on any session/tab in parallel.Both --session and --set-session-id are get-or-create: they reuse a Running session with the given ID, or create one if not found. If --profile is passed and does not match the session's bound profile, the command fails…snapshot labels every element with a ref (e.g. @e3, @e7). Use these refs as selectors in any command — they are the recommended way to target elements.
  5. 05

    Start a session

    Both --session and --set-session-id are get-or-create: they reuse a Running session with the given ID, or create one if not found. If --profile is passed and does not match the session's bound profile, the command fails with SESSIONPROFILEMISMATCH.

    Both --session and --set-session-id are get-or-create: they reuse a Running session with the given ID, or create one if not found. If --profile is passed and does not match the session's bound profile, the command fails…

Permission review

Static risk signals and limitations

Runs scripts

medium · line 27

The documentation asks the agent to run terminal commands or scripts.

Run `actionbook <command> --help` for full usage and examples of any command.

Network access

medium · line 89

The documentation includes network, browsing, or remote request actions.

actionbook browser goto "https://example.com" --session s1 --tab t1

Network access

medium · line 101

The documentation includes network, browsing, or remote request actions.

actionbook browser goto "https://airbnb.com" --session s1 --tab t1

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars1,583SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
actionbook/actionbook
Skill path
skills/actionbook/SKILL.md
Commit
5a3eb05ec18fcebc09ef771008d6dda649295765
License
Apache-2.0
Collected
2026-08-25
Default branch
main
View the original SKILL.md

When to Use This Skill

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)
  • Needs to operate multiple websites or tabs concurrently

How It Works

Actionbook provides up-to-date action manuals for the modern web. Action manuals tell agents exactly what to do on a page — no parsing, no guessing.

Why this matters:

  • 10x faster — action manuals provide selectors and page structure upfront. No snapshot-per-step loop needed.
  • Accurate — handles SPAs, streaming components, dropdowns, date pickers, and dynamic content reliably.
  • Concurrent — stateless architecture with explicit --session/--tab. Operate dozens of tabs in parallel.

The workflow:

  1. Start a browser session
  2. Navigate to the target page
  3. Snapshot to get the page structure with element refs
  4. Automate using refs from the snapshot

Run actionbook <command> --help for full usage and examples of any command.

Browser Automation

Every browser command is stateless — pass --session and --tab explicitly. No "current tab" — you can run commands on any session/tab in parallel.

Start a session

actionbook browser start --set-session-id s1

Both --session and --set-session-id are get-or-create: they reuse a Running session with the given ID, or create one if not found. If --profile is passed and does not match the session's bound profile, the command fails with SESSION_PROFILE_MISMATCH.

Core workflow: snapshot, act, wait

actionbook browser goto <url> --session s1 --tab t1
actionbook browser snapshot --session s1 --tab t1          # Get page structure with refs
actionbook browser fill @e3 "text" --session s1 --tab t1   # Use refs from snapshot
actionbook browser click @e7 --session s1 --tab t1
actionbook browser wait navigation --session s1 --tab t1   # Wait for page load

Snapshot refs

snapshot labels every element with a ref (e.g. @e3, @e7). Use these refs as selectors in any command — they are the recommended way to target elements.

Refs are stable across snapshots — if the element stays the same, the ref stays the same. This lets you chain multiple commands without re-snapshotting after every step.

Command categories

All commands support --help for full usage and examples.

CategoryKey commandsHelp
Searchsearchactionbook search --help
Manualmanual (alias: man)actionbook manual --help
Sessionstart, close, restart, list-sessions, statusactionbook browser start --help
Tabnew-tab, close-tab, list-tabsactionbook browser new-tab --help
Navigationgoto, back, forward, reloadactionbook browser goto --help
Observationsnapshot, text, html, value, title, url, viewport, attr, attrs, box, styles, describe, state, inspect-point, screenshot, pdfactionbook browser snapshot --help
Interactionclick, fill, type, press, select, hover, focus, scroll, drag, upload, eval, mouse-move, cursor-positionactionbook browser click --help
Waitwait element, wait navigation, wait network-idle, wait conditionactionbook browser wait element --help
Cookiescookies list, cookies get, cookies set, cookies delete, cookies clearactionbook browser cookies list --help
Storagelocal-storage list|get|set|delete|clear, session-storage ...actionbook browser local-storage get --help
Logslogs console, logs errorsactionbook browser logs console --help
Networknetwork requests, network request <id>, network har start, network har stopactionbook browser network requests --help
Queryquery one|all|nth|countactionbook browser query --help
Batchbatch-new-tab, batch-snapshot, batch-clickactionbook browser batch-new-tab --help
Extensionextension status, extension ping, extension install, extension uninstall, extension pathactionbook extension status --help
Daemondaemon restartactionbook daemon restart --help

Full command reference: command-reference.md

Cloud providers

Use -p / --provider with browser start to run sessions on a remote browser instead of launching local Chrome. Supported providers: driver, hyperbrowser, browseruse. Each reads its own <PROVIDER>_API_KEY from the shell env.

export HYPERBROWSER_API_KEY="your-key"
actionbook browser start -p hyperbrowser --session s1
actionbook browser goto "https://example.com" --session s1 --tab t1
actionbook browser snapshot --session s1 --tab t1

All browser commands work the same way regardless of mode. browser restart --session <id> mints a fresh remote session while preserving the session_id.

Example: End-to-End

User request: "Find a room next week in SF on Airbnb"

actionbook browser start --set-session-id s1
actionbook browser goto "https://airbnb.com" --session s1 --tab t1
actionbook browser snapshot --session s1 --tab t1
actionbook browser fill @e3 "San Francisco" --session s1 --tab t1
actionbook browser click @e7 --session s1 --tab t1
actionbook browser wait navigation --session s1 --tab t1

Eval Input Sources

browser eval accepts the expression from three mutually-exclusive sources:

  • Positional: actionbook browser eval "expr" ...
  • --file: actionbook browser eval --file script.js ...
  • Stdin: echo 'expr' | actionbook browser eval - ...

Eval Error Handling

browser eval returns structured error codes on failure — branch on error.code instead of parsing the message:

  • EVAL_RUNTIME_ERROR — JS exception. Inspect the expression before retrying.
  • EVAL_CROSS_ORIGIN — cross-origin fetch or CSP block. Proxy the request server-side.
  • EVAL_RESPONSE_NOT_JSON / EVAL_RESPONSE_NOT_OK — read error.details.body_head (first ≤256 chars of the response body) to distinguish 403 / challenge pages / CORS errors. Do not blindly retry.
  • EVAL_TIMEOUT — expression exceeded --timeout. Reduce work or raise the timeout.
  • EVAL_ARGS_CONFLICT — multiple input sources or none. Provide exactly one.
  • EVAL_FILE_NOT_FOUND--file path unreadable. Verify the path.
  • EVAL_STDIN_TTY- but stdin is a terminal. Pipe the expression.
  • EVAL_STDIN_EMPTY — stdin produced empty input. Verify the upstream pipeline.

CDP Error Handling

Browser commands that interact with elements, navigate, or communicate via CDP return structured error codes — branch on error.code:

  • CDP_NODE_NOT_FOUND — DOM node is stale. Call snapshot to refresh refs then retry.
  • CDP_NOT_INTERACTABLE — element exists but can't be acted on. Scroll into view, wait for visibility, or dismiss overlays.
  • CDP_NAV_TIMEOUT — navigation timeout. Increase --timeout or verify URL reachability. Retryable.
  • CDP_TARGET_CLOSED — tab navigated away or session torn down mid-command. Start a fresh session. Retryable.
  • CDP_PROTOCOL_ERROR — CDP response malformed. Inspect details.reason and details.cdp_code.
  • CDP_GENERIC — unclassified CDP error (transport/parse). No specific remediation.

CDP_NAV_TIMEOUT and CDP_TARGET_CLOSED are retryable (error.retryable == true). All other CDP codes require caller intervention before retrying. When error.code is a CDP_* code, error.details includes reason and cdp_code when available.

Selectors

Selectors should come from actionbook browser snapshot — not from prior knowledge or memory. Always snapshot first to get current refs, then use those refs to interact with the page.

Login Page Handling

When you hit a login/auth wall (sign-in page, password prompt, MFA/OTP, CAPTCHA, account chooser):

  1. Pause automation and keep the current browser session open (same tab/profile/cookies).
  2. Ask the user to complete login manually in that same browser window.
  3. After user confirms login is done, continue in the same session.
  4. If the post-login page is different, run actionbook browser snapshot to get the new page structure before continuing.

Do not switch tools just because a login page appears.

Session Cleanup

browser close is idempotent — closing an unknown or already-closed session returns ok: true with a warning in meta.warnings, not a fatal error. A typo in the session ID or a session that was already torn down is no longer an error condition.

  • Safe to call browser close unconditionally during cleanup without checking session existence first.
  • Read meta.warnings to distinguish a fresh close from an already-gone session. Do not treat a warning inside an ok: true response as a signal that the session is still alive.
  • If another close is already in flight for the same session, the command returns SESSION_CLOSING (fatal).

HAR Recording

network har start accepts --max-entries N to set the ring-buffer cap (default: 10000). When har stop detects dropped entries (data.dropped > 0), the envelope includes meta.truncated = true and a HAR_TRUNCATED warning in meta.warnings. Read data.max_entries to see the configured cap. Raise --max-entries or stop recording sooner to keep the full trace.

References

ReferenceDescription
command-reference.mdComplete command reference with all flags and options
authentication.mdLogin flows, OAuth, 2FA handling, session persistence

Frequently asked questions

What to verify before installation and use

What does the actionbook source document cover?

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…

How do I install actionbook?

The source record exposes this install command: npx skills add https://github.com/actionbook/actionbook --skill "skills/actionbook". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged exec-script, network in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 10029,034

garrytan/gbrain

bulk-ingestion

End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.

Computed 10024,921

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 10015,122

wanshuiyin/Auto-claude-code-research-in-sleep

citation-audit

Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.

Computed 10014,671

prowler-cloud/prowler

postgresql-indexing

PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance