agentCLAWHUBUnverified

qqbrowser-use

Browser automation CLI for AI agents. Use when: (1) open, navigate, or interact with a website (fill forms, click, screenshot, download, inspect); (2) extract structured data; (3) analyze already-open tabs without a new tab; (4) record, save, or reuse a browser task (保存为脚本, 录一下, 下次还要用); (5) run an e

OpenClaw

Rank

62

Safety

84

Downloads

2.4k

Updated

Oct 9, 2026

Version

1.0.16

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 2.4K 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
2.4K downloadsadoption · observed Oct 9, 2026
Latest release
1.0.16release · observed Sep 4, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s176q3k9be21zw234290c9m50x83h6xy:qqbrowser-skill
  1. Install using `clawhub skill install s176q3k9be21zw234290c9m50x83h6xy:qqbrowser-skill` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/qqbrowserteam/qqbrowser-skill before using production credentials.

Contract: missing

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

Documentation

CLAWHUB

148,329 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: qqbrowser-use
description: "Browser automation CLI for AI agents. Use when: (1) open, navigate, or interact with a website (fill forms, click, screenshot, download, inspect); (2) extract structured data; (3) analyze already-open tabs without a new tab; (4) record, save, or reuse a browser task (保存为脚本, 录一下, 下次还要用); (5) run an existing playbook. Fallback when web_fetch hits captcha (wappoc)/login/empty SPA. Do NOT use for HTML/CSS/JS questions without a browser task, or bookmarks/history."
source: https://pypi.org/project/qqbrowser-skill/
homepage: https://browser.qq.com/
permissions:
  - network: Required for browser navigation and web page interaction
  - filesystem: Required for downloading files and saving screenshots to temporary directories
---
# qqbrowser-use

Browser automation CLI for AI agents. Wraps every task in an isolated Chrome Tab Group, supports both live automation and reusable playbook replay.

## Platform Support

Linux x86_64, Windows, macOS. Other Linux architectures (ARM, etc.) are not supported.

## Installation

```bash
# Linux / macOS
pipx install qqbrowser-skill
qqbrowser-skill install   # Download and install QQ Browser

# Windows
pip install qqbrowser-skill
qqbrowser-skill install
```

## Quick Start

```bash
qqbrowser-skill browser_start_session --sessionId task-demo-001 --initialUrl https://example.com
qqbrowser-skill playbook_list                          # Check existing playbooks first
qqbrowser-skill browser_snapshot                       # Get elements with encoded indices
qqbrowser-skill browser_click_element --index "<index-from-snapshot>"
qqbrowser-skill browser_end_session --sessionId task-demo-001
```

---

## Commands

### Session Management

```bash
browser_start_session --sessionId <id> [--title "<title>"] [--color <color>] [--initialUrl <url>]
browser_end_session --sessionId <id>
browser_attach_session --tabIds "[<tabId1>,<tabId2>]" [--primaryTabId <id>] [--sessionId <id>] [--focus]
```

> `--initialUrl`: 启动会话时直接导航到指定 URL,省去单独调用 `browser_go_to_url` 的步骤。如果提供了该参数,会话创建后会自动打开对应页面。
>
> Isolation mode is fixed to `enforce` — `browser_start_session` does not accept an `--isolation` flag.
>
> `browser_attach_session`: 接管**已打开**的 tab 作为 AI 会话的交互对象(click / input / scroll / keys),补齐 `browser_start_session` 必然新建 tab 无法覆盖的场景。**前置步骤:标签的 `tabId` 无法凭空猜测或构造,必须先调用 `browser_tab_list` 获取当前打开标签的 `tabId`,再将返回的 `tabId` 作为 `--tabIds` 传入。** 仅需读取页面文本时改用 `browser_get_tab_content`(无需 session、无需激活、无需切换)。不传 `sessionId` 时由服务端生成并回传。

### Navigation

```bash
browser_go_to_url --url <url>
browser_go_back
browser_wait --seconds <n>              # Default 3s
```

### Snapshot & Screenshot

```bash
browser_snapshot                        # Element indices (for interaction)
browser_snapshot --markdown             # Markdown (for reading)
browser_screenshot [--full] [--annotate]
```

**`browser_snapshot --markdown`** returns clean Markdown of the page (ads/nav/scripts stripped, no element indices). Use it when AI needs to read/summa

_meta.json

{
  "ownerId": "kn7bs8sams491bgqkftm23qam18378rw",
  "slug": "qqbrowser-skill",
  "version": "1.0.16",
  "publishedAt": 1788509448241
}

references/commands-extended.md

# Command Extended Reference

