Install
openclaw skills install tapAI browser automation protocol — run pre-built skills for 41 sites, or forge new ones. MCP native, deterministic, zero AI at runtime.
openclaw skills install tapTap gives you deterministic browser automation. Instead of burning tokens on every click, forge a script once and run it forever — zero AI at runtime.
Tap exposes MCP tools in 6 categories:
Use tap.list to see all 81 available skills, then tap.run to execute:
tap.run({ site: "github", name: "trending" }) → trending repos
tap.run({ site: "hackernews", name: "hot" }) → top HN stories
tap.run({ site: "zhihu", name: "hot" }) → Zhihu trending
tap.run({ site: "xiaohongshu", name: "search", args: { keyword: "AI" } })
These run in under 1 second, cost $0, and return structured data every time.
81 skills across 41 sites: X/Twitter, Reddit, GitHub, YouTube, Bilibili, Zhihu, Xiaohongshu, Weibo, Medium, arXiv, Hacker News, Product Hunt, Bluesky, Steam, CoinGecko, and more.
When you need a site that doesn't have a pre-built skill:
forge.inspect({ url: "https://example.com" }) analyzes the page structure and available data sourcesforge.verify({ url: "...", expression: "..." }) tests the extraction logic liveforge.save({ site: "example", name: "data" }) persists the skillAfter saving, tap.run({ site: "example", name: "data" }) works forever. No AI needed.
Operate the browser via the page API for one-off interactions:
page.nav({ url }) — navigate to a pagepage.click({ target }) — click by selector or visible textpage.type({ selector, text }) — type into input fieldspage.find({ query }) — find elements by textpage.screenshot() — capture the current pagepage.scroll, page.hover, page.pressKey, page.selectpage.fetch({ url }) — make API requests in the page contextinspect.dom — page DOM structureinspect.a11y — accessibility treeinspect.page — page metadata and stateinspect.resources — loaded resourcestab.list — all open tabstab.new({ url }) — open new tabtab.close({ tabId }) — close tabDownload the latest binary from GitHub Releases and add to PATH.
Or build from source (requires Deno):
git clone https://github.com/LeonTing1010/tap && cd tap
deno compile --allow-read --allow-write --allow-net --allow-env --allow-run --output tap src/cli.ts
Download tap-extension.zip from the latest release, unzip, load as unpacked extension in chrome://extensions/.
tap install # 81 skills across 41 sites
Add to your OpenClaw MCP configuration:
{
"mcpServers": {
"tap": {
"command": "tap",
"args": ["mcp"]
}
}
}
1. tap.run github/trending
2. tap.run hackernews/hot
3. tap.run reddit/hot
→ Cross-reference results for emerging topics
1. tap.run x/search { keyword: "AI agents" }
2. tap.run zhihu/search { keyword: "AI agents" }
3. tap.run xiaohongshu/search { keyword: "AI agents" }
→ Compare discussion across platforms
1. tap.run x/post { content: "..." }
2. tap.run xiaohongshu/publish { title: "...", content: "..." }
3. tap.run telegraph/publish { title: "...", content: "..." }
1. forge.inspect { url: "https://newsite.com" }
2. forge.verify { url: "...", expression: "..." }
3. forge.save { site: "newsite", name: "data" }
4. tap.run newsite/data ← works forever, zero AI
Provenance. Tap is open source (AGPL-3.0) at github.com/LeonTing1010/tap. All release binaries are built via GitHub Actions — verify by checking the CI workflow.
Chrome extension permissions. The extension requires debugger permission to send CDP commands to the active tab. It does NOT request <all_urls>, cookies, or webRequest in its manifest. The extension only activates when Tap is explicitly invoked.
Community skills. tap install clones scripts from tap-skills. All scripts are plain .tap.js files (readable JavaScript) — review before running. User-forged taps are stored locally in ~/.tap/taps/.
Scope of access. Tap operates on the active browser tab when invoked. It does not run in the background, does not access tabs you haven't navigated to, and does not persist any data beyond ~/.tap/.
Recommendation. Review the source code (~1,800 lines) and extension manifest before installing.