agentCLAWHUBUnverified

PinchTab

Control browsers and access sites with PinchTab Skill: PinchTab Owner: pinchtab Summary: Control browsers and access sites with PinchTab Tags: latest:0.15.2 Version history: v0.15.2 | 2026-08-26T12:08:03.556Z | user Release v0.15.2 v0.15.1 | 2026-08-03T15:10:48.588Z | user Release v0.15.1 v0.15.0 | 2026-07-18T18:18:51.520Z | user Release v0.15.0 v0.14.1 | 2026-07-08T10:44:09.090Z | user Release v0.14.1 v0.14.0 | 2026-06-28T15:10:40.714Z | user Release v0.14.0 v0.1

OpenClaw

Rank

62

Safety

84

Downloads

4.2k

Updated

Oct 9, 2026

Version

0.15.2

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 4.2K downloads reported by the source. Last updated 10/9/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 9, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 9, 2026
Adoption signal
4.2K downloadsadoption · observed Oct 9, 2026
Latest release
0.15.2release · observed Aug 26, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17d2vf1k1vrbm0e73czqqc3n9868wcg:pinchtab
  1. Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
  2. Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-pinchtab-pinchtab/snapshot"

Documentation

CLAWHUB

146,573 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: pinchtab
description: "Use this skill when a task needs browser automation through PinchTab: open a website, inspect interactive elements, click through flows, fill out forms, scrape page text, reuse a dedicated automation profile with user approval, export screenshots or PDFs, manage multiple browser instances, or fall back to the HTTP API when the CLI is unavailable. Prefer this skill for token-efficient browser work driven by stable accessibility refs such as `e5` and `e12`."
metadata:
  openclaw:
    requires:
      bins:
        - pinchtab
      anyBins:
        - google-chrome
        - google-chrome-stable
        - chromium
        - chromium-browser
    homepage: https://github.com/pinchtab/pinchtab
    install:
      - kind: brew
        formula: pinchtab/tap/pinchtab
        bins: [pinchtab]
      - kind: npm
        package: pinchtab
        bins: [pinchtab]
---

# Browser Automation with PinchTab

CLI-first browser skill. Use `pinchtab` commands.

## Core Workflow

1. Create a session: `export PINCHTAB_SESSION=$(pinchtab session create --agent-id myagent)` — do this once before any browser command.
2. Navigate: `pinchtab nav <url> --snap` — auto-starts the local server if needed, then returns tab ID + interactive snapshot in one call.
3. Interact: `pinchtab click <ref> --snap-diff` — returns OK + only changed elements (most token-efficient).
   - Click behavior: omit `--mode` for the normal click path, use `--mode dom`, or use `--mode dispatch`.
   - Treat `--mode` as a broad, low-level escape hatch. Occlusion workaround is the common case: `pinchtab click <ref> --mode dom` or `pinchtab click <ref> --mode dispatch`
   - `--mode` and `--humanize` are mutually exclusive.
4. For read-only observation: `pinchtab text` when you won't act on refs.

**Key optimization**: Use `--snap-diff` on `nav`, `click`, `fill`, `select`, `press`, `scroll`, `back`, `forward`, `reload` to get only added/changed/removed elements — most token-efficient for multi-step flows. Use `--snap` when you need the full snapshot (e.g., first navigation, or after major page changes). `--text` is available on `click`, `fill`, `select`, `press`, `back`, `forward`, `reload` (but NOT on `nav` or `scroll`) when you need prose content for verification (skips snap, returns page text directly). `dblclick` does not support any observation flag — run a separate `snap` after.

`--snap-diff` returns the same compact format as `snap`, but with change markers and a header showing counts:
```
# Page Title | URL | 57 nodes | +2 ~1 -0
e0:link "Home"
e5:button "Submit" [+]
e12:textbox val="updated" [~]
# removed: e99
```
`[+]` = added, `[~]` = changed, removed refs listed at end. All valid refs are shown — no need to remember previous snapshot. Do not follow with redundant `snap`; only call `text` when you need prose content.

