Agent skill

Qiaomu Opencli Oneshot

by joeseesun in joeseesun/qiaomu-opencli-skills

A skill your agent uses when quickly generating a single OpenCLI command from a specific URL and goal description.

MITAuto-check passedBackend & APIs

Install Qiaomu Opencli Oneshot

skills CLI
$ npx skills add joeseesun/qiaomu-opencli-skills --skill qiaomu-opencli-oneshot -a claude-code

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

GitHub CLI
$ gh skill install joeseesun/qiaomu-opencli-skills qiaomu-opencli-oneshot --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/joeseesun/qiaomu-opencli-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/qiaomu-opencli-oneshot .claude/skills/qiaomu-opencli-oneshot && 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
qiaomu-opencli-oneshot
GitHub stars
993
Token cost
~1.4k tokens
SKILL.md length
108 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when quickly generating a single OpenCLI command from a specific URL and goal description.

  • Works in 4 steps: 打开页面 + 抓包 → 锁定一个接口 → 验证接口能复现 → …
  • Quickly generating a single OpenCLI command from a specific URL and goal description
  • SKILL.md covers 输入, 流程, 认证速查 and 模板, plus 2 more sections
  • Calls npm; reaches x.com

What it does

Qiaomu Opencli Oneshot is an agent skill from joeseesun/qiaomu-opencli-skills. Use when quickly generating a single OpenCLI command from a specific URL and goal description. 4-step process — open page, capture API, write TS adapter, test. For full site exploration, use opencli-explorer instead.

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

It sits in Backend & APIs. The repository describes itself as: Use opencli CLI to interact with social/content websites (Bilibili, Zhihu, Twitter/X, YouTube, Weibo, 小红书, V2EX, Reddit, HackerNews, 雪球, BOSS直聘 etc.). The licence is MIT.

When your agent uses it

  • Quickly generating a single OpenCLI command from a specific URL and goal description

Example prompts

  • “/qiaomu-opencli-oneshot”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. 打开页面 + 抓包
  2. 锁定一个接口
  3. 验证接口能复现
  4. 套模板,生成 adapter

What it can do on your machine

Read from SKILL.md and the folder at commit 4d9a08e. 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:

    • npm

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • x.com

    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

Qiaomu Opencli Oneshot loads about 1.4k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 108 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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 joeseesun/qiaomu-opencli-skills at commit 4d9a08e, republished under its MIT licence (© joeseesun). 108 words, ~1,371 tokens.

