Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器github未标认证来源可访问许可证需确认审计提醒

webtoolwebtool 搜索

Agent Skill

webtool 用于处理浏览器自动化、网页检查和页面信息提取,适合在 Codex、Claude、Cursor、Gemini CLI 中需要让 Agent 打开页面、读取网页或验证前端流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

196

周安装

8

GitHub Stars

9

下载量

63
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:webtool(webtool 搜索)
来源仓库:https://github.com/usewebtool/webtool
仓库路径:skills/webtool
安装命令:
npx skills add https://github.com/usewebtool/webtool --skill webtool
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/usewebtool/webtool --skill webtool

简介

用于浏览器自动化和网页内容提取。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

  • 适合让 Agent 打开页面、读取 DOM 或验证前端流程。
  • 支持网页检查和交互模拟操作。webtool 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 通过指定仓库安装并使用 npx 命令添加技能。
  • 需确认是否会触发敏感数据访问或跨域请求。

SKILL.md

webtool — Browser Automation via CLI

webtool controls the user's running Chrome — their existing tabs, logged-in sessions, and cookies. Every command operates in the user's real browser, so there's no need to log in again.

Setup

Before first use, the user must enable remote debugging in Chrome at chrome://inspect/#remote-debugging. This only needs to be done once — Chrome remembers the setting.

webtool does not auto-start its daemon on first command. Before using normal commands, run webtool start. Chrome will show a permission dialog — ask the user to click Allow. This happens once per daemon session. After that, all commands work.

webtool start    # start daemon — user must click Allow in Chrome

The user can run webtool stop to shut down the daemon and close the Chrome connection.

If a command returns "daemon not running", run webtool start and ask the user to approve the Chrome dialog.

Core Workflow

The agent loop is: snapshot → reason → action → snapshot

  1. Navigate: webtool open <url>
  2. Snapshot: webtool snapshot — see the page as text with element IDs
  3. Act: use element IDs to click, type, select, etc.
  4. Re-snapshot: after any action that changes the page, snapshot again for fresh IDs
webtool open https://example.com     # navigate
webtool snapshot                      # see the page
webtool click 43821                   # act on an element
webtool snapshot                      # see the result

Every action waits for the DOM to stabilize before returning. The next snapshot reflects the settled page.

Commands

Navigation

webtool open <url>              # navigate to URL
webtool open --new <url>        # open in a new tab
webtool tabs                    # list tabs — [active] marks the current one
webtool tab <index>             # switch to tab by 1-based index

Snapshots

webtool snapshot                # interactive elements + structure + summaries
webtool snapshot -i             # interactive only — lowest tokens
webtool snapshot -a             # all content — includes paragraphs, static text

Use default snapshot for most tasks. Use -i for complex pages when you only need actionable elements. Use -a when you need to read page content.

Output format: each line is [backendNodeId] role "name" with optional attributes.

[url] https://example.com
[title] Example Page

[10] form "Login"
  [11] textbox "Email" value="user@example.com"
  [12] textbox "Password"
  [13] button "Sign in"
[20] link "Forgot password?" url="/reset"
[30] heading[1] "Welcome"
  • [11] is the backendNodeId — use it in action commands
  • Roles: button, link, textbox, checkbox, radio, combobox, heading[N], etc.
  • Attributes: value="...", url="...", focused, checked, disabled, expanded
  • Indentation shows containment (form contains its inputs)

Interacting with the Page

webtool click <selector>        # click an element
webtool type <selector> "text"  # type into an input (replaces existing text)
webtool select <selector> "Option Text"  # select dropdown option by visible text
webtool key Enter               # press a key: Enter, Escape, Tab, ArrowDown, etc.
webtool hover <selector>        # hover to reveal hidden menus/buttons
webtool upload <selector> file  # set files on a file input
webtool wait 2s                 # sleep for a duration
webtool wait "#results"         # wait until element exists (CSS/XPath)

Scraping Data

Extract page content as markdown (default) or raw HTML (with --html).

