opencli-adapter-author
Build or improve an OpenCLI JS adapter using observed site behavior, existing adapters and browser API evidence. For ad-hoc…
Automatically fix broken OpenCLI adapters when commands fail. Load this skill when an opencli command fails — it guides you through collecting a trace artifact, patching the adapter, retrying, and filing an upstream GitHub issue after a verified fix. Works with any AI agent.
Claude Code
$ npx -y skills add jackwener/opencli --skill opencli-autofix --agent claude-code
Codex
$ npx skills add jackwener/opencli --skill opencli-autofix -a codex -y
Cursor
$ npx skills add jackwener/opencli --skill opencli-autofix -a cursor -y
Gemini CLI
$ npx skills add jackwener/opencli --skill opencli-autofix -a gemini-cli -y
GitHub Copilot
$ npx skills add jackwener/opencli --skill opencli-autofix -a github-copilot -y
OpenCode
$ npx skills add jackwener/opencli --skill opencli-autofix -a opencode -y
Windsurf
$ npx skills add jackwener/opencli --skill opencli-autofix -a windsurf -y
name: opencli-autofix description: Automatically fix broken OpenCLI adapters when commands fail. Load this skill when an opencli command fails — it guides you through collecting a trace artifact, patching the adapter, retrying, and filing an upstream GitHub issue after a verified fix. Works with any AI agent. allowed-tools: Bash(opencli:*), Bash(gh:*), Read, Edit, Write
When an `opencli` command fails because a website changed its DOM, API, or response schema, **automatically diagnose, fix the adapter, and retry** — don't just report the error.
**Before starting any repair, check these hard stops:**
**Scope constraint:**
**Retry budget:** Max **3 repair rounds** per failure. If 3 rounds of diagnose → fix → retry don't resolve it, stop and report what was tried.
opencli doctor # Verify extension + daemon connectivity
Use when `opencli <site> <command>` fails with repairable errors:
`EMPTY_RESULT` — and sometimes a structurally-valid `SELECTOR` that returns nothing — is often **not an adapter bug**. Platforms actively degrade results under anti-scrape heuristics, and a "not found" response from the site doesn't mean the content is actually missing. Rule this out **before** committing to a repair round:
Only proceed to Step 1 if the empty/selector-missing result is **reproducible across retries and alternative entry points**. Otherwise you're patching a working adapter to chase noise, and the patched version will break the next working path.
Run the failing command with failure-retained trace enabled:
opencli <site> <command> [args...] --trace retain-on-failure 2>trace-error.yaml
On failure, stderr contains the normal error envelope plus a small `trace` block:
ok: false error: code: SELECTOR message: "Could not find element: .old-selector" trace: schemaVersion: 1 opencliVersion: "..." traceId: "..." dir: "/path/to/.opencli/profiles/default/traces/..." summaryPath: "/path/to/.opencli/profiles/default/traces/.../summary.md" receiptPath: "/path/to/.opencli/profiles/default/traces/.../receipt.json"
Read `summaryPath` first. It is the LLM-oriented entry point and includes front matter:
--- schemaVersion: 1 opencliVersion: "..." traceId: "..." status: failure site: "example" command: "example/search" adapterSourcePath: "/path/to/clis/example/search.js" errorCode: "SELECTOR" errorMessage: "Could not find element: .old-selector" ---
The artifact directory contains:
summary.md # start here receipt.json # machine-readable trace receipt trace.jsonl # full redacted timeline network.jsonl # redacted network events console.jsonl # redacted console events state/ # final snapshots when available screenshots/ # final screenshots when available
If you redirected stderr to a file, read that file and copy `trace.summaryPath`.
Do not ask the user to rerun with legacy diagnostic env vars. Trace is the repair evidence path.
Read the trace summary and the adapter source. Classify the root cause:
| Error Code | Likely Cause | Repair Strategy | |-----------|-------------|-----------------| | SELECTOR | DOM restructured, class/id renamed | Explore current DOM → find new selector | | EMPTY_RESULT | API response schema changed, or data moved | Check network → find new response path | | API_ERROR | Endpoint URL changed, new params required | Discover new API via network intercept | | AUTH_REQUIRED | Login flow changed, cookies expired | **STOP** — tell user to log in, do not modify code | | TIMEOUT | Page loads differently, spinner/lazy-load | Add/update wait conditions | | PAGE_CHANGED | Major redesign | May need full adapter rewrite |
**Key questions to answer:** 1. What is the adapter trying t
Convert any website into a CLI & run Browser Use on your logged-in Chrome. Turn websites and browser sessions into deterministic interfaces for humans and AI agents. Or run Browser Use against any page — navigate, fill forms, click, extract, automate.
Build or improve an OpenCLI JS adapter using observed site behavior, existing adapters and browser API evidence. For ad-hoc…
Drive Chrome with OpenCLI to inspect pages, interact with logged-in sites, capture API evidence, and manage native tabs, groups…
Discover and invoke OpenCLI capabilities for websites and Chrome. Find commands, inspect schemas, interpret results and choose…
基于 opencli 命令的智能搜索路由器。当用户想要使用 OpenCLI、CLI 或 API 搜索、查询、查找或研究信息时,尤其是涉及指定网站、社交媒体、技术资料、新闻、购物、旅游、求职、金融或中文内容时,务必使用此 skill
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…