Skip to content

Commit 40b2f75

Browse files
authored
feat(external)!: drop -cli suffix from tg/discord/wx subcommand names (#1544)
The opencli external-CLI name is the user-typed subcommand; the binary is what gets executed. The convention everywhere else (`gh`, `docker`, `obsidian`, `vercel`, `dws`) is `name == binary`. Three entries violated the convention: `tg-cli` / `discord-cli` / `wx-cli` registered an opencli name with a `-cli` suffix that does NOT exist on the binary, forcing the awkward double-prefix `opencli discord-cli dc` instead of `opencli discord dc`. The README's example column already showed the desired form (`opencli tg search`, `opencli discord recent`, `opencli wx search`) — only the yaml registration was out of sync. Renames in `src/external-clis.yaml`: * `name: tg-cli` → `name: tg` (binary: `tg`) * `name: discord-cli`→ `name: discord` (binary: `discord`) * `name: wx-cli` → `name: wx` (binary: `wx`) The `binary`, `homepage`, and `install` fields are unchanged — the underlying packages (`kabi-tg-cli`, `kabi-discord-cli`, `@jackwener/wx-cli`) keep their published names. Other entries left as-is: `lark-cli`, `wecom-cli`, and `dws` already have `name == binary` (their actual binaries are `lark-cli`, `wecom-cli`, `dws`). BREAKING CHANGE: `opencli tg-cli ...`, `opencli discord-cli ...`, `opencli wx-cli ...` no longer resolve. Use `opencli tg ...`, `opencli discord ...`, `opencli wx ...` instead. The feature is recent (shipped 2026-05) so impact is expected to be minimal.
1 parent feab24f commit 40b2f75

4 files changed

Lines changed: 16 additions & 16 deletions

File tree

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ OpenCLI gives you one surface for three different kinds of automation:
1414
- **Let AI Agents operate any website** — install the `opencli-adapter-author` skill in your AI agent (Claude Code, Cursor, etc.), and it can navigate, click, type/fill, extract, and inspect any page through your logged-in browser via `opencli browser` primitives.
1515
- **Write new adapters** end-to-end with `opencli browser` + the `opencli-adapter-author` skill, which guides from first recon through field decoding, code, and `opencli browser verify`.
1616

17-
It also works as a **CLI hub** for local tools such as `gh`, `docker`, `tg-cli`, `discord-cli`, `wx-cli`, and other binaries you register yourself, plus **desktop app adapters** for Electron apps like Cursor, Codex, Antigravity, ChatGPT, and Notion.
17+
It also works as a **CLI hub** for local tools such as `gh`, `docker`, `tg`, `discord`, `wx`, and other binaries you register yourself, plus **desktop app adapters** for Electron apps like Cursor, Codex, Antigravity, ChatGPT, and Notion.
1818

1919
## Highlights
2020

@@ -24,7 +24,7 @@ It also works as a **CLI hub** for local tools such as `gh`, `docker`, `tg-cli`,
2424
- **Website → CLI** — Turn any website into a deterministic CLI: 100+ site surfaces are already registered, or write your own with the `opencli-adapter-author` skill + `opencli browser verify`.
2525
- **Account-safe** — Reuses Chrome/Chromium logged-in state; your credentials never leave the browser.
2626
- **AI Agent ready** — One skill takes you from site recon through API discovery, field decoding, adapter writing, and verification.
27-
- **CLI Hub** — Discover, auto-install, and passthrough commands to any external CLI (gh, docker, obsidian, tg-cli, discord-cli, wx-cli, etc).
27+
- **CLI Hub** — Discover, auto-install, and passthrough commands to any external CLI (gh, docker, obsidian, tg, discord, wx, etc).
2828
- **Zero LLM cost** — No tokens consumed at runtime. Run 10,000 times and pay nothing.
2929
- **Deterministic** — Same command, same output schema, every time. Pipeable, scriptable, CI-friendly.
3030

@@ -181,7 +181,7 @@ When the site you need is not yet covered, use the `opencli-adapter-author` skil
181181

182182
OpenCLI is not only for websites. It can also:
183183

184-
- expose local binaries like `gh`, `docker`, `obsidian`, `tg-cli`, `discord-cli`, `wx-cli`, or custom tools through `opencli <tool> ...`
184+
- expose local binaries like `gh`, `docker`, `obsidian`, `tg`, `discord`, `wx`, or custom tools through `opencli <tool> ...`
185185
- control Electron desktop apps through dedicated adapters and CDP-backed integrations
186186

187187
## Prerequisites
@@ -293,9 +293,9 @@ OpenCLI acts as a universal hub for your existing command-line tools — unified
293293
| **lark-cli** | Lark/Feishu — messages, docs, calendar, tasks, 200+ commands | `opencli lark-cli calendar +agenda` |
294294
| **dws** | DingTalk — cross-platform CLI for DingTalk's full suite, designed for humans and AI agents | `opencli dws msg send --to user "hello"` |
295295
| **wecom-cli** | WeCom/企业微信 — CLI for WeCom open platform, for humans and AI agents | `opencli wecom-cli msg send --to user "hello"` |
296-
| **tg-cli** | Telegram — local-first sync, search, and export via MTProto for AI agents | `opencli tg search "AI news" -f json` |
297-
| **discord-cli** | Discord — local-first sync, search, and export via SQLite for AI agents | `opencli discord recent --channel general` |
298-
| **wx-cli** | WeChat — query local WeChat data: sessions, messages, search, contacts, export | `opencli wx search "OpenCLI"` |
296+
| **tg** | Telegram — local-first sync, search, and export via MTProto for AI agents | `opencli tg search "AI news" -f json` |
297+
| **discord** | Discord — local-first sync, search, and export via SQLite for AI agents | `opencli discord recent --channel general` |
298+
| **wx** | WeChat — query local WeChat data: sessions, messages, search, contacts, export | `opencli wx search "OpenCLI"` |
299299
| **vercel** | Vercel — deploy projects, manage domains, env vars, logs | `opencli vercel deploy --prod` |
300300

301301
**Register your own** — add any local CLI so AI agents can discover it via `opencli list`:

README.zh-CN.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ OpenCLI 可以用同一套 CLI 做三类事情:
1414
- **让 AI Agent 操作任意网站**:在你的 AI Agent(Claude Code、Cursor 等)中安装 `opencli-adapter-author` skill,Agent 就能用你的已登录浏览器导航、点击、输入/填充、提取任意网页内容。
1515
- **把新网站写成 CLI**:用 `opencli browser` 原语 + `opencli-adapter-author` skill,从站点侦察、API 发现、字段解码到 `opencli browser verify` 一条龙。
1616

17-
除了网站能力,OpenCLI 还是一个 **CLI 枢纽**:你可以把 `gh``docker``tg-cli``discord-cli``wx-cli` 等本地工具统一注册到 `opencli` 下,也可以通过桌面端适配器控制 Cursor、Codex、Antigravity、ChatGPT、Notion 等 Electron 应用。
17+
除了网站能力,OpenCLI 还是一个 **CLI 枢纽**:你可以把 `gh``docker``tg``discord``wx` 等本地工具统一注册到 `opencli` 下,也可以通过桌面端适配器控制 Cursor、Codex、Antigravity、ChatGPT、Notion 等 Electron 应用。
1818

1919
## 亮点
2020

@@ -23,7 +23,7 @@ OpenCLI 可以用同一套 CLI 做三类事情:
2323
- **网站 → CLI** — 把任何网站变成确定性 CLI:100+ 站点能力已注册,或用 `opencli-adapter-author` skill + `opencli browser verify` 自己写。
2424
- **账号安全** — 复用 Chrome/Chromium 登录态,凭证永远不会离开浏览器。
2525
- **面向 AI Agent** — 一个 skill 带你走完站点侦察、API 发现、字段解码、适配器编写、验证的全流程。
26-
- **CLI 枢纽** — 统一发现、自动安装、纯透传任何外部 CLI(gh、docker、obsidian、tg-cli、discord-cli、wx-cli 等)。
26+
- **CLI 枢纽** — 统一发现、自动安装、纯透传任何外部 CLI(gh、docker、obsidian、tg、discord、wx 等)。
2727
- **零 LLM 成本** — 运行时不消耗模型 token,跑 10,000 次也不花一分钱。
2828
- **确定性输出** — 相同命令,相同输出结构,每次一致。可管道、可脚本、CI 友好。
2929

@@ -165,7 +165,7 @@ Agent 在内部自动处理所有 `opencli browser` 命令——你只需用自
165165

166166
OpenCLI 不只是网站 CLI,还可以:
167167

168-
- 统一代理本地二进制工具,例如 `gh``docker``obsidian``tg-cli``discord-cli``wx-cli`
168+
- 统一代理本地二进制工具,例如 `gh``docker``obsidian``tg``discord``wx`
169169
- 通过专门适配器和 CDP 集成控制 Electron 桌面应用
170170

171171
## 前置要求
@@ -336,9 +336,9 @@ OpenCLI 也可以作为你现有命令行工具的统一入口,负责发现、
336336
| **lark-cli** | 飞书 CLI — 消息、文档、日历、任务,200+ 命令 | `opencli lark-cli calendar +agenda` |
337337
| **dws** | 钉钉 CLI — 钉钉全套产品能力的跨平台命令行工具,支持人类和 AI Agent 使用 | `opencli dws msg send --to user "hello"` |
338338
| **wecom-cli** | 企业微信 CLI — 企业微信开放平台命令行工具,支持人类和 AI Agent 使用 | `opencli wecom-cli msg send --to user "hello"` |
339-
| **tg-cli** | Telegram CLI — 基于 MTProto 的本地优先同步、搜索、导出,面向 AI Agent | `opencli tg search "AI news" -f json` |
340-
| **discord-cli** | Discord CLI — 基于 SQLite 的本地优先同步、搜索、导出,面向 AI Agent | `opencli discord recent --channel general` |
341-
| **wx-cli** | 微信本地数据 CLI — 会话、聊天记录、搜索、联系人、导出 | `opencli wx search "OpenCLI"` |
339+
| **tg** | Telegram CLI — 基于 MTProto 的本地优先同步、搜索、导出,面向 AI Agent | `opencli tg search "AI news" -f json` |
340+
| **discord** | Discord CLI — 基于 SQLite 的本地优先同步、搜索、导出,面向 AI Agent | `opencli discord recent --channel general` |
341+
| **wx** | 微信本地数据 CLI — 会话、聊天记录、搜索、联系人、导出 | `opencli wx search "OpenCLI"` |
342342
| **vercel** | Vercel — 部署项目、管理域名、环境变量、日志 | `opencli vercel deploy --prod` |
343343

344344
**零配置透传**:OpenCLI 会把你的输入原样转发给底层二进制,保留原生 stdout / stderr 行为。

skills/opencli-usage/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ opencli gh pr list --limit 5 # passthrough; stdio is inherited, exit code prop
134134
opencli docker ps
135135
```
136136

137-
Built-in entries live in `src/external-clis.yaml`; user overrides and additions in `~/.opencli/external-clis.yaml`. Commonly shipped: `gh`, `docker`, `vercel`, `lark-cli`, `dws`, `wecom-cli`, `obsidian`, `tg-cli`, `discord-cli`, `wx-cli`.
137+
Built-in entries live in `src/external-clis.yaml`; user overrides and additions in `~/.opencli/external-clis.yaml`. Commonly shipped: `gh`, `docker`, `vercel`, `lark-cli`, `dws`, `wecom-cli`, `obsidian`, `tg`, `discord`, `wx`.
138138

139139
## Shell completion
140140

src/external-clis.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,23 +55,23 @@
5555
install:
5656
default: "npm install -g vercel"
5757

58-
- name: tg-cli
58+
- name: tg
5959
binary: tg
6060
description: "Telegram CLI — local-first sync, search, export via MTProto for AI agents"
6161
homepage: "https://github.com/jackwener/tg-cli"
6262
tags: [telegram, messaging, search, export, ai-agent]
6363
install:
6464
default: "uv tool install kabi-tg-cli"
6565

66-
- name: discord-cli
66+
- name: discord
6767
binary: discord
6868
description: "Discord CLI — local-first sync, search, export via SQLite for AI agents"
6969
homepage: "https://github.com/jackwener/discord-cli"
7070
tags: [discord, messaging, search, export, ai-agent]
7171
install:
7272
default: "uv tool install kabi-discord-cli"
7373

74-
- name: wx-cli
74+
- name: wx
7575
binary: wx
7676
description: "WeChat local data CLI — sessions, messages, search, contacts, export for AI agents"
7777
homepage: "https://github.com/jackwener/wx-cli"

0 commit comments

Comments
 (0)