webtool extract                 # full page as markdown
webtool extract <selector>      # specific element as markdown
webtool extract --main          # main content area only as markdown
webtool extract --html          # full page as raw HTML
webtool extract --html <selector>  # specific element as raw HTML

Note: extract defaults to a 1-second timeout (not 30s) so typos in selectors fail fast. Override with --timeout if the page is slow to render.

Selectors

Commands accept three selector formats:

FormatExampleNotes
Integer43821backendNodeId from snapshot — most reliable
CSS#submit, .btnRetries until found or timeout
XPath//button[@type='submit']Retries until found or timeout

Always prefer backendNodeId from the most recent snapshot.

Key Patterns

Hidden elements appear on hover. Some buttons (delete, edit, menu) only render when the parent is hovered. If you expect an action button but don't see it, hover over the containing element and re-snapshot.

webtool hover 329              # hover over the item
webtool snapshot               # now the delete button appears
webtool click 330              # click the revealed button

File inputs appear as buttons. Chrome's accessibility tree shows <input type="file"> as button "Choose File". Target them by backendNodeId like any other element.

Form filling. type replaces existing content (select-all then insert). No need to clear first.

After navigation, always re-snapshot. backendNodeIds become stale after page changes.

Troubleshooting

Most issues come from the page still loading JavaScript after the snapshot was taken. When something fails or an expected element is missing, re-snapshot first before trying anything else. The goal is to fail fast and retry — don't debug, just take a fresh snapshot.

Don't overthink failures. webtool is designed for a simple retry loop, not clever recovery:

  • stale backendNodeId → snapshot again
  • expected element missing → snapshot again
  • click or type changed the page unexpectedly → snapshot again
  • page still seems busy or mid-render → wait 2s, then snapshot again

Do not spend time guessing what the DOM "probably" looks like now. Treat each snapshot as disposable state. If the page changed, throw away old backendNodeIds and get a fresh view of reality.

When re-snapshotting doesn't help, these commands let you bypass the accessibility tree and work with the page directly:

webtool eval "<js>"              # run JavaScript on the page
webtool html                     # get full page HTML
webtool html <selector>          # get HTML of a specific element
webtool cdp <method> [params]    # send a raw Chrome DevTools Protocol command

Use eval when an element won't respond to click or type — e.g. dismiss a beforeunload dialog (webtool eval "window.onbeforeunload = null"), scroll to exact coordinates, or trigger a JS handler directly.

Use html as a last resort when multiple re-snapshots still miss elements you expect. The accessibility tree can omit elements without accessible roles — raw HTML shows everything.

Use cdp as a last resort for low-level browser control — e.g. webtool cdp Input.insertText '{"text":"hello"}' for canvas-based apps like Google Docs where normal type doesn't work.

Security Policies

webtool can be started with a user-defined security policy via webtool start -p policy.yml. The policy acts like a denylist filter for outgoing request URLs and request bodies. If you see request blocked by policy, that is not a flaky browser error — the user started webtool with a policy that intentionally blocked the request. Do not keep retrying the same action. Either choose a different action or ask the user about the policy.

Common Errors

ErrorRecovery
stale nodeRe-snapshot — the page re-rendered
element not foundCheck selector, re-snapshot
element not visibleScroll or wait for it to appear
element obscuredDismiss the covering element (modal, banner)
element not clickablepointer-events: none in CSS — find an alternative element
element not stablePosition/size still changing — wait and retry
element disabledWait for it to become enabled
option not foundUse extract on the select to see available options
request blocked by policyA security policy is blocking this network request. This is intentional and cannot be bypassed. Do not retry.

Global Flags

webtool --timeout 60s <command>   # override default 30s timeout

Full Reference

See USAGE.md for complete command documentation with all flags and detailed examples.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.08%
按下载量换算21

Claude

28.26%
按下载量换算18

Cursor

21.13%
按下载量换算13

Gemini CLI

8.9%
按下载量换算6

安全审计

Gen Agent Trust Hub

可疑

Socket

可疑

Snyk

可疑

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills