ha-browser

ha-browser is a skill for Claude Code from shiwenwen/hope-agent. It costs 140 tokens per session (3,156 once invoked), scanned A, original, MIT.

A browser-control guide for Hope Agent, including a fixed process for checking browser status, viewing tabs, inspecting pages, and taking actions. It also explains how to recover from changed pages and login, verification, or permission blocks.

In plain words
What is it for?
Use it when opening, clicking, typing in, inspecting, or collecting information from websites, especially in the user’s existing Chrome session.
Why use it?
It reduces mistakes caused by acting on an unknown browser state or using outdated page references. It also makes blocked browser tasks fail safely.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Good fit Use it when opening, clicking, typing in, inspecting, or collecting information from websites, especially in the user’s existing Chrome session.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/shiwenwen/hope-agent/ha-browser
About the project

Hope Agent is a cross-device personal AI assistant that remembers context, uses tools, and continues working toward goals through dynamically organized workflows. Individuals use it from desktop, web, server, or messaging environments to manage projects, knowledge, designs, and long-running tasks. The catalogue add-ons extend its agent workflows and capabilities.

shiwenwen/hope-agent · 1,589 stars · on GitHub

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add shiwenwen/hope-agent --skill ha-browser
Clone the repo
git clone --depth 1 https://github.com/shiwenwen/hope-agent

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ha-browser

README.md
[![agentmods](https://agentmods.dev/badge/skills/shiwenwen/hope-agent/ha-browser/github.svg)](https://agentmods.dev/skills/shiwenwen/hope-agent/ha-browser)
Your own site
<a href="https://agentmods.dev/skills/shiwenwen/hope-agent/ha-browser"><img src="https://agentmods.dev/badge/skills/shiwenwen/hope-agent/ha-browser/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for ha-browser

Your own site · 80×15
<a href="https://agentmods.dev/skills/shiwenwen/hope-agent/ha-browser"><img src="https://agentmods.dev/badge/skills/shiwenwen/hope-agent/ha-browser.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 140 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,156 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 2 findings, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high YARA Match · line 28
    YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
    Fix: Remove the malware payload or compromised file entirely. Investigate how it entered the skill and audit all other artifacts for additional indicators of compromise.
  • medium Output Handling · line 32
    Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.
    Fix: Set explicit limits on output length, generation count, and rate. Use max_tokens and truncation to prevent unbounded output.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00140 $0.03156
Opus 5 $0.00070 $0.01578
Sonnet 5 $0.00028 $0.00631
Haiku 4.5 $0.00014 $0.00316

Measured 11d ago against content hash 7ee93b9dd20f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

ha-browser scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- **API call** → if the site has an API and you can hit it with `exec curl` or `web_fetch`, do that — no browser needed.
skills/ha-browser/SKILL.md · 221 lines

How it starts

The opening of the file, as written. The whole thing — 221 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Hope Agent Browser — operating loop

The browser tool exposes 8 high-level actions. Default backend is Hope Agent's Chrome Extension + Native Messaging Host, which can control the user's real Chrome tabs after they install the extension and native host. If the extension is unavailable, generic browsing can fall back to the managed/user_attach CDP backend, but real Chrome tab/session tasks must fail closed and ask the user to install or enable the extension.

The standard loop

Run these in order; never skip a step. Browsers are stateful — assumptions get punished.

1. browser(action="status")            # never operate blindly
2. browser(action="tabs",  op="list")  # know what's open before opening more
3. browser(action="tabs",  op="new", url=...)  # only if you actually need a fresh tab
4. browser(action="snapshot", format="role")    # get fresh refs
5. browser(action="act", kind=..., ref=..., ...)
6. when in doubt → re-snapshot

When the user explicitly asks for their current Chrome, an already-open tab, their logged-in session, or browser extensions/cookies from their daily Chrome, use tabs.open_user_tabs and tabs.claim first. Do not launch a managed CDP profile and pretend it is the user's Chrome.

Real Chrome access uses the normal Hope Agent tool approval flow. tabs.open_user_tabs, tabs.claim, extension numeric-id tabs.select, observe.kind=downloads, control.download_cancel, and control.raw_cdp may ask unless the session policy, AllowAlways, Smart mode, or YOLO allows them.

A typical "fill the login form" flow is:

status → tabs.list → (already on the right tab? if not, tabs.select / tabs.new)
       → navigate.go url="https://app.example.com/login"
       → snapshot format=role           # capture refs
       → act kind=fill   ref=<email>   text="me@..."
       → act kind=fill   ref=<password> text="..."
       → act kind=click  ref=<submit>
       → snapshot format=role           # re-snapshot after navigation
       → verify expected element exists

Read the full file on GitHub · 221 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 221 lines · 140 tokens per session scan A 7ee93b9dd20f

Subscribe to this mod's changes

ha-browser is a skill published in the GitHub repository shiwenwen/hope-agent (1,589 stars, last pushed 2d ago), licensed MIT. It adds 140 tokens to every session and 3,156 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

browser

Headless web browsing: navigation, page inspection, interaction, data extraction, screenshots, PDFs, and browser session management.

pioneerdotai/pioneer · 26 tokens

web-access

A method for handling difficult web tasks across search, page fetching, and a real browser. It covers sites that need login sessions, dynamic pages, anti-bot handling, or exploration before their structure is understood.

open-octo/octo-agent · 139 tokens

memory

Use this skill when Pioneer should proactively use durable memory or recalled context: decide whether memory can improve a turn, answer from remembered user/project facts, request memory tools, search/list/get stored memories, save durable preferences or project decisions, forget memories, audit or clean up memory, or…

pioneerdotai/pioneer · 64 tokens

subagents

Use this skill when Pioneer should delegate current-turn work to attached task-backed subagents, coordinate parallel child agents, wait for child results, review/revise/accept/cancel/detach attached work, or synthesize accepted child results into the parent answer.

pioneerdotai/pioneer · 54 tokens

playwright

Use when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via playwright-cli or the bundled wrapper script.

netease-youdao/LobsterAI · 45 tokens

tasks

Use this skill when Pioneer should create, inspect, update, reschedule, pause, resume, troubleshoot, or configure delivery for durable tasks, scheduled tasks, recurring tasks, interval tasks, cron jobs, background work, or existing task state.

pioneerdotai/pioneer · 50 tokens