{
  "schemaVersion": "1.0",
  "item": {
    "slug": "actionbook",
    "name": "Actionbook",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/adcentury/actionbook",
    "canonicalUrl": "https://clawhub.ai/adcentury/actionbook",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/actionbook",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=actionbook",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "references/authentication.md",
      "references/command-reference.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/actionbook"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/actionbook",
    "agentPageUrl": "https://openagent3.xyz/skills/actionbook/agent",
    "manifestUrl": "https://openagent3.xyz/skills/actionbook/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/actionbook/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "When to Use This Skill",
        "body": "Activate when the user's request involves interacting with a website:\n\nActivate when the user:\n\nNeeds to do anything on a website (\"Send a LinkedIn message\", \"Book an Airbnb\", \"Search Google for...\")\nAsks how to interact with a site (\"How do I post a tweet?\", \"How to apply on LinkedIn?\")\nWants to fill out forms, click buttons, navigate, search, filter, or browse on a specific site\nWants to take a screenshot of a web page or monitor changes\nBuilds browser-based AI agents, web scrapers, or E2E tests for external websites\nAutomates repetitive web tasks (data entry, form submission, content posting)\nWants to control their existing Chrome browser (Extension mode)"
      },
      {
        "title": "What Actionbook Provides",
        "body": "Actionbook is a library of pre-verified page interaction data. actionbook search finds actions matching a task description; actionbook get \"<ID>\" returns a structured document describing a page's purpose, functional capabilities, and DOM structure with inline CSS selectors — eliminating the need for runtime page structure discovery."
      },
      {
        "title": "search — Find actions by task description",
        "body": "actionbook search \"<query>\"                      # Search by task intent\nactionbook search \"<query>\" --domain site.com    # Filter by domain\nactionbook search \"<query>\" --url <url>          # Filter by URL\nactionbook search \"<query>\" -p 2 -s 20           # Pagination\n\nReturns for each result:\n\nID — use with actionbook get \"<ID>\" to retrieve full details\nType — page (full page) or area (page section)\nDescription — page overview and function summary\nURL — page where this action applies\nHealth Score — selector reliability percentage (0–100%)\nUpdated — last verified date"
      },
      {
        "title": "Constructing an effective search query",
        "body": "The query string 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.\n\nInclude in the query:\n\nTarget site — the website name or domain\nTask verb — what the user wants to do (search, book, post, filter, login, compose, etc.)\nObject / context — what they're acting on (listings, messages, flights, repositories, etc.)\nSpecific details — any constraints, filters, or parameters the user mentioned (dates, location, category, language, etc.)\n\nRule of thumb: Rewrite the user's request as a single descriptive sentence and use that as the query.\n\nUser saysBad queryGood 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\"\n\nWhen the user provides extra context (e.g., specific dates, a city name, a topic), fold it into the query even if it won't match a stored action literally — it helps the search engine rank relevant pages higher.\n\n# User: \"Help me apply for a software engineer job on LinkedIn\"\nactionbook search \"linkedin job search apply software engineer application form\"\n\n# User: \"I need to search for machine learning papers on arXiv\"\nactionbook search \"arxiv advanced search papers machine learning subject category\"\n\nIf --domain or --url is known, always add them — they narrow results and improve precision."
      },
      {
        "title": "get — Retrieve full action details by ID",
        "body": "# Use the ID from search results directly\nactionbook get \"arxiv.org:/search/advanced:default\"\n\nReturns a structured document with:\n\nPage URL — exact URL and query/path parameters\nPage Overview — what the page does\nPage Function Summary — interactive capabilities (e.g., \"Search Term Input\", \"Subject Classification Filtering\")\nPage Structure Summary — DOM hierarchy with CSS selectors inline\n\nSelectors appear embedded in the structure description, e.g.:\n\nSearch Term Form Section: Contains search term input field (input[type=\"text\"]),\nfield selector dropdown (select[name=\"searchtype\"]), and submit button (button.Search)\n\nExtract CSS selectors from the structure summary for use with browser commands."
      },
      {
        "title": "Browser Commands",
        "body": "Quick reference. Full details with all flags and options: command-reference.md."
      },
      {
        "title": "Navigation",
        "body": "actionbook browser open <url>           # Open URL in new tab\nactionbook browser goto <url>           # Navigate current page\nactionbook browser back / forward       # History navigation\nactionbook browser reload               # Reload page\nactionbook browser pages                # List open tabs\nactionbook browser switch <page_id>     # Switch tab\nactionbook browser close                # Close browser"
      },
      {
        "title": "Interactions",
        "body": "actionbook browser click \"<selector>\"          # Click element\nactionbook browser fill \"<selector>\" \"text\"    # Clear and type\nactionbook browser type \"<selector>\" \"text\"    # Append text\nactionbook browser select \"<selector>\" \"value\" # Select dropdown option\nactionbook browser hover \"<selector>\"          # Hover\nactionbook browser press Enter                 # Press key"
      },
      {
        "title": "Observation",
        "body": "actionbook browser text                        # Full page text\nactionbook browser text \"<selector>\"           # Element text\nactionbook browser snapshot                    # Accessibility tree (live page structure)\nactionbook browser screenshot                  # Save screenshot\nactionbook browser screenshot --full-page      # Full page screenshot\nactionbook browser wait \"<selector>\"           # Wait for element\nactionbook browser wait-nav                    # Wait for navigation\n\nactionbook browser close cleans up the browser session. Skip if the user requests the browser remain open."
      },
      {
        "title": "Examples",
        "body": "User request: \"Search arXiv for papers about Neural Networks, search in titles only\"\n\n# 1. Search — include the full intent: site + task + subject + filter preference\nactionbook search \"arxiv advanced search papers neural network title field\" --domain arxiv.org\n\n# 2. Get details — read Page Structure Summary for selectors\nactionbook get \"arxiv.org:/search/advanced:default\"\n# Response includes: input[type=\"text\"], select[name=\"searchtype\"], button.Search, etc.\n\n# 3. Automate using selectors from the response\nactionbook browser open \"https://arxiv.org/search/advanced\"\nactionbook browser fill \"input[type='text']\" \"Neural Network\"\nactionbook browser select \"select[name='searchtype']\" \"title\"\nactionbook browser click \"button.Search\"\nactionbook browser wait-nav\nactionbook browser text\nactionbook browser close"
      },
      {
        "title": "Fallback",
        "body": "Actionbook stores page data captured at indexing time. Websites evolve, so selectors may become outdated.\n\nWhen a selector from actionbook get fails at runtime, actionbook browser snapshot provides the live accessibility tree with current selectors. Use selectors from the snapshot output to retry the interaction.\n\nSelectors used in browser commands should come from actionbook get or actionbook browser snapshot output in the current session — not from prior knowledge or memory.\n\nIf actionbook search returns no results for a page, use snapshot as the primary source, or fall back to other available tools."
      },
      {
        "title": "References",
        "body": "ReferenceDescriptioncommand-reference.mdComplete command reference with all flags and optionsauthentication.mdLogin flows, OAuth, 2FA handling, session persistence"
      }
    ],
    "body": "When to Use This Skill\n\nActivate when the user's request involves interacting with a website:\n\nActivate when the user:\n\nNeeds to do anything on a website (\"Send a LinkedIn message\", \"Book an Airbnb\", \"Search Google for...\")\nAsks how to interact with a site (\"How do I post a tweet?\", \"How to apply on LinkedIn?\")\nWants to fill out forms, click buttons, navigate, search, filter, or browse on a specific site\nWants to take a screenshot of a web page or monitor changes\nBuilds browser-based AI agents, web scrapers, or E2E tests for external websites\nAutomates repetitive web tasks (data entry, form submission, content posting)\nWants to control their existing Chrome browser (Extension mode)\nWhat Actionbook Provides\n\nActionbook is a library of pre-verified page interaction data. actionbook search finds actions matching a task description; actionbook get \"<ID>\" returns a structured document describing a page's purpose, functional capabilities, and DOM structure with inline CSS selectors — eliminating the need for runtime page structure discovery.\n\nsearch and get\nsearch — Find actions by task description\nactionbook search \"<query>\"                      # Search by task intent\nactionbook search \"<query>\" --domain site.com    # Filter by domain\nactionbook search \"<query>\" --url <url>          # Filter by URL\nactionbook search \"<query>\" -p 2 -s 20           # Pagination\n\n\nReturns for each result:\n\nID — use with actionbook get \"<ID>\" to retrieve full details\nType — page (full page) or area (page section)\nDescription — page overview and function summary\nURL — page where this action applies\nHealth Score — selector reliability percentage (0–100%)\nUpdated — last verified date\nConstructing an effective search query\n\nThe query string 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.\n\nInclude in the query:\n\nTarget site — the website name or domain\nTask verb — what the user wants to do (search, book, post, filter, login, compose, etc.)\nObject / context — what they're acting on (listings, messages, flights, repositories, etc.)\nSpecific details — any constraints, filters, or parameters the user mentioned (dates, location, category, language, etc.)\n\nRule of thumb: Rewrite the user's request as a single descriptive sentence and use that as the query.\n\nUser says\tBad query\tGood query\n\"Book an Airbnb in Tokyo for next week\"\t\"airbnb\"\t\"airbnb search listings Tokyo dates check-in check-out guests\"\n\"Search arXiv for recent NLP papers\"\t\"arxiv search\"\t\"arxiv advanced search papers NLP natural language processing recent\"\n\"Send a LinkedIn connection request\"\t\"linkedin\"\t\"linkedin send connection request invite someone\"\n\"Post a tweet with an image\"\t\"twitter post\"\t\"twitter compose new tweet post with image media attachment\"\n\"Filter GitHub issues by label\"\t\"github issues\"\t\"github repository issues filter by label search issues\"\n\nWhen the user provides extra context (e.g., specific dates, a city name, a topic), fold it into the query even if it won't match a stored action literally — it helps the search engine rank relevant pages higher.\n\n# User: \"Help me apply for a software engineer job on LinkedIn\"\nactionbook search \"linkedin job search apply software engineer application form\"\n\n# User: \"I need to search for machine learning papers on arXiv\"\nactionbook search \"arxiv advanced search papers machine learning subject category\"\n\n\nIf --domain or --url is known, always add them — they narrow results and improve precision.\n\nget — Retrieve full action details by ID\n# Use the ID from search results directly\nactionbook get \"arxiv.org:/search/advanced:default\"\n\n\nReturns a structured document with:\n\nPage URL — exact URL and query/path parameters\nPage Overview — what the page does\nPage Function Summary — interactive capabilities (e.g., \"Search Term Input\", \"Subject Classification Filtering\")\nPage Structure Summary — DOM hierarchy with CSS selectors inline\n\nSelectors appear embedded in the structure description, e.g.:\n\nSearch Term Form Section: Contains search term input field (input[type=\"text\"]),\nfield selector dropdown (select[name=\"searchtype\"]), and submit button (button.Search)\n\n\nExtract CSS selectors from the structure summary for use with browser commands.\n\nBrowser Commands\n\nQuick reference. Full details with all flags and options: command-reference.md.\n\nNavigation\nactionbook browser open <url>           # Open URL in new tab\nactionbook browser goto <url>           # Navigate current page\nactionbook browser back / forward       # History navigation\nactionbook browser reload               # Reload page\nactionbook browser pages                # List open tabs\nactionbook browser switch <page_id>     # Switch tab\nactionbook browser close                # Close browser\n\nInteractions\nactionbook browser click \"<selector>\"          # Click element\nactionbook browser fill \"<selector>\" \"text\"    # Clear and type\nactionbook browser type \"<selector>\" \"text\"    # Append text\nactionbook browser select \"<selector>\" \"value\" # Select dropdown option\nactionbook browser hover \"<selector>\"          # Hover\nactionbook browser press Enter                 # Press key\n\nObservation\nactionbook browser text                        # Full page text\nactionbook browser text \"<selector>\"           # Element text\nactionbook browser snapshot                    # Accessibility tree (live page structure)\nactionbook browser screenshot                  # Save screenshot\nactionbook browser screenshot --full-page      # Full page screenshot\nactionbook browser wait \"<selector>\"           # Wait for element\nactionbook browser wait-nav                    # Wait for navigation\n\n\nactionbook browser close cleans up the browser session. Skip if the user requests the browser remain open.\n\nExamples\n\nUser request: \"Search arXiv for papers about Neural Networks, search in titles only\"\n\n# 1. Search — include the full intent: site + task + subject + filter preference\nactionbook search \"arxiv advanced search papers neural network title field\" --domain arxiv.org\n\n# 2. Get details — read Page Structure Summary for selectors\nactionbook get \"arxiv.org:/search/advanced:default\"\n# Response includes: input[type=\"text\"], select[name=\"searchtype\"], button.Search, etc.\n\n# 3. Automate using selectors from the response\nactionbook browser open \"https://arxiv.org/search/advanced\"\nactionbook browser fill \"input[type='text']\" \"Neural Network\"\nactionbook browser select \"select[name='searchtype']\" \"title\"\nactionbook browser click \"button.Search\"\nactionbook browser wait-nav\nactionbook browser text\nactionbook browser close\n\nFallback\n\nActionbook stores page data captured at indexing time. Websites evolve, so selectors may become outdated.\n\nWhen a selector from actionbook get fails at runtime, actionbook browser snapshot provides the live accessibility tree with current selectors. Use selectors from the snapshot output to retry the interaction.\n\nSelectors used in browser commands should come from actionbook get or actionbook browser snapshot output in the current session — not from prior knowledge or memory.\n\nIf actionbook search returns no results for a page, use snapshot as the primary source, or fall back to other available tools.\n\nReferences\nReference\tDescription\ncommand-reference.md\tComplete command reference with all flags and options\nauthentication.md\tLogin flows, OAuth, 2FA handling, session persistence"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/adcentury/actionbook",
    "publisherUrl": "https://clawhub.ai/adcentury/actionbook",
    "owner": "adcentury",
    "version": "0.1.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/actionbook",
    "downloadUrl": "https://openagent3.xyz/downloads/actionbook",
    "agentUrl": "https://openagent3.xyz/skills/actionbook/agent",
    "manifestUrl": "https://openagent3.xyz/skills/actionbook/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/actionbook/agent.md"
  }
}