Download SKILL.mdSave it as .claude/skills/qiaomu-opencli-oneshot/SKILL.md (or your agent's skills folder).
name
qiaomu-opencli-oneshot
description
Use when quickly generating a single OpenCLI command from a specific URL and goal description. 4-step process — open page, capture API, write TS adapter, test. For full site exploration, use opencli-explorer instead.
author
joeseesun
upstream
jackwener/opencli
tags
opencli, adapter, quick-start, ts, cli, one-shot, automation

CLI-ONESHOT — 单点快速 CLI 生成

给一个 URL + 一句话描述,4 步生成一个 CLI 命令。 完整探索式开发请看 opencli-explorer skill。


输入

项目示例
URLhttps://x.com/jakevin7/lists
Goal获取我的 Twitter Lists

流程

Step 1: 打开页面 + 抓包
1. browser_navigate → 打开目标 URL
2. 等待 3-5 秒(让页面加载完、API 请求触发)
3. browser_network_requests → 筛选 JSON API

关键:只关注返回 application/json 的请求,忽略静态资源。 如果没有自动触发 API,手动点击目标按钮/标签再抓一次。

Step 2: 锁定一个接口

从抓包结果中找到那个目标 API。看这几个字段:

字段关注什么
URLAPI 路径 pattern(如 /i/api/graphql/xxx/ListsManagePinTimeline)
MethodGET / POST
Headers有 Cookie? Bearer? CSRF? 自定义签名?
Response数据在哪个路径(如 data.list.lists)
Step 3: 验证接口能复现

在 browser_evaluate 中用 fetch 复现请求:

javascript
// Tier 2 (Cookie): 大多数情况
fetch('/api/endpoint', { credentials: 'include' }).then(r => r.json())

// Tier 3 (Header): 如 Twitter 需要额外 header
const ct0 = document.cookie.match(/ct0=([^;]+)/)?.[1];
fetch('/api/endpoint', {
  headers: { 'Authorization': 'Bearer ...', 'X-Csrf-Token': ct0 },
  credentials: 'include'
}).then(r => r.json())

如果 fetch 能拿到数据 → 用 TS adapter(cli() pipeline 或 func())。 如果 fetch 拿不到(签名/风控)→ 用 intercept 策略(TS func() + installInterceptor)。

Step 4: 套模板,生成 adapter

根据 Step 3 判定的策略,选一个模板生成文件。


认证速查

fetch(url) 直接能拿到?              → Tier 1: public   (TS pipeline, browser: false)
fetch(url, {credentials:'include'})? → Tier 2: cookie   (TS pipeline 或 func())
加 Bearer/CSRF header 后拿到?        → Tier 3: header   (TS func())
都不行,但页面自己能请求成功?          → Tier 4: intercept (TS func(), installInterceptor)

模板

typescript
// clis/<site>/<name>.ts
import { cli, Strategy } from '@jackwener/opencli/registry';

cli({
  site: 'mysite',
  name: 'mycommand',
  description: '一句话描述',
  domain: 'www.example.com',
  strategy: Strategy.COOKIE,   // 或 Strategy.PUBLIC (加 browser: false)
  browser: true,
  args: [
    { name: 'limit', type: 'int', default: 20 },
  ],
  columns: ['rank', 'title', 'value'],
  func: async (page, kwargs) => {
    await page.goto('https://www.example.com/target-page');
    const data = await page.evaluate(`(async () => {
      const res = await fetch('/api/target', { credentials: 'include' });
      const d = await res.json();
      return (d.data?.items || []).map(item => ({
        title: item.title,
        value: item.value,
      }));
    })()`);
    return (data as any[]).slice(0, kwargs.limit).map((item, i) => ({
      rank: i + 1,
      title: item.title || '',
      value: item.value || '',
    }));
  },
});
TS — Intercept(抓包模式)
typescript
// clis/<site>/<name>.ts
import { cli, Strategy } from '@jackwener/opencli/registry';

cli({
  site: 'mysite',
  name: 'mycommand',
  description: '一句话描述',
  domain: 'www.example.com',
  strategy: Strategy.INTERCEPT,
  browser: true,
  args: [
    { name: 'limit', type: 'int', default: 20 },
  ],
  columns: ['rank', 'title', 'value'],
  func: async (page, kwargs) => {
    // 1. 导航
    await page.goto('https://www.example.com/target-page');
    await page.wait(3);

    // 2. 注入拦截器(URL 子串匹配)
    await page.installInterceptor('target-api-keyword');

    // 3. 触发 API(滚动/点击)
    await page.autoScroll({ times: 2, delayMs: 2000 });

    // 4. 读取拦截的响应
    const requests = await page.getInterceptedRequests();
    if (!requests?.length) return [];

    let results: any[] = [];
    for (const req of requests) {
      const items = req.data?.data?.items || [];
      results.push(...items);
    }

    return results.slice(0, kwargs.limit).map((item, i) => ({
      rank: i + 1,
      title: item.title || '',
      value: item.value || '',
    }));
  },
});
TS — Header(如 Twitter GraphQL)
typescript
import { cli, Strategy } from '@jackwener/opencli/registry';

cli({
  site: 'twitter',
  name: 'mycommand',
  description: '一句话描述',
  domain: 'x.com',
  strategy: Strategy.HEADER,
  browser: true,
  args: [
    { name: 'limit', type: 'int', default: 20 },
  ],
  columns: ['rank', 'name', 'value'],
  func: async (page, kwargs) => {
    await page.goto('https://x.com');
    const data = await page.evaluate(`(async () => {
      const ct0 = document.cookie.match(/ct0=([^;]+)/)?.[1];
      if (!ct0) return { error: 'Not logged in' };
      const bearer = 'AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D...';
      const res = await fetch('/i/api/graphql/QUERY_ID/Endpoint', {
        headers: {
          'Authorization': 'Bearer ' + decodeURIComponent(bearer),
          'X-Csrf-Token': ct0,
          'X-Twitter-Auth-Type': 'OAuth2Session',
        },
        credentials: 'include',
      });
      return res.json();
    })()`);
    // 解析 data...
    return [];
  },
});

测试(必做)

bash
npm run build                              # 语法检查
opencli list | grep mysite                 # 确认注册
opencli mysite mycommand --limit 3 -v      # 实际运行

就这样,没了

写完文件 → build → run → 提交。有问题再看 opencli-explorer skill。

© joeseesun, 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 qiaomu-opencli-oneshot of joeseesun/qiaomu-opencli-skills.

Open the folder on GitHubat commit 4d9a08e

Compare with similar skills

Qiaomu Opencli Oneshot 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.

Qiaomu Opencli Oneshot compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Qiaomu Opencli Oneshot this skilljoeseesun/qiaomu-opencli-skills993—~1.4kAutomated safety check: PassMIT
Configuring Horizoncoollabsio/coolify63k4 repos~898Automated safety check: PassMIT
Nestjs Best Practicesrolling-scopes/rsschool-app10k6 repos~1.2kAutomated safety check: PassMIT
Sub2API AdminWei-Shaw/sub2api44k1 repos~717Automated safety check: PassLGPL-3.0
Firecrawl Build Onboardingfirecrawl/firecrawl190k1 repos~1.4kAutomated safety check: NotesISC
Obsidian BasesAtmosphere/atmosphere3.8k22 repos~3.2kAutomated safety check: PassApache-2.0

Similar skills

  • Configuring Horizon

    coollabsio/coolify

    A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.

    63k GitHub starsUsed in 4 repos~898 tokens
    Backend & APIsAuto-check passed
  • Nestjs Best Practices

    rolling-scopes/rsschool-app

    NestJS best practices and architecture patterns for building production-ready applications.

    10k GitHub starsUsed in 6 repos~1.2k tokens
    Backend & APIsAuto-check passed
  • Sub2API Admin

    Wei-Shaw/sub2api

    Manages a Sub2API deployment from the command line: accounts, redeem and invitation codes, groups, proxies, imports, exports and raw admin API calls.

    44k GitHub starsUsed in 1 repo~717 tokens
    Backend & APIsAuto-check passed
  • Firecrawl Build Onboarding

    firecrawl/firecrawl

    Gets Firecrawl working in a project: signs you in through the browser, saves FIRECRAWL_API_KEY to .env and picks the first SDK or REST path.

    190k GitHub starsUsed in 1 repo~1.4k tokens
    Backend & APIsAuto-check: notes
  • Obsidian Bases

    Atmosphere/atmosphere

    Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries.

    3.8k GitHub starsUsed in 22 repos~3.2k tokens
    Backend & APIsAuto-check passed
  • Fortify Development

    coollabsio/coolify

    ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 4 repos~1.9k tokens
    Backend & APIsAuto-check passed

More from joeseesun/qiaomu-opencli-skills

  • Qiaomu Opencli Usage

    joeseesun/qiaomu-opencli-skills

    A skill your agent uses when running OpenCLI commands to interact with websites (Bilibili, Twitter, Reddit, Xiaohongshu, etc.), desktop apps (Cursor, Notion), or public APIs (HackerNews, arXiv).

    993 GitHub stars~3k tokensUpdated 6 mo ago
    Auto-check passed
  • Qiaomu Opencli Explorer

    joeseesun/qiaomu-opencli-skills

    A skill your agent uses when creating a new OpenCLI adapter from scratch, adding support for a new website or platform, exploring a site's API endpoints via browser DevTools, or when a user asks to…

    993 GitHub stars~6.4k tokensUpdated 6 mo ago
    Auto-check passed
  • Qiaomu Opencli Autofix

    joeseesun/qiaomu-opencli-skills

    Automatically fix broken OpenCLI adapters when commands fail.

    993 GitHub stars~2.4k tokensUpdated 6 mo ago
    Auto-check passed
  • Qiaomu Opencli Browser

    joeseesun/qiaomu-opencli-skills

    Make websites accessible for AI agents. An agent skill from joeseesun/qiaomu-opencli-skills.

    993 GitHub stars~3.4k tokensUpdated 6 mo ago
    Auto-check passed

Categories

Questions about Qiaomu Opencli Oneshot

What does Qiaomu Opencli Oneshot do?

A skill your agent uses when quickly generating a single OpenCLI command from a specific URL and goal description. Qiaomu Opencli Oneshot is an agent skill from joeseesun/qiaomu-opencli-skills. Use when quickly generating a single OpenCLI command from a specific URL and goal description.

When should I use Qiaomu Opencli Oneshot?

Qiaomu Opencli Oneshot fits situations like: quickly generating a single OpenCLI command from a specific URL and goal description.

How do I install Qiaomu Opencli Oneshot in Claude Code?

Run `npx skills add joeseesun/qiaomu-opencli-skills --skill qiaomu-opencli-oneshot -a claude-code`. Or copy the skill folder (qiaomu-opencli-oneshot in joeseesun/qiaomu-opencli-skills) into .claude/skills/qiaomu-opencli-oneshot in your project. Claude Code loads it when a task matches its description.

How do I install Qiaomu Opencli Oneshot in Codex?

Run `npx skills add joeseesun/qiaomu-opencli-skills --skill qiaomu-opencli-oneshot -a codex`. Or copy the skill folder (qiaomu-opencli-oneshot in joeseesun/qiaomu-opencli-skills) into .agents/skills/qiaomu-opencli-oneshot in your project. Codex loads it when a task matches its description.

Can I use Qiaomu Opencli Oneshot 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 joeseesun/qiaomu-opencli-skills --skill qiaomu-opencli-oneshot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qiaomu-opencli-oneshot, .gemini/skills/qiaomu-opencli-oneshot, .github/skills/qiaomu-opencli-oneshot and .opencode/skills/qiaomu-opencli-oneshot in your project.

What does Qiaomu Opencli Oneshot need to run?

Going by SKILL.md and its folder, Qiaomu Opencli Oneshot needs the command-line tools its instructions call (npm).

Does Qiaomu Opencli Oneshot access the network?

SKILL.md names 1 domain. In commands or code: x.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Qiaomu Opencli Oneshot safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Qiaomu Opencli Oneshot use?

Qiaomu Opencli Oneshot 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 Qiaomu Opencli Oneshot use?

About 1.4k tokens (SKILL.md is roughly 5.5k 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 Qiaomu Opencli Oneshot?

Skills that share tags, products or a category with Qiaomu Opencli Oneshot: Configuring Horizon (coollabsio/coolify, 63k stars), Nestjs Best Practices (rolling-scopes/rsschool-app, 10k stars), Sub2API Admin (Wei-Shaw/sub2api, 44k stars) and Firecrawl Build Onboarding (firecrawl/firecrawl, 190k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Qiaomu Opencli Oneshot?

joeseesun (a GitHub user) maintains it in joeseesun/qiaomu-opencli-skills, which has 993 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on April 9, 2026.

Source: joeseesun/qiaomu-opencli-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.