Skills jackwener opencli

opencli-browser

Use it when:
A one-off task needs a real web page, including a site you're signed in to.
It does:
Lists a page's interactive elements, then clicks, types, fills, uploads, extracts, screenshots or runs JavaScript, one opencli command at a time.
Also does:
Captures the page's network requests, finds likely API calls in its scripts, and manages native Chrome tabs, windows and tab groups.
Needs:
The opencli CLI connected to Chrome; opencli doctor diagnoses the connection.
Not for:
Reusable site commands, which OpenCLI's opencli-adapter-author skill writes.

Works in your own Chrome, so it can act on the sites you're signed in to.

TL;DR

The OpenCLI project's skill for browsing with an agent. Page work happens in a named session, so separate tasks don't touch each other's tabs, and a profile flag picks the Chrome profile. The state command returns the URL and the page's interactive elements with refs, and actions target a ref, a CSS selector or flags such as role, name, label, text or test ID. fill replaces a field and checks its value, eval runs JavaScript in the page and can change it, wait holds for a request, selector, text or download, and frames and tabs are covered too. bind attaches the tab you already have open: the agent can navigate it but can't open, switch or close tabs. For data, network lists captured requests with their response shapes, and a static mode scans loaded scripts for candidate API calls without running them, which it treats as unproven. Native Chrome calls such as tabs.query or tabGroups.update need no session, and the tabs and windows they create stay open. Every command returns JSON with ok and data, or an error with a code and a hint; when a write's outcome is unknown, the agent checks the page before retrying.

Summarizes the skill at 36bbbd7.

npx skills add https://github.com/jackwener/opencli --skill opencli-browser
Total Downloads
20,600 on skills.sh, Nov 9, 2026
Repo stars
30,974 jackwener/opencli
First seen
Apr 8, 2026 on skills.sh
Weekly Downloads
231
-9% over the 8 weeks to Nov 9
Weekly values
Week toInstalls
Sep 21255
Sep 28273
Oct 5223
Oct 12241
Oct 19300
Oct 26297
Nov 2251
Nov 9231
Category

Drive browsers, scrape pages and search the web.

Everything for building software: planning, coding, debugging, design, frameworks, cloud, agents and skills.

Type

Operates a CLI, API, app or bundled script to get something done.

Effect

Its own steps change something outside your machine: post, send, deploy, provision, file issues, drive a website, or upload data to a service.

Needs

A specific command-line tool or desktop app must be installed, such as gh, agent-browser, LibreOffice, Obsidian or a vendor CLI.

Drives a real Chromium or Chrome browser.

Publisher

A verified publisher on skills.sh, or the company or maintainer behind the product the skill operates.

Topics
Stack

SKILL.md

From jackwener/opencli at 36bbbd7. Checked daily, last changed Nov 6, 2026.

Frontmatter
name: opencli-browser
description: Drive Chrome with OpenCLI to inspect pages, interact with logged-in sites, capture API evidence, and manage native tabs, groups and windows. For reusable adapters, see opencli-adapter-author.
allowed-tools: Bash(opencli:*), Read, Edit, Write

Browser tools for agents

Use the capability that fits the task. Discover commands with opencli list <query>; read exact arguments with opencli browser <command> --help -f json. Run opencli doctor when diagnosing a connection problem.

Scope and results

Page commands require --session <name>. Reuse that name across a task; different sessions isolate page work. --profile <name> selects a Chrome profile when needed. Options can follow command arguments:

opencli browser open https://example.com --session research
opencli browser state --session research
opencli browser click --role button --name Search --session research
opencli browser close --session research

Default output is one JSON value: { "ok": true, "data": ... }. Failures return { "ok": false, "error": { "code": "...", "message": "...", "hint": "..." } } and a nonzero exit code. Diagnostic logs go to stderr. network --follow and console --follow stream one envelope per line. Help, version and shell completion are inspection/export surfaces; structured help uses --help -f json.

Read the returned data and error fields. When error.outcome is unknown, inspect the affected state before retrying a write.

Page targets and interaction

  • state returns URL and interactive element refs. --diagnostics also reports page title and available initial-state globals; --source ax selects the AX tree.
  • find locates elements. Interaction targets accept a ref, CSS selector, or semantic flags such as --role, --name, --label, --text, --testid.
  • Use --nth to resolve deliberate multiple matches. On stale refs, read fresh state or locate the element again; refs describe the observed page.
  • fill replaces a field and verifies its value; type types text. Other actions include click, select, check, upload, drag, keys and dialog.
  • get text|value|attributes|html, extract, screenshot and eval expose page data. eval executes JavaScript in the page and can mutate state.
  • wait xhr|selector|text|download observes an expected condition. Consult help for timeouts and matching rules.
  • tab list|new|select|close manages session tabs. --tab accepts the page identity returned by these commands; these are different from numeric native Chrome IDs.
  • frames lists frame targets; eval --frame evaluates in a selected frame.

bind --session research attaches the current user tab. Bound sessions permit navigation but block tab creation, selection and closure. unbind releases the binding without closing the user tab. Owned sessions keep leased tabs until close or idle expiry. --window foreground|background controls owned windows.

Network and scripts

opencli browser network --session research
opencli browser network --detail RequestKey --session research
opencli browser network --static --session research

network returns captured request keys and response shapes. --detail reads a cached request; --filter selects shapes; --raw exposes response bodies. --static adds Acorn AST candidates from loaded scripts, with source locations, methods, query/body parameter names and observed request evidence. EXPR means an unresolved expression. Static candidates are not executed or proven APIs. Check analysisComplete, script errors, omitted scripts and networkSource. An empty live capture can reuse a recent cache; reported provenance distinguishes it.

Native Chrome management

Native calls need no session and do not attach a page:

opencli browser chrome describe
opencli browser chrome describe tabs.group
opencli browser chrome call tabs.query '[{}]'
opencli browser chrome call tabs.group '[{"tabIds":[123,456],"createProperties":{"windowId":10}}]'
opencli browser chrome call tabGroups.update '[789,{"title":"Research","color":"blue"}]'

Use numeric IDs returned by Chrome, replacing the example IDs. describe lists supported methods, signatures, live permissions and official documentation. Native-created tabs/windows persist. Mutations touching active OpenCLI session tabs or managed groups return managed_resource_conflict; ordinary groups can be created, renamed, recolored, moved and dissolved with tabs.ungroup.