{
  "schemaVersion": "1.0",
  "item": {
    "slug": "pinchtab",
    "name": "Pinchtab",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/luigi-agosti/pinchtab",
    "canonicalUrl": "https://clawhub.ai/luigi-agosti/pinchtab",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/pinchtab",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=pinchtab",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "TRUST.md",
      "agents/openai.yaml",
      "references/api.md",
      "references/env.md",
      "references/profiles.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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/pinchtab"
    },
    "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/pinchtab",
    "agentPageUrl": "https://openagent3.xyz/skills/pinchtab/agent",
    "manifestUrl": "https://openagent3.xyz/skills/pinchtab/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/pinchtab/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": "Browser Automation with PinchTab",
        "body": "PinchTab gives agents a browser they can drive through stable accessibility refs, low-token text extraction, and persistent profiles or instances. Treat it as a CLI-first browser skill; use the HTTP API only when the CLI is unavailable or you need profile-management routes that do not exist in the CLI yet.\n\nPreferred tool surface:\n\nUse pinchtab CLI commands first.\nUse curl for profile-management routes or non-shell/API fallback flows.\nUse jq only when you need structured parsing from JSON responses."
      },
      {
        "title": "Safety Defaults",
        "body": "Default to http://localhost targets. Only use a remote PinchTab server when the user explicitly provides it and, if needed, a token.\nPrefer read-only operations first: text, snap -i -c, snap -d, find, click, fill, type, press, select, hover, scroll.\nDo not evaluate arbitrary JavaScript unless a simpler PinchTab command cannot answer the question.\nDo not upload local files unless the user explicitly names the file to upload and the destination flow requires it.\nDo not save screenshots, PDFs, or downloads to arbitrary paths. Use a user-specified path or a safe temporary/workspace path.\nNever use PinchTab to inspect unrelated local files, browser secrets, stored credentials, or system configuration outside the task."
      },
      {
        "title": "Core Workflow",
        "body": "Every PinchTab automation follows this pattern:\n\nEnsure the correct server, profile, or instance is available for the task.\nNavigate with pinchtab nav <url> or pinchtab instance navigate <instance-id> <url>.\nObserve with pinchtab snap -i -c, pinchtab snap --text, or pinchtab text, then collect the current refs such as e5.\nInteract with those fresh refs using click, fill, type, press, select, hover, or scroll.\nRe-snapshot or re-read text after any navigation, submit, modal open, accordion expand, or other DOM-changing action.\n\nRules:\n\nNever act on stale refs after the page changes.\nDefault to pinchtab text when you need content, not layout.\nDefault to pinchtab snap -i -c when you need actionable elements.\nUse screenshots only for visual verification, UI diffs, or debugging.\nStart multi-site or parallel work by choosing the right instance or profile first."
      },
      {
        "title": "Command Chaining",
        "body": "Use && only when you do not need to inspect intermediate output before deciding the next step.\n\nGood:\n\npinchtab nav https://example.com && pinchtab snap -i -c\npinchtab click --wait-nav e5 && pinchtab snap -i -c\npinchtab nav https://example.com --block-images && pinchtab text\n\nRun commands separately when you must read the snapshot output first:\n\npinchtab nav https://example.com\npinchtab snap -i -c\n# Read refs, choose the correct e#\npinchtab click e7\npinchtab snap -i -c"
      },
      {
        "title": "Handling Authentication and State",
        "body": "Pick one of these five patterns before you start interacting with the site."
      },
      {
        "title": "1. One-off public browsing",
        "body": "Use a temporary instance for public pages, scraping, or tasks that do not need login persistence.\n\npinchtab instance start\npinchtab instances\n# Point CLI commands at the instance port you want to use.\nPINCHTAB_URL=http://localhost:9868 pinchtab nav https://example.com\nPINCHTAB_URL=http://localhost:9868 pinchtab text"
      },
      {
        "title": "2. Reuse an existing named profile",
        "body": "Use this for recurring tasks against the same authenticated site.\n\npinchtab profiles\npinchtab instance start --profile work --mode headed\nPINCHTAB_URL=http://localhost:9868 pinchtab nav https://mail.google.com\n\nIf the login is already stored in that profile, you can switch to headless later:\n\npinchtab instance stop inst_ea2e747f\npinchtab instance start --profile work --mode headless"
      },
      {
        "title": "3. Create a dedicated auth profile over HTTP",
        "body": "Use this when you need a durable profile and it does not exist yet.\n\ncurl -X POST http://localhost:9867/profiles \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"billing\",\"description\":\"Billing portal automation\",\"useWhen\":\"Use for billing tasks\"}'\n\ncurl -X POST http://localhost:9867/profiles/billing/start \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"headless\":false}'\n\nThen target the returned port with PINCHTAB_URL."
      },
      {
        "title": "4. Human-assisted headed login, then agent reuse",
        "body": "Use this for CAPTCHA, MFA, or first-time setup.\n\npinchtab instance start --profile work --mode headed\n# Human completes login in the visible Chrome window.\nPINCHTAB_URL=http://localhost:9868 pinchtab nav https://app.example.com/dashboard\nPINCHTAB_URL=http://localhost:9868 pinchtab snap -i -c\n\nOnce the session is stored, reuse the same profile for later tasks."
      },
      {
        "title": "5. Remote or non-shell agent with tokenized HTTP API",
        "body": "Use this when the agent cannot call the CLI directly.\n\ncurl http://localhost:9867/health\ncurl -X POST http://localhost:9867/instances/launch \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"work\",\"headless\":true}'\ncurl -X POST http://localhost:9868/action \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"kind\":\"click\",\"ref\":\"e5\"}'\n\nIf the server is exposed beyond localhost, require a token and use a dedicated automation profile. See TRUST.md and config.md."
      },
      {
        "title": "Server and targeting",
        "body": "pinchtab server\npinchtab daemon\npinchtab health\npinchtab instances\npinchtab profiles\nPINCHTAB_URL=http://localhost:9868 pinchtab snap -i -c"
      },
      {
        "title": "Navigation and tabs",
        "body": "pinchtab nav <url>\npinchtab nav <url> --new-tab\npinchtab nav <url> --tab <tab-id>\npinchtab nav <url> --block-images\npinchtab nav <url> --block-ads\npinchtab tab\npinchtab tab new <url>\npinchtab tab close <tab-id>\npinchtab instance navigate <instance-id> <url>"
      },
      {
        "title": "Observation",
        "body": "pinchtab snap\npinchtab snap -i\npinchtab snap -i -c\npinchtab snap -d\npinchtab snap --selector <css>\npinchtab snap --max-tokens <n>\npinchtab snap --text\npinchtab text\npinchtab text --raw\npinchtab find <query>\npinchtab find --ref-only <query>\n\nGuidance:\n\nsnap -i -c is the default for finding actionable refs.\nsnap -d is the default follow-up snapshot for multi-step flows.\ntext is the default for reading articles, dashboards, reports, or confirmation messages.\nfind --ref-only is useful when the page is large and you already know the semantic target."
      },
      {
        "title": "Interaction",
        "body": "pinchtab click <ref>\npinchtab click --wait-nav <ref>\npinchtab click --css <selector>\npinchtab type <ref> <text>\npinchtab fill <ref|selector> <text>\npinchtab press <key>\npinchtab hover <ref>\npinchtab select <ref> <value>\npinchtab scroll <ref|pixels>\n\nRules:\n\nPrefer fill for deterministic form entry.\nPrefer type only when the site depends on keystroke events.\nPrefer click --wait-nav when a click is expected to navigate.\nRe-snapshot immediately after click, press Enter, select, or scroll if the UI can change."
      },
      {
        "title": "Export, debug, and verification",
        "body": "pinchtab screenshot\npinchtab screenshot -o /tmp/pinchtab-page.png  # Format driven by extension\npinchtab screenshot -q 60\npinchtab pdf\npinchtab pdf -o /tmp/pinchtab-report.pdf\npinchtab pdf --landscape"
      },
      {
        "title": "Advanced operations: explicit opt-in only",
        "body": "Use these only when the task explicitly requires them and safer commands are insufficient.\n\npinchtab eval \"document.title\"\npinchtab download <url> -o /tmp/pinchtab-download.bin\npinchtab upload /absolute/path/provided-by-user.ext -s <css>\n\nRules:\n\neval is for narrow, read-only DOM inspection unless the user explicitly asks for a page mutation.\ndownload should prefer a safe temporary or workspace path over an arbitrary filesystem location.\nupload requires a file path the user explicitly provided or clearly approved for the task."
      },
      {
        "title": "HTTP API fallback",
        "body": "curl -X POST http://localhost:9868/navigate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\"}'\n\ncurl \"http://localhost:9868/snapshot?filter=interactive&format=compact\"\n\ncurl -X POST http://localhost:9868/action \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"kind\":\"fill\",\"ref\":\"e3\",\"text\":\"ada@example.com\"}'\n\ncurl http://localhost:9868/text\n\nUse the API when:\n\nthe agent cannot shell out,\nprofile creation or mutation is required,\nor you need explicit instance- and tab-scoped routes."
      },
      {
        "title": "Open a page and inspect actions",
        "body": "pinchtab nav https://pinchtab.com && pinchtab snap -i -c"
      },
      {
        "title": "Fill and submit a form",
        "body": "pinchtab nav https://example.com/login\npinchtab snap -i -c\npinchtab fill e3 \"user@example.com\"\npinchtab fill e4 \"correct horse battery staple\"\npinchtab click --wait-nav e5\npinchtab text"
      },
      {
        "title": "Search, then extract the result page cheaply",
        "body": "pinchtab nav https://example.com\npinchtab snap -i -c\npinchtab fill e2 \"quarterly report\"\npinchtab press Enter\npinchtab text"
      },
      {
        "title": "Use diff snapshots in a multi-step flow",
        "body": "pinchtab nav https://example.com/checkout\npinchtab snap -i -c\npinchtab click e8\npinchtab snap -d -i -c"
      },
      {
        "title": "Bootstrap an authenticated profile",
        "body": "pinchtab profiles\npinchtab instance start --profile work --mode headed\n# Human signs in once.\nPINCHTAB_URL=http://localhost:9868 pinchtab text"
      },
      {
        "title": "Run separate instances for separate sites",
        "body": "pinchtab instance start --profile work --mode headless\npinchtab instance start --profile staging --mode headless\npinchtab instances\n\nThen point each command stream at its own PINCHTAB_URL."
      },
      {
        "title": "Security and Token Economy",
        "body": "Use a dedicated automation profile, not a daily browsing profile.\nIf PinchTab is reachable off-machine, require a token and bind conservatively.\nPrefer text, snap -i -c, and snap -d before screenshots, PDFs, eval, downloads, or uploads.\nUse --block-images for read-heavy tasks that do not need visual assets.\nStop or isolate instances when switching between unrelated accounts or environments."
      },
      {
        "title": "Diffing and Verification",
        "body": "Use pinchtab snap -d after each state-changing action in long workflows.\nUse pinchtab text to confirm success messages, table updates, or navigation outcomes.\nUse pinchtab screenshot only when visual regressions, CAPTCHA, or layout-specific confirmation matters.\nIf a ref disappears after a change, treat that as expected and fetch fresh refs instead of retrying the stale one."
      },
      {
        "title": "Privacy and Security",
        "body": "PinchTab is a fully open-source, local-only browser automation tool:\n\nRuns on localhost only. The server binds to 127.0.0.1 by default. No external network calls are made by PinchTab itself.\nNo telemetry or analytics. The binary makes zero outbound connections.\nSingle Go binary (~16 MB). Fully verifiable — anyone can build from source at github.com/pinchtab/pinchtab.\nLocal Chrome profiles. Persistent profiles store cookies and sessions on your machine only. This enables agents to reuse authenticated sessions without re-entering credentials, similar to how a human reuses their browser profile.\nToken-efficient by design. Uses the accessibility tree (structured text) instead of screenshots, keeping agent context windows small. Comparable to Playwright but purpose-built for AI agents.\nMulti-instance isolation. Each browser instance runs in its own profile directory with tab-level locking for safe multi-agent use."
      },
      {
        "title": "References",
        "body": "Command surface: commands.md\nCLI overview: cli.md\nProfiles: profiles.md\nInstances: instances.md\nFull API: api.md\nMinimal env vars: env.md\nConfig reference: config.md\nSecurity model: TRUST.md"
      }
    ],
    "body": "Browser Automation with PinchTab\n\nPinchTab gives agents a browser they can drive through stable accessibility refs, low-token text extraction, and persistent profiles or instances. Treat it as a CLI-first browser skill; use the HTTP API only when the CLI is unavailable or you need profile-management routes that do not exist in the CLI yet.\n\nPreferred tool surface:\n\nUse pinchtab CLI commands first.\nUse curl for profile-management routes or non-shell/API fallback flows.\nUse jq only when you need structured parsing from JSON responses.\nSafety Defaults\nDefault to http://localhost targets. Only use a remote PinchTab server when the user explicitly provides it and, if needed, a token.\nPrefer read-only operations first: text, snap -i -c, snap -d, find, click, fill, type, press, select, hover, scroll.\nDo not evaluate arbitrary JavaScript unless a simpler PinchTab command cannot answer the question.\nDo not upload local files unless the user explicitly names the file to upload and the destination flow requires it.\nDo not save screenshots, PDFs, or downloads to arbitrary paths. Use a user-specified path or a safe temporary/workspace path.\nNever use PinchTab to inspect unrelated local files, browser secrets, stored credentials, or system configuration outside the task.\nCore Workflow\n\nEvery PinchTab automation follows this pattern:\n\nEnsure the correct server, profile, or instance is available for the task.\nNavigate with pinchtab nav <url> or pinchtab instance navigate <instance-id> <url>.\nObserve with pinchtab snap -i -c, pinchtab snap --text, or pinchtab text, then collect the current refs such as e5.\nInteract with those fresh refs using click, fill, type, press, select, hover, or scroll.\nRe-snapshot or re-read text after any navigation, submit, modal open, accordion expand, or other DOM-changing action.\n\nRules:\n\nNever act on stale refs after the page changes.\nDefault to pinchtab text when you need content, not layout.\nDefault to pinchtab snap -i -c when you need actionable elements.\nUse screenshots only for visual verification, UI diffs, or debugging.\nStart multi-site or parallel work by choosing the right instance or profile first.\nCommand Chaining\n\nUse && only when you do not need to inspect intermediate output before deciding the next step.\n\nGood:\n\npinchtab nav https://example.com && pinchtab snap -i -c\npinchtab click --wait-nav e5 && pinchtab snap -i -c\npinchtab nav https://example.com --block-images && pinchtab text\n\n\nRun commands separately when you must read the snapshot output first:\n\npinchtab nav https://example.com\npinchtab snap -i -c\n# Read refs, choose the correct e#\npinchtab click e7\npinchtab snap -i -c\n\nHandling Authentication and State\n\nPick one of these five patterns before you start interacting with the site.\n\n1. One-off public browsing\n\nUse a temporary instance for public pages, scraping, or tasks that do not need login persistence.\n\npinchtab instance start\npinchtab instances\n# Point CLI commands at the instance port you want to use.\nPINCHTAB_URL=http://localhost:9868 pinchtab nav https://example.com\nPINCHTAB_URL=http://localhost:9868 pinchtab text\n\n2. Reuse an existing named profile\n\nUse this for recurring tasks against the same authenticated site.\n\npinchtab profiles\npinchtab instance start --profile work --mode headed\nPINCHTAB_URL=http://localhost:9868 pinchtab nav https://mail.google.com\n\n\nIf the login is already stored in that profile, you can switch to headless later:\n\npinchtab instance stop inst_ea2e747f\npinchtab instance start --profile work --mode headless\n\n3. Create a dedicated auth profile over HTTP\n\nUse this when you need a durable profile and it does not exist yet.\n\ncurl -X POST http://localhost:9867/profiles \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"billing\",\"description\":\"Billing portal automation\",\"useWhen\":\"Use for billing tasks\"}'\n\ncurl -X POST http://localhost:9867/profiles/billing/start \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"headless\":false}'\n\n\nThen target the returned port with PINCHTAB_URL.\n\n4. Human-assisted headed login, then agent reuse\n\nUse this for CAPTCHA, MFA, or first-time setup.\n\npinchtab instance start --profile work --mode headed\n# Human completes login in the visible Chrome window.\nPINCHTAB_URL=http://localhost:9868 pinchtab nav https://app.example.com/dashboard\nPINCHTAB_URL=http://localhost:9868 pinchtab snap -i -c\n\n\nOnce the session is stored, reuse the same profile for later tasks.\n\n5. Remote or non-shell agent with tokenized HTTP API\n\nUse this when the agent cannot call the CLI directly.\n\ncurl http://localhost:9867/health\ncurl -X POST http://localhost:9867/instances/launch \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"work\",\"headless\":true}'\ncurl -X POST http://localhost:9868/action \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"kind\":\"click\",\"ref\":\"e5\"}'\n\n\nIf the server is exposed beyond localhost, require a token and use a dedicated automation profile. See TRUST.md and config.md.\n\nEssential Commands\nServer and targeting\npinchtab server\npinchtab daemon\npinchtab health\npinchtab instances\npinchtab profiles\nPINCHTAB_URL=http://localhost:9868 pinchtab snap -i -c\n\nNavigation and tabs\npinchtab nav <url>\npinchtab nav <url> --new-tab\npinchtab nav <url> --tab <tab-id>\npinchtab nav <url> --block-images\npinchtab nav <url> --block-ads\npinchtab tab\npinchtab tab new <url>\npinchtab tab close <tab-id>\npinchtab instance navigate <instance-id> <url>\n\nObservation\npinchtab snap\npinchtab snap -i\npinchtab snap -i -c\npinchtab snap -d\npinchtab snap --selector <css>\npinchtab snap --max-tokens <n>\npinchtab snap --text\npinchtab text\npinchtab text --raw\npinchtab find <query>\npinchtab find --ref-only <query>\n\n\nGuidance:\n\nsnap -i -c is the default for finding actionable refs.\nsnap -d is the default follow-up snapshot for multi-step flows.\ntext is the default for reading articles, dashboards, reports, or confirmation messages.\nfind --ref-only is useful when the page is large and you already know the semantic target.\nInteraction\npinchtab click <ref>\npinchtab click --wait-nav <ref>\npinchtab click --css <selector>\npinchtab type <ref> <text>\npinchtab fill <ref|selector> <text>\npinchtab press <key>\npinchtab hover <ref>\npinchtab select <ref> <value>\npinchtab scroll <ref|pixels>\n\n\nRules:\n\nPrefer fill for deterministic form entry.\nPrefer type only when the site depends on keystroke events.\nPrefer click --wait-nav when a click is expected to navigate.\nRe-snapshot immediately after click, press Enter, select, or scroll if the UI can change.\nExport, debug, and verification\npinchtab screenshot\npinchtab screenshot -o /tmp/pinchtab-page.png  # Format driven by extension\npinchtab screenshot -q 60\npinchtab pdf\npinchtab pdf -o /tmp/pinchtab-report.pdf\npinchtab pdf --landscape\n\nAdvanced operations: explicit opt-in only\n\nUse these only when the task explicitly requires them and safer commands are insufficient.\n\npinchtab eval \"document.title\"\npinchtab download <url> -o /tmp/pinchtab-download.bin\npinchtab upload /absolute/path/provided-by-user.ext -s <css>\n\n\nRules:\n\neval is for narrow, read-only DOM inspection unless the user explicitly asks for a page mutation.\ndownload should prefer a safe temporary or workspace path over an arbitrary filesystem location.\nupload requires a file path the user explicitly provided or clearly approved for the task.\nHTTP API fallback\ncurl -X POST http://localhost:9868/navigate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\"}'\n\ncurl \"http://localhost:9868/snapshot?filter=interactive&format=compact\"\n\ncurl -X POST http://localhost:9868/action \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"kind\":\"fill\",\"ref\":\"e3\",\"text\":\"ada@example.com\"}'\n\ncurl http://localhost:9868/text\n\n\nUse the API when:\n\nthe agent cannot shell out,\nprofile creation or mutation is required,\nor you need explicit instance- and tab-scoped routes.\nCommon Patterns\nOpen a page and inspect actions\npinchtab nav https://pinchtab.com && pinchtab snap -i -c\n\nFill and submit a form\npinchtab nav https://example.com/login\npinchtab snap -i -c\npinchtab fill e3 \"user@example.com\"\npinchtab fill e4 \"correct horse battery staple\"\npinchtab click --wait-nav e5\npinchtab text\n\nSearch, then extract the result page cheaply\npinchtab nav https://example.com\npinchtab snap -i -c\npinchtab fill e2 \"quarterly report\"\npinchtab press Enter\npinchtab text\n\nUse diff snapshots in a multi-step flow\npinchtab nav https://example.com/checkout\npinchtab snap -i -c\npinchtab click e8\npinchtab snap -d -i -c\n\nBootstrap an authenticated profile\npinchtab profiles\npinchtab instance start --profile work --mode headed\n# Human signs in once.\nPINCHTAB_URL=http://localhost:9868 pinchtab text\n\nRun separate instances for separate sites\npinchtab instance start --profile work --mode headless\npinchtab instance start --profile staging --mode headless\npinchtab instances\n\n\nThen point each command stream at its own PINCHTAB_URL.\n\nSecurity and Token Economy\nUse a dedicated automation profile, not a daily browsing profile.\nIf PinchTab is reachable off-machine, require a token and bind conservatively.\nPrefer text, snap -i -c, and snap -d before screenshots, PDFs, eval, downloads, or uploads.\nUse --block-images for read-heavy tasks that do not need visual assets.\nStop or isolate instances when switching between unrelated accounts or environments.\nDiffing and Verification\nUse pinchtab snap -d after each state-changing action in long workflows.\nUse pinchtab text to confirm success messages, table updates, or navigation outcomes.\nUse pinchtab screenshot only when visual regressions, CAPTCHA, or layout-specific confirmation matters.\nIf a ref disappears after a change, treat that as expected and fetch fresh refs instead of retrying the stale one.\nPrivacy and Security\n\nPinchTab is a fully open-source, local-only browser automation tool:\n\nRuns on localhost only. The server binds to 127.0.0.1 by default. No external network calls are made by PinchTab itself.\nNo telemetry or analytics. The binary makes zero outbound connections.\nSingle Go binary (~16 MB). Fully verifiable — anyone can build from source at github.com/pinchtab/pinchtab.\nLocal Chrome profiles. Persistent profiles store cookies and sessions on your machine only. This enables agents to reuse authenticated sessions without re-entering credentials, similar to how a human reuses their browser profile.\nToken-efficient by design. Uses the accessibility tree (structured text) instead of screenshots, keeping agent context windows small. Comparable to Playwright but purpose-built for AI agents.\nMulti-instance isolation. Each browser instance runs in its own profile directory with tab-level locking for safe multi-agent use.\nReferences\nCommand surface: commands.md\nCLI overview: cli.md\nProfiles: profiles.md\nInstances: instances.md\nFull API: api.md\nMinimal env vars: env.md\nConfig reference: config.md\nSecurity model: TRUST.md"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/luigi-agosti/pinchtab",
    "publisherUrl": "https://clawhub.ai/luigi-agosti/pinchtab",
    "owner": "luigi-agosti",
    "version": "0.8.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/pinchtab",
    "downloadUrl": "https://openagent3.xyz/downloads/pinchtab",
    "agentUrl": "https://openagent3.xyz/skills/pinchtab/agent",
    "manifestUrl": "https://openagent3.xyz/skills/pinchtab/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/pinchtab/agent.md"
  }
}