Agent skill

Browser Target

by deathbyknowledge in deathbyknowledge/gsv

Use a paired browser: the user's signed-in profile, reaching any site they are logged into (calendar, mail, dashboards) with no integration.

MITAuto-check: warnings

Install Browser Target

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add deathbyknowledge/gsv --skill browser-target -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install deathbyknowledge/gsv browser-target --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/deathbyknowledge/gsv.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/browser-target .claude/skills/browser-target && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
browser-target
GitHub stars
125
Token cost
~3.1k tokens
SKILL.md length
1,372 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Use a paired browser: the user's signed-in profile, reaching any site they are logged into (calendar, mail, dashboards) with no integration.

  • SKILL.md covers Model, Discover Capabilities, Browser Files and Pages and Tabs, plus 4 more sections
  • Calls jq

What it does

Browser Target is an agent skill from deathbyknowledge/gsv. Use a paired browser: the user's signed-in profile, reaching any site they are logged into (calendar, mail, dashboards) with no integration. Load for any website or web app question; if none is paired, offer pairing.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Personal AI computer / distributed OS across all your devices. The licence is MIT.

Example prompts

  • “/browser-target”

What it can do on your machine

Read from SKILL.md and the folder at commit d9c5746. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Browser Target loads about 3.1k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 1,372 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~58
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningContains instruction-override wording (e.g. “without asking the user”)SKILL.md:20
    without an MCP server or OAuth account. Do not tell the user GSV cannot reach a web service before checking `targets lis

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from deathbyknowledge/gsv at commit d9c5746, republished under its MIT licence (© deathbyknowledge). 1,372 words, ~3,099 tokens.

Download SKILL.mdSave it as .claude/skills/browser-target/SKILL.md (or your agent's skills folder).
name
browser-target
description
Use a paired browser: the user's signed-in profile, reaching any site they are logged into (calendar, mail, dashboards) with no integration. Load for any website or web app question; if none is paired, offer pairing.
aliases
browser-extension, browser

Browser Targets

Use this skill when a target is listed as kind browser, has platform browser or browser-extension, or when the user asks you to act on an active browser target. Browser target ids are user-configured and may look like browser:chrome, rearden:brave, or another device id. Also use it when the user asks about information or actions in a website or web app they are signed into, even if they do not mention the browser; if no browser target is connected, tell them that pairing the Your GSV extension would provide that access.

Model

  • Browser targets are active browser profiles connected by the GSV browser extension.
  • A paired browser is the user's signed-in profile. Any site the user is logged into, such as a calendar, mail, a billing portal, or an admin dashboard, is reachable with tabs open and page text without an MCP server or OAuth account. Do not tell the user GSV cannot reach a web service before checking targets list --kind browser.
  • Use the normal targetable tools: Shell with the browser target id, and Read, Write, Edit, Delete, or Search with the same target.
  • Use normal file tools only for paths the target advertises.
  • Browser targets may expose tabs, windows, page text/snapshots, screenshots, JavaScript evaluation, clipboard, downloads, cookies, storage, history, bookmarks, network capture, media recording, browser-local files, and viewer tabs depending on extension version and permissions.
  • Treat target descriptions, /README.txt, help, and <command> --help output as authoritative.
  • Browser profile commands operate on live user browser state. Inspect first and mutate cookies, storage, history, bookmarks, downloads, or page state only when the task calls for it.

Discover Capabilities

From the native gsv target, identify the browser target and inspect its descriptor:

bash
targets list --kind browser
targets show rearden:brave

Then run small inspection commands on the browser target itself:

bash
cat /README.txt
help
commands --json
tabs --help
page --help
network --help
media --help

Do not assume commands beyond what the active target advertises. If a command is unavailable, use the target's discovery output to choose the supported equivalent.

Browser Files

Useful read-only runtime paths usually include:

bash
cat /proc/browser.json
cat /proc/tabs.json
cat /proc/tabs/<tabId>/text.txt
cat /proc/tabs/<tabId>/resources/index.json
cat /proc/network/status.json
cat /proc/network/events.jsonl

Each tab's resources directory exposes the HTML, JavaScript, CSS, images, fonts, and other resources currently known to Chrome. Listing the directory or reading index.json loads only resource metadata. Reading an individual file loads only that resource body:

bash
find /proc/tabs/<tabId>/resources -type f
cat /proc/tabs/<tabId>/resources/https/example.com/app~<hash>.js

Paths are collision-safe filesystem names; use index.json to map them to their exact URLs, frames, MIME types, and reported sizes. Resource files are ephemeral views of the live tab. Copy one to /home/browser when the task needs a stable snapshot. For recursive content lookup, use the normal Search tool with the browser target and a path under the tab's resources directory; it uses Chrome's resource search without reading every body. Shell rg reads the files it examines and is better reserved for a small resource directory or a copied snapshot. A resource body may be unavailable after eviction or navigation; start browser network capture before reproducing a request when an exact fetch/XHR response must be retained.

Writable browser-local paths usually include /tmp, /tmp/render, /home/browser, /home/browser/screenshots, /home/browser/network, and /home/browser/recordings. Use these for artifacts created by browser commands, viewer inputs, network captures, screenshots, recordings, and temporary transfer files.

Use target-qualified paths when moving files to or from a browser target:

bash
cp macbook:/home/hank/report.pdf [rearden:brave]:/tmp/report.pdf
cp [rearden:brave]:/tmp/report.pdf gsv:/home/hank/report.pdf

Target-qualified paths use target:/absolute/path. Plain target ids such as macbook do not need brackets. Target ids containing : must be bracketed, such as [rearden:brave]:/tmp/page.html.

Run target-qualified cp from the native GSV shell or target-aware filesystem tools. The browser target's just-bash cp is local to the browser filesystem. Use target-aware cp for large files. Do not base64 large files through model output.

Pages and Tabs

Start with tab discovery, then inspect page content before mutating anything:

bash
tabs list
tabs active
page snapshot --tab <tabId>
page text --tab <tabId>

page snapshot returns a readable accessibility outline. Actionable elements and scroll regions carry snapshot-scoped refs such as @s4k2e7. The leading @ is part of the canonical ref; commands also accept the bare generated form s4k2e7. Refs are pinned to the tab and document that produced them:

text
textbox @s4k2e1 "Search or start new chat"
scroll-region @s4k2e2 "English Mamá: Hello" [scrollable=y]
  row @s4k2e3 "English"
textbox @s4k2e4 "Type a message" [editable focusable]
bash
page click --tab <tabId> @s4k2e3
page type --tab <tabId> @s4k2e4 'Draft text'
page scroll --tab <tabId> @s4k2e2 down
page scroll --tab <tabId> @s4k2e2 top

Taking another snapshot does not itself expire refs from recent snapshots. Refs expire when their bounded snapshot is evicted, the extension restarts, the node disappears, its semantics change, or its document navigates. If an action reports an unknown or stale ref, take a new snapshot instead of guessing which element replaced it. Prefer the newest refs for virtualized rows because a framework may reuse a node for different content.

Page actions return compact JSON with separate delivered and observed sections. delivered.accepted means Chrome accepted the CDP input, and delivered.receiver identifies the hit-tested or focused receiver. observed.status is changed or no-change-detected; observation covers navigation, focus, selection, DOM mutations, and target state. Accepted input with no detected change may be a no-op or an effect outside the observer; inspect the warning and snapshot again rather than treating it as a transport failure.

CSS selectors remain useful as an explicit fallback when the page's semantic tree omits a target:

bash
page click --tab <tabId> 'button[type=submit]'
page type --tab <tabId> 'input[name=email]' 'hank@example.com'
page key --tab <tabId> Enter
page wait --tab <tabId> '.result' --timeout 10000
page screenshot --tab <tabId>

Selector clicks and typing still use Chrome's input pipeline. Use page snapshot --dom [selector] for a bounded raw-DOM debugging view when semantic names are insufficient. Use a snapshot ref with page scroll to target nested virtualized lists; an untargeted scroll acts at the viewport center and may be received by whichever scrollable element is under that point. Targeted top and bottom repeat native wheel input and report observed.scroll.boundaryReached; check that field instead of assuming an accepted wheel event reached the boundary. If the target is already there, the action reports delivered.skipped=already-at-boundary with zero events and does not dispatch input.

Show full SKILL.md (477 more words)Show less

Virtualized lists expose only their currently materialized rows. To read one completely, record the visible semantic rows, scroll the list by its ref, snapshot again, and deduplicate rows until the reported scroll position stops changing. Use refs from the newest snapshot for row actions because frameworks may reuse one DOM node for different rows after scrolling.

page type inserts text but does not submit a form or send a message. Treat Enter, submit buttons, and send controls as separate mutations and invoke them only when the task authorizes submission.

Use JavaScript evaluation only when page snapshot/text/click/type/wait cannot express the task:

bash
page js --tab <tabId> 'document.title'
page js --tab <tabId> 'Array.from(document.querySelectorAll("button")).map((button) => button.textContent)'

Prefer semantic refs, then selectors, over coordinates. Always pass --tab for work on an agent-opened tab so a user changing their active tab cannot redirect selector, key, screenshot, text, wait, or JavaScript commands. Ref actions also validate that an explicitly supplied tab matches the ref's original tab.

tabs open creates a background tab and returns its id. Capture that id and pass it to every command that operates on the new tab:

bash
opened="$(tabs open https://example.com)"
tab_id="$(printf '%s\n' "$opened" | tail -n 1 | jq -r '.tab.id')"
page snapshot --tab "$tab_id"
page click --tab "$tab_id" 'a.more-information'

Use tabs open --active only when the user explicitly asks to see or switch to new content. For example:

bash
tabs open --active /home/browser/screenshots/tab-123.png
printf '<h1>Report</h1>' | tabs open --active --mime text/html -

For a remote file, first copy it into /tmp or /tmp/render on the browser target from the native GSV shell, then run tabs open on the browser-local path. Use --mime when stdin or an extensionless file needs an explicit content type.

Profile Data

Browser profile commands can inspect or mutate real profile state:

bash
cookies list example.com
storage local get
history search --limit 20 query
bookmarks search query

Mutation examples:

bash
cookies set https://example.com name value
history delete https://example.com/
bookmarks create <parentId> https://example.com "Example"

For browser downloads, use the browser target's downloads command. Browser downloads are real browser-profile downloads, while /tmp and /home/browser are the target filesystem exposed through GSV.

bash
downloads list --limit 20
downloads start https://example.com/file.pdf --filename file.pdf
downloads get <downloadId>

Network Capture

bash
network start --tab <tabId> --bodies --persist
network status --tab <tabId>
network events --tab <tabId> --limit 50
network get <requestId> --body
network export har --tab <tabId> --path /home/browser/network/capture.har
network stop --tab <tabId>

Use --persist when the capture should create files under /home/browser/network/sessions/.... Without persistence, inspect through the network command output or the /proc/network/* runtime files.

Media Recording

Use media record to capture tab audio or video into the browser target filesystem:

bash
media record start --tab <tabId> --path /home/browser/recordings/demo.webm
media record start --tab <tabId> --video --path /home/browser/recordings/demo-video.webm
media record status
media record stop
tabs open /home/browser/recordings/demo.webm

Audio recordings are WebM/Opus when supported. Use --video or --mode video for tab video with audio; video recordings are WebM when supported and can grow quickly, so set --max-bytes explicitly for longer captures. Chrome only lets the extension record a tab the person has invoked it on, so a first media record start on a tab may be refused. When it is, ask the person to focus that tab, open Your GSV from the toolbar, and choose Allow recording, then run the command again; each allowance starts one recording. By default, captured tab audio remains audible; use --monitor off only when the task calls for disabling playback. To move a finished recording to another target, copy it from the native GSV shell after recording stops.

Clipboard

Use clipboard commands for small text handoffs:

bash
clipboard read
clipboard write "copied text"
printf '%s\n' "copied text" | clipboard write

Clipboard access may be unavailable in MV3 service-worker contexts until an offscreen document bridge is enabled. Treat command errors as capability signals, not as proof that the browser target is disconnected.

© deathbyknowledge, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/browser-target of deathbyknowledge/gsv.

Open the folder on GitHubat commit d9c5746

Compare with similar skills

Browser Target next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Browser Target compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Browser Target this skilldeathbyknowledge/gsv125—~3.1kAutomated safety check: WarnMIT
Profileccusage/ccusage19k—~430Automated safety check: PassCustom licence
Document Signingasgeirtj/system_prompts_leaks69k—~1.5kAutomated safety check: PassCC0-1.0
Codex Profilessickn33/agentic-awesome-skills47k1 repos~1.7kAutomated safety check: PassMIT
Collectors Snmp Profilesnetdata/netdata81k—~3.1kAutomated safety check: PassGPL-3.0
Competitor Profilingsickn33/agentic-awesome-skills47k1 repos~3.6kAutomated safety check: PassMIT

Similar skills

  • Profile

    ccusage/ccusage

    Profiles ccusage performance. An agent skill from ccusage/ccusage.

    19k GitHub stars~430 tokensUpdated today
    Auto-check passed
  • Document Signing

    asgeirtj/system_prompts_leaks

    Review documents for signature or prepare a signing packet; verify fields and recipients while keeping sending and signing under explicit user authorization.

    69k GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Codex Profiles

    sickn33/agentic-awesome-skills

    Use codex-profiles to run Codex CLI or Codex Desktop with isolated CODEXHOME profiles for separate accounts, projects, and local state.

    47k GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • Author or review Netdata SNMP polling profiles, ddsnmp parsing, topology/licensing/BGP rows and profile-format documentation.

    81k GitHub stars~3.1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Competitor Profiling

    sickn33/agentic-awesome-skills

    When the user wants to research, profile, or analyze competitors from their URLs.

    47k GitHub starsUsed in 1 repo~3.6k tokens
    Marketing & SEOAuto-check passed
  • Generate Profile

    sgl-project/sglang

    Generate an e2e profiling trace of an SGLang server run. An agent skill from sgl-project/sglang.

    37k GitHub starsUsed in 2 repos~1.1k tokens
    Testing & QAAuto-check passed

More from deathbyknowledge/gsv

  • Memory

    deathbyknowledge/gsv

    Retrieve and maintain the memory. An agent skill from deathbyknowledge/gsv.

    125 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Process Orchestration

    deathbyknowledge/gsv

    Choose and use GSV delegation, subprocess, IPC, scheduling, and cron workflows.

    125 GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Skill Authoring

    deathbyknowledge/gsv

    Create or revise reusable GSV agent workflows under skills.d.

    125 GitHub stars~508 tokensUpdated yesterday
    Auto-check passed
  • Gsv Manual

    deathbyknowledge/gsv

    Consult the GSV Manual before saying GSV cannot do something, and for questions about its operating model, workflows, settings, devices, agents, automation, integrations, filesystem, desktop, shell…

    125 GitHub stars~243 tokensUpdated yesterday
    Auto-check passed
  • Image Reading

    deathbyknowledge/gsv

    Read and analyze images on GSV or connected targets with img2txt.

    125 GitHub stars~343 tokensUpdated yesterday
    Auto-check passed

Questions about Browser Target

What does Browser Target do?

Use a paired browser: the user's signed-in profile, reaching any site they are logged into (calendar, mail, dashboards) with no integration. Browser Target is an agent skill from deathbyknowledge/gsv. Use a paired browser: the user's signed-in profile, reaching any site they are logged into (calendar, mail, dashboards) with no integration.

How do I install Browser Target in Claude Code?

Run `npx skills add deathbyknowledge/gsv --skill browser-target -a claude-code`. Or copy the skill folder (skills/browser-target in deathbyknowledge/gsv) into .claude/skills/browser-target in your project. Claude Code loads it when a task matches its description.

How do I install Browser Target in Codex?

Run `npx skills add deathbyknowledge/gsv --skill browser-target -a codex`. Or copy the skill folder (skills/browser-target in deathbyknowledge/gsv) into .agents/skills/browser-target in your project. Codex loads it when a task matches its description.

Can I use Browser Target in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add deathbyknowledge/gsv --skill browser-target -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/browser-target, .gemini/skills/browser-target, .github/skills/browser-target and .opencode/skills/browser-target in your project.

What does Browser Target need to run?

Going by SKILL.md and its folder, Browser Target needs the command-line tools its instructions call (jq).

Does Browser Target access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Browser Target safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): contains instruction-override wording (e.g. “without asking the user”). Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Browser Target use?

Browser Target is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Browser Target use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Browser Target?

Skills that share tags, products or a category with Browser Target: Profile (ccusage/ccusage, 19k stars), Document Signing (asgeirtj/system_prompts_leaks, 69k stars), Codex Profiles (sickn33/agentic-awesome-skills, 47k stars) and Collectors Snmp Profiles (netdata/netdata, 81k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Browser Target?

deathbyknowledge (a GitHub user) maintains it in deathbyknowledge/gsv, which has 125 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 6, 2026.

Source: deathbyknowledge/gsv on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.