Skip to content
Agentmart
Submit a tool

opencli

Read or act on websites through the user's real, logged-in Chrome via the `opencli` CLI.

Skill by legibet

IndexedMIT
Write a review

Chalk Labs

Need help deploying opencli?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/legibet-opencli

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Read or act on websites through the user's real, logged-in Chrome via the `opencli` CLI. Use when a task touches a specific site's content or the user's account there (知乎, Reddit, 小红书, X, B站…), when a page needs login or blocks plain fetching, or when a page must be clicked, filled, or extracted interactively.

Use cases: writing, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/opencli

What's inside

Skill name
opencli
Description
Read or act on websites through the user's real, logged-in Chrome via the `opencli` CLI. Use when a task touches a specific site's content or the user's account there (知乎, Reddit, 小红书, X, B站…), when a page needs login or blocks plain fetching, or when a page must be clicked, filled, or extracted interactively.
License
MIT
Instructions
62 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# opencli — websites through the user's Chrome

`opencli` runs inside the user's everyday Chrome through an extension, so every request carries their real login, cookies, and browser fingerprint. Two layers:

- **Adapters**: `opencli <site> <command>`, deterministic commands that return structured data, mostly by calling the site's own API from inside the page.
- **Browser primitives**: `opencli browser <session> <command>`, to open, read, click, and type on any page.

Public pages with no login or anti-bot wall are cheaper through plain fetching; reach for opencli when one of the description's cases holds.

## Pick one layer

List the site's adapters first. If one covers the task, use it and you are done; most tasks on a covered site end here. Drive the page with browser primitives only for what no adapter covers.

## Adapters

```bash
opencli list -f json | jq -r '.[] | select(.site=="zhihu") | "\(.name)\t\(.access)\t\(.description)"'
opencli zhihu question --help        # args, defaults, output columns
opencli zhihu question 2087643546463613137 --limit 5 -f json
```

- Site keys are slugs like `xiaohongshu`, `twitter`, `bilibili`; list them with `opencli list -f json | jq '[.[].site] | unique'`.
- Pass `-f json` on every adapter call.
- Adapters open and close their own background tab; nothing to clean up.

## Browser primitives

```bash
opencli browser t open "https://example.com/list" --window background
opencli browser t wait selector ".item" --timeout 15000
opencli browser t find --css ".item a" --limit 10        # refs, text, attrs
opencli browser t eval "(() => [...document.querySelectorAll('.item')].map(e => ({title: e.querySelector('h2')?.textContent.trim(), href: e.querySelector('a')?.href})))()"
opencli browser t click 12                               # ref from find/state, or a CSS selector
opencli browser t wait selector ".detail"
opencli browser t extract --chunk-size 8000              # page as markdown; loop on next_start_char
opencli browser t close
```

- One session name per task; reuse it across calls so the tab persists, and `close` it when done.
- `--window background` keeps the work out of the user's way; drop it when the user wants to watch.
- To work in a tab the user already has open (a page they logged into or set up), `bind` the session instead of `open`, and `unbind` at the end. opencli never closes a bound tab.
- Read with targeted queries: `find --css` for elements and refs, `eval` for structured data, `extract` for long text. Use `state` only on light pages or when you need the whole page's ref map: on heavy pages (Reddit, web-component UIs) it exceeds 60k tokens.
- After any navigation or page-changing action, `wait` before reading again; refs from the previous page are void.
- `eval` is for reading; make changes with `click`, `type`, `fill`, `select`, `keys`.
- `network` lists the JSON the page fetched (`--detail <key>` for one body). It pays off on API-driven SPAs; server-rendered pages have no data requests to capture.
- Per-command flags: `opencli browser <s> <command> --help`.

## Writes act on the user's real accounts

Adapter commands with `access: write` (post, comment, reply, like, follow, favorite, subscribe, delete…) and any browser action that submits, posts, or sends act publicly as the user. State exactly what will happen and get the user's confirmation before running one. Reads need no confirmation.

## Failures

| Signal | Meaning | Do |
|---|---|---|
| exit 69 | Browser bridge not connected | Run `opencli doctor` and relay its fix to the user. |
| exit 77 | Not logged in to the site | Ask the user to log in in Chrome, then retry. |
| exit 75, or `Navigation rejected` | Transient | Retry once. |
| exit 66 | Empty result | Recheck the args; the site may have changed. |
| Adapter returns broken or wrong data | Site changed | Rerun with `--trace retain-on-failure` and report the trace summary to the user; fixing the adapter is the user's call. |

From legibet/agent-skills, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 2, 2026 (28 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from legibet

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get opencli running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying opencli?

CallGet help
Cite this page

opencli skill. Agent Mart. https://agentmart.dev/skills/legibet-opencli (last updated 2026-10-24)