Fallback observation (when `--snap` wasn't used):
- `pinchtab snap` — interactive elements + headings in compact format (default).
- `pinchtab snap [sel

_meta.json

{
  "ownerId": "kn75yfbg457nxg5e8yeh2ngtx9817sam",
  "slug": "pinchtab",
  "version": "0.15.2",
  "publishedAt": 1787746083556
}

references/agent-optimization.md

# Agent Optimization Playbook

Practical guidance for running token-efficient, resilient PinchTab agent workflows.

---

## Cheapest-Path Decision Tree

Choose the lowest-cost tool that satisfies your goal:

```
Need to check page state?
├─ Know the element ref already? → skip snap, use click/type directly
├─ Need to find interactive elements? → snap -i -c  (cheapest)
├─ Need to read text/data only? → pinchtab text  (no tree overhead)
├─ Need to find a specific element? → pinchtab find "<text>"
├─ Need full page structure? → snap --full
├─ Need to debug visually? → screenshot  (use sparingly, large output)
└─ Need to run a JS check? → eval  (precise, zero visual overhead)
```

**Token cost ranking (cheapest → most expensive):**
1. `eval` — single value, no DOM traversal output
2. `find` — targeted element list only
3. `text` — readable text only
4. `snap` / `snap -i -c` — interactive elements, compact format
5. `snap --full` — full JSON tree
6. `screenshot` — image payload, highest token cost

**Rule of thumb:** Reach for `snap -i -c` as your default snapshot. Only escalate to `screenshot` when visual layout matters (canvas or complex CSS).

---

## Diff Snapshots for Follow-Up Reads

Use `--snap-diff` on action commands to get all refs plus change markers — in one call, not two.

```bash
pinchtab click e5 --snap-diff      # action + full refs with diff markers
pinchtab fill e3 "text" --snap-diff
```

Output format shows all valid refs with change markers:
```
# Page | URL | 57 nodes | +2 ~1 -0
e0:link "Home"
e5:button "Submit" [+]           # added
e12:textbox val="updated" [~]    # changed
# removed: e99
```

**When to use `--snap-diff`:**
- After clicks that update part of the UI (e.g. accordion opens, toast appears)
- After form fills that show inline validation
- During multi-step wizards where only one section changes
- Any interaction where you need to see the result — you get all refs plus diff info

**When NOT to use `--snap-diff`:**
- After `nav` to a new URL (diff would mark everything as added — use `--snap` instead)
- First snapshot of a session (no baseline exists — use `--snap`)

**Fallback:** If you already performed an action without `--snap-diff`, use `snap -d` separately.

---

## Faster Page Loads

Use `--block-images` on navigation for read-heavy tasks where images are not needed.

```bash
pinchtab nav <url> --block-images --snap
```

**Best for:** Form automation, data extraction, API-heavy SPAs, and scraping workflows where image content is not required.

---

## Iframe Shortcuts

Default `snap` (without `-i`) **flattens same-origin iframes** — nested iframe content appears as regular refs in the tree. Ref-based actions (`click`, `fill`, etc.) work **across iframe boundaries** without `frame` scope changes.

```
# snap already shows everything, including nested iframes:
# e0:heading "Outer page"
# e1:Iframe
# e2:heading "Level 2"
# e3:Iframe
# e4:heading "Level 3"
# e5:button "Deep button"    ← 3 levels deep, but clickable 

references/api.md

# PinchTab API Reference

Base URL for all examples: `http://localhost:9867`

> **CLI alternative:** All endpoints have CLI equivalents. Use `pinchtab help` for the full list. Examples are shown as `# CLI:` comments below.

## Agent Attribution

If an agent is calling the HTTP API directly, include `X-Agent-Id: <agent-id>` on the requests that should stay attributable to that agent.

Example:

```bash
curl -X POST /navigate \
  -H 'X-Agent-Id: agent-crawl-01' \
  -H 'Content-Type: application/json' \
  -d '{"url": "https://pinchtab.com"}'
```

Notes:

- CLI users should prefer `pinchtab --agent-id <agent-id> ...` instead of setting the header manually
- scheduler-submitted tasks reuse their `agentId` as `X-Agent-Id` when the task is executed
- omitted `tabId` resolves by caller identity: agent sessions use a session-scoped current tab, `X-Agent-Id` uses an agent-scoped current tab when no session is present, and anonymous requests use the shared global/default tab

## Navigate

```bash
# CLI: pinchtab nav https://pinchtab.com [--new-tab] [--block-images]
curl -X POST /navigate \
  -H 'Content-Type: application/json' \
  -d '{"url": "https://pinchtab.com"}'

# With options: custom timeout, block images, open in new tab
curl -X POST /navigate \
  -H 'Content-Type: application/json' \
  -d '{"url": "https://pinchtab.com", "timeout": 60, "blockImages": true, "newTab": true}'
```

## Snapshot (accessibility tree)

```bash
# CLI: pinchtab snap [-i] [-c] [-d] [-s main] [--max-tokens 2000]
# Full tree
curl /snapshot

# Interactive elements only (buttons, links, inputs) — much smaller
curl "/snapshot?filter=interactive"

# Limit depth
curl "/snapshot?depth=5"

# Smart diff — only changes since last snapshot (massive token savings)
curl "/snapshot?diff=true"

# Text format — indented tree, ~40-60% fewer tokens than JSON
curl "/snapshot?format=text"

# Compact format — one-line-per-node, 56-64% fewer tokens than JSON (recommended)
curl "/snapshot?format=compact"

# YAML format
curl "/snapshot?format=yaml"

# Scope to CSS selector (e.g. main content only)
curl "/snapshot?selector=main"

# Truncate to ~N tokens
curl "/snapshot?maxTokens=2000"

# Combine for maximum efficiency
curl "/snapshot?format=compact&selector=main&maxTokens=2000&filter=interactive"

# Disable animations before capture
curl "/snapshot?noAnimations=true"

# Write to file
curl "/snapshot?output=file&path=/tmp/snapshot.json"
```

Returns flat JSON array of nodes with `ref`, `role`, `name`, `depth`, `value`, `nodeId`.

**Token optimization**: Use `?format=compact` for best token efficiency. Add `?filter=interactive` for action-oriented tasks (~75% fewer nodes). Use `?selector=main` to scope to relevant content. Use `?maxTokens=2000` to cap output. Use `?diff=true` on multi-step workflows to see only changes. Combine all params freely.

## Act on elements

```bash
# CLI: pinchtab click e5 / pinchtab type e12 hello / pinchtab press Enter
# Click by ref (normal click path; omit mode)
curl -X PO

references/commands.md

# CLI Commands Reference — PinchTab

> **Quick tip:** Use `pinchtab help` or `pinchtab <command> --help` for full flag lists.

---

## Control Plane

### `pinchtab server`
Start the PinchTab server (default port 9867).

```bash
pinchtab server
pinchtab server -H              # visible browser for debugging
pinchtab server -e ./ext        # load browser extension
```

| Flag | Short | Description |
|------|-------|-------------|
| `--headed` | `-H` | Start browser in headed (visible) mode |
| `--extension <path>` | `-e` | Load browser extension (repeatable) |
| `--log-level <level>` | | Log threshold: `debug`, `info` (default), `warn` or `error` |
| `--verbose` | `-v` | Show the full startup banner and log at debug level |

> **Note:** Use `--headed` only when you need visual feedback (debugging, watching automation). Headless mode is more resource-efficient.

### `pinchtab daemon`
Manage the user-level background service.

```bash
pinchtab daemon
pinchtab daemon install
pinchtab daemon start
pinchtab daemon stop
pinchtab daemon restart
```

### `pinchtab health`
Check if the server is running and healthy.

---

## Browser Commands

### `pinchtab nav <url>`
Navigate the current tracked tab to a URL, or create one when no current tab is available. This is the browser command that auto-starts the default local server when it is not already running. Without a session, `nav` uses a shared current tab — set `PINCHTAB_SESSION` first to get an isolated tab.

```bash
pinchtab nav https://pinchtab.com
pinchtab nav https://pinchtab.com --new-tab
pinchtab nav https://pinchtab.com --snap
pinchtab nav https://pinchtab.com --timeout 90
pinchtab nav https://pinchtab.com --block-images
pinchtab nav https://pinchtab.com --tab <tabId>
```

| Flag | Description |
|------|-------------|
| `--new-tab` | Explicitly force a new tab |
| `--tab <id>` | Reuse a specific tab |
| `--snap` | Navigate and print an interactive compact snapshot |
| `--timeout <seconds>` | Override the navigation timeout (maximum 120 seconds) |
| `--block-images` | Block image loading (faster, fewer tokens) |
| `--block-ads` | Block ads for this navigation |
| `--print-tab-id` | Print only the tab ID |

Only `http`/`https` URLs are accepted by default. `file://` (for opening a local HTML file) is rejected unless the server is started with `security.allowFileScheme` enabled — and even then it is blocked when a strict-mode domain allowlist is active, since `file://` has no host. `javascript:`, `chrome://`, and `data:` are always rejected.

### `pinchtab tab` (not `tabs`)
Manage browser tabs.

```bash
pinchtab tab                 # List all open tabs
pinchtab tab <tabId>         # Focus a tab by ID or 1-based index
pinchtab nav <url> --new-tab # Open a new tab and navigate it
pinchtab tab close <tabId>   # Close specific tab
```

Unscoped commands resolve the current tab by caller identity. Session-authenticated callers use a current tab scoped to that session; `--agent-id` / `PINCHTAB_AGENT_ID` cal
Github ReposUpdated 4h agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/pinchtab/skills/pinchtab",
      "sourceUrl": "https://clawhub.ai/pinchtab/skills/pinchtab",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T05:53:57.504Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-pinchtab-pinchtab/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-pinchtab-pinchtab/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-09T05:53:57.504Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "4.2K downloads",
      "href": "https://clawhub.ai/pinchtab/pinchtab",
      "sourceUrl": "https://clawhub.ai/pinchtab/pinchtab",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T05:53:57.504Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "0.15.2",
      "href": "https://clawhub.ai/pinchtab/pinchtab",
      "sourceUrl": "https://clawhub.ai/pinchtab/pinchtab",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-08-26T12:08:03.556Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-pinchtab-pinchtab/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-pinchtab-pinchtab/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 0.15.2",
      "description": "Release v0.15.2",
      "href": "https://clawhub.ai/pinchtab/pinchtab",
      "sourceUrl": "https://clawhub.ai/pinchtab/pinchtab",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-08-26T12:08:03.556Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 9, 2026.

Sponsored

Ads related to PinchTab and adjacent AI workflows.