> Load this file when you need the detailed usage guide for `browser_snapshot --markdown` or the `browser_replay` output format.
>
> For command syntax signatures, see the main [SKILL.md](../SKILL.md#commands).

---

## 📖 `browser_snapshot --markdown`: Usage Guide

`--markdown` returns clean, human-readable Markdown of the page (ads/nav/scripts stripped, **no element indices**). It is designed to feed page content **into the AI's context for reading**, not to drive further browser commands.

**✅ Use it when:**

- **Reading / summarizing** page content (articles, docs, search results, product detail pages)
- **One-off Q&A** about a page ("what does this article say?", "summarize this doc")
- Running in **non-recording mode (Branch C)** — the output is consumed by the AI once and discarded

**❌ Do NOT use it when:**

- Inside `task_begin` / `task_end` (**recording mode, Branch B**) — Markdown output is a text snapshot and cannot be reliably replayed
- You need **structured data** (JSON, specific fields, machine-consumable output) → use `browser_eval_content_js`
- You need to **iterate** over a list, paginate, or extract many items → use `browser_eval_content_js` + `browser_find_and_act`
- You need to **click / input / interact** with elements → use `browser_snapshot` (default mode, returns indices)

**Rule of thumb:** `--markdown` output goes to the **AI's eyes** (read once, then discarded). If the output needs to be consumed by **code, a playbook, or a later step**, use `browser_eval_content_js` instead.

---

## `browser_replay` Output Format

```json
{
  "success": true,
  "total_steps": 5,
  "completed_steps": 5,
  "step_results": [
    {
      "index": 0,
      "action": "browser_go_to_url",
      "description": "...",
      "success": true,
      "result": "Success! Navigated to ..."
    },
    {
      "index": 1,
      "action": "browser_eval_content_js",
      "description": "提取数据",
      "success": true,
      "result": "{\"title\":\"...\",\"content\":\"...\"}"
    }
  ],
  "duration_ms": 12345,
  "summary": "Replay completed successfully: 5/5 steps in 12345ms."
}
```

**How to use the output (especially for composite tasks):**

- `success`: Check overall success/failure. If `false`, check `failed_step` for error details.
- `step_results[N].result`: Contains the return value of each step. **For `browser_eval_content_js` steps, this is the extracted data (usually JSON string)** — parse it for use in subsequent AI processing or next playbook's variables.
- For composite pipelines: find all `eval_content_js` steps in `step_results`, parse their `result` field to get structured data for AI mediation.

---

## If `browser_replay` Returns Failure

When replay finishes with `success: false`:

- Inspect `failed_step`, `summary`, and the failed entry in `step_results` before deciding the next action.
- Do **not** immediately retry the same replay on a live target.
- Do **not** automatically fall back to manual executi

references/playbook.md

# Playbook Guide

> Complete reference for recording, generating, editing, and replaying `qqbrowser-skill` playbooks.
>
> Load this file when the user asks to **record**, **save**, **reuse**, **generate**, **edit**, or **run** a browser automation playbook.

## Scope

A playbook is a parameterized JSON script generated from a real browser task recording. It lets future runs replay the same browser workflow without AI deciding every click again.

This guide covers the full Branch B lifecycle:

```text
explicit user request to record/save/reuse
  ↓
task_begin / browser operations / task_end
  ↓
task_latest
  ↓
convert recording into playbook JSON
  ↓
save under ~/.qqbrowser-skill/playbooks/
  ↓
verify safely with browser_replay
```

Main workflow constraints from `SKILL.md` still apply:

- Start `browser_start_session` before any browser operation.
- Run `playbook_list` before manual automation.
- Enter Branch B only when the user explicitly asks to record/save/reuse.
- End with `browser_end_session` even on failure.

---

## Branch B Recording Rules

> These rules apply **only inside `task_begin` / `task_end`**. They exist to make the recording clean enough to become a reusable playbook.
>
> In one-off Branch C tasks, exploratory trial-and-error, hardcoded indices, ad-hoc selectors, and multiple probes are acceptable because no reusable playbook will be generated.

### Rule 1: Task Classification

| Category | Replayable? | Strategy |
|---|---:|---|
| **A: Fixed-path** — navigate, click, fill | ✅ | Standard replayable browser commands |
| **B: Data extraction** | ⚠️ | Use `browser_eval_content_js` for replayable structured output |
| **C: Content understanding** — summarization, judgment, comparison | ❌ | Set `metadata.requires_ai: true`; include only replayable portions |
| **D: Dynamic iteration** — lists, search results, pagination | ⚠️ | Record stable selector and enough repeated iterations to convert to `loop` |

### Rule 2: Data Extraction — Prefer JS in Recordings

Inside `task_begin` / `task_end`, extract data with `browser_eval_content_js`, not `browser_snapshot --markdown`.

`browser_snapshot --markdown` is useful for AI reading in one-off tasks, but it is not a replayable structured extraction step.

```bash
# ✅ Replayable structured extraction
browser_eval_content_js --script "JSON.stringify(Array.from(document.querySelectorAll('.item')).slice(0,10).map(el=>({title:el.querySelector('.title')?.textContent?.trim()})))"
```

### Rule 3: Analyze First, Execute Once

Do not perform trial-and-error inside a recording. Use `browser_snapshot` to inspect the page, then execute one definitive operation.

**Prohibited inside `task_begin` / `task_end`:**

- Multiple `browser_eval_content_js` attempts with different guessed selectors.
- Hardcoding element indices inside JavaScript scripts.
- Using regular expressions on page text as the main selector strategy.

If the recorded path is wrong, call `task_end`, discard the bad recording, and re-record

references/session-lifecycle.md

# Session Lifecycle

> Load this reference when you need the full rules for `browser_start_session` / `browser_attach_session` / `browser_end_session`, when handling **composite tasks**, or when **analyzing already-open tabs**.

## Why Sessions Are Mandatory

AI agents MUST wrap every **new browser task** with `browser_start_session` / `browser_end_session` — or, when taking over tabs that are **already open**, with `browser_attach_session` / `browser_end_session`. The extension creates a dedicated **Chrome Tab Group** as the AI workspace, isolating the task from the user's other tabs and letting the user review the AI's work after the task ends (the tab group is preserved on `end_session`).

> **Do NOT use `browser_start_session` when the user only wants to analyze already-open tabs.** `browser_start_session` always creates a new tab inside a new Chrome Tab Group — the command does not operate on the tabs the user already has open. For already-open tabs, use `browser_get_tab_content` (content-only) or `browser_attach_session` (deep analysis) instead — see [Analyzing Existing Tabs](#analyzing-existing-tabs).

## Hard Rules

- **Always start with `browser_start_session`** (or `browser_attach_session` when the task must operate on already-open tabs — see [Attaching Existing Tabs](#attaching-existing-tabs-browser_attach_session)), before any other `browser_*` command. Calling other commands without an active session is **forbidden** — it will mix AI-driven tabs with the user's personal browsing.
- **Isolation mode is fixed to `enforce`** and is no longer configurable from the client side — `browser_start_session` does not accept an `--isolation` flag. Every AI task automatically runs in the enforced Tab Group isolation mode.
- **Always call `browser_end_session`** when the task finishes (success, failure, or early exit), so the in-memory mapping is released cleanly.
- **One `sessionId` per task.** Generate a unique, stable ID per task and do **not** reuse it across unrelated tasks. Recommended format: `task-<purpose>-<counter>` (e.g. `task-form-001`, `task-extract-002`). UUIDs or other stable unique strings also work.

## Command Syntax

```bash
browser_start_session --sessionId <id> [--title "<title>"] [--color <color>] [--initialUrl <url>]
browser_attach_session --tabIds "[<tabId1>,<tabId2>]" [--primaryTabId <id>] [--sessionId <id>] [--focus]   # tabIds come from browser_tab_list — see below
browser_end_session --sessionId <id>
```

Optional flags for `browser_start_session`:

| Flag | Default | Notes |
|------|---------|-------|
| `--title` | `"AI: <first 8 chars of sessionId>"` | Shown as the tab group title |
| `--color` | `blue` | One of: `blue`, `red`, `green`, `yellow`, `grey`, `pink`, `purple`, `cyan`, `orange` |
| `--initialUrl` | `about:blank` | Page to open in the first tab |

Example:

```bash
qqbrowser-skill browser_start_session --sessionId task-demo-001 \
    --title "AI: research" --color blue \
    --initialUrl https://www.baidu.co
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/qqbrowserteam/skills/qqbrowser-skill",
      "sourceUrl": "https://clawhub.ai/qqbrowserteam/skills/qqbrowser-skill",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T14:59:01.131Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-qqbrowserteam-qqbrowser-skill/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-qqbrowserteam-qqbrowser-skill/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-09T14:59:01.131Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "2.4K downloads",
      "href": "https://clawhub.ai/qqbrowserteam/qqbrowser-skill",
      "sourceUrl": "https://clawhub.ai/qqbrowserteam/qqbrowser-skill",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T14:59:01.131Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "1.0.16",
      "href": "https://clawhub.ai/qqbrowserteam/qqbrowser-skill",
      "sourceUrl": "https://clawhub.ai/qqbrowserteam/qqbrowser-skill",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-09-04T08:10:48.241Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-qqbrowserteam-qqbrowser-skill/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-qqbrowserteam-qqbrowser-skill/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 1.0.16",
      "description": "**Summary:** Added tab attachment and tab group management features; expanded tab commands; improved documentation. - Added `browser_attach_session` command to manage already open tabs and attach them to AI browser sessions. - Added tab group management commands: `browser_tabgroup_create`, `browser_tabgroup_list`, `browser_tabgroup_get`, `browser_tabgroup_update`, `browser_tabgroup_add_tabs`, `browser_tabgroup_remove_tabs`. - Expanded tab management with `browser_tab_reload` and `browser_get_tab_content` commands. - Enhanced documentation, especially around session management and tab handling. - Updated skill description and command usage instructions for clarity and completeness.",
      "href": "https://clawhub.ai/qqbrowserteam/qqbrowser-skill",
      "sourceUrl": "https://clawhub.ai/qqbrowserteam/qqbrowser-skill",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-09-04T08:10:48.241Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 9, 2026.

Sponsored

Ads related to qqbrowser-use and adjacent AI workflows.