cnb-rs ext search
cnb-rs ext search [QUERY] [options]在 extension registry 中搜索 extension。
字符串包含匹配(不区分大小写),在 name / description / repo 三个字段任一匹配即列出。
留空 QUERY 时列出 registry 全部 entry。
选项
--json:以 JSON 数组输出(脚本调用友好)--refresh:强制刷新 registry cache(忽略 24h 缓存)--web:在浏览器打开 registry 仓库(替代未实现的 browse TUI,design §6.1 §6.8);默认https://cnb.cool/wwvo/cnb-rs/cnb-extensions,用CNB_REGISTRY_WEB_URL环境变量覆盖(fork registry / 自部署 CNB)
Cache 机制
| 维度 | 行为 |
|---|---|
| Cache 位置 | $EXTENSIONS_DIR/registry.toml |
| 过期间隔 | 24h(与 cnb-rs ext upgrade 后台 check 同节奏) |
| 离线 fallback | 远端 fetch 失败时自动回退到本地 cache(即使 stale),并打印 ⚠ 提示 |
| 强制刷新 | --refresh 跳过 cache 时效,立即拉远端 |
Cache 的
fetched_at字段记录上次 fetch 时间,cnb-rs 据此判断是否需要 refresh。
远端 URL
默认指向 official cnb-extensions repo:
https://cnb.cool/wwvo/cnb-rs/cnb-extensions/-/git/raw/main/extensions.toml可用 CNB_REGISTRY_URL 环境变量覆盖(自部署 CNB / fork registry / 测试场景):
bash
$ CNB_REGISTRY_URL=https://your-cnb.example.com/your/registry/-/git/raw/main/extensions.toml \
cnb-rs ext search foo --refresh输出示例
默认输出(无参数 = 列全部 entry)
registry 共 3 个 extension:
cnb-chat ✓
仓库: wwvo/cnb-rs/cnb-chat
描述: CNB OpenAPI 自然语言 agent — 用自然语言操作 CNB issue/release/pull/build
类型: binary
⭐ 42 最新: v0.1.4 (2026-05-19T12:08:31Z)
cnb-stats ✓
仓库: wwvo/cnb-rs/cnb-stats
描述: Git commit 统计可视化 TUI dashboard
类型: binary
⭐ 18 最新: v0.1.3 (2026-05-19T09:51:51Z)
cnb-stars ✓
仓库: wwvo/cnb-rs/cnb-stars
描述: 仓库 Star 累积趋势可视化 TUI dashboard
类型: binary
⭐ 7 最新: v0.1.2 (2026-05-19T09:51:54Z)
提示:cnb-rs ext install <NAME> # 从 registry 解析短名
cnb-rs ext install <REPO> # 直接走完整路径,立即可用
✓标记表示该 extension 是 cnb-rs maintainer 维护的 official ext;未标记的是社区贡献。
⭐ N 最新: vX.Y.Z (timestamp)行(Phase 6+)来自 cnb-extensions registry 的 CI 定时刷新(见cnb-rs ext registry refresh);缺失或只有部分字段时该行自适应折叠 / 省略。
关键字匹配单个
$ cnb-rs ext search chat
找到 1 个匹配 'chat' 的 extension:
cnb-chat ✓
仓库: wwvo/cnb-rs/cnb-chat
描述: CNB OpenAPI 自然语言 agent — 用自然语言操作 CNB issue/release/pull/build
类型: binary描述字段匹配
$ cnb-rs ext search dashboard
找到 2 个匹配 'dashboard' 的 extension:
...--json 输出
json
[
{
"name": "cnb-chat",
"repo": "wwvo/cnb-rs/cnb-chat",
"description": "CNB OpenAPI 自然语言 agent — 用自然语言操作 CNB issue/release/pull/build",
"official": true,
"kind": "binary"
}
]无匹配
$ cnb-rs ext search xyz-no-match
registry 中无匹配 'xyz-no-match' 的 extension。
提示:'cnb-rs ext search' 不带参数列全部 entry
'cnb-rs ext search --refresh' 强制刷新 cache离线 / fetch 失败 fallback
⚠ registry fetch 失败(network error: ...),使用本地 cache(fetched_at="2026-05-19T12:34:56Z")
registry 共 3 个 extension:
...示例
bash
# 列出全部 entry
$ cnb-rs ext search
# 关键字搜索
$ cnb-rs ext search chat
$ cnb-rs ext search dashboard
# JSON 输出供脚本解析
$ cnb-rs ext search --json | jq '.[].name'
# 仅列出 official ext
$ cnb-rs ext search --json | jq '.[] | select(.official) | .name'
# 强制刷新 cache(刚发布新 extension 想立刻看到)
$ cnb-rs ext search --refresh如何贡献新 entry
wwvo/cnb-rs/cnb-extensions 仓库的 README 给出完整流程:fork → 在 extensions.toml 数组末尾追加 [[extension]] block → 提交 PR。
另请参阅
cnb-rs ext install— 安装 extension(短名解析从 registry 拉 — Phase 5 后续)cnb-rs ext list— 列出已安装的 extensioncnb-rs ext upgrade— 升级已安装的 extension- Extension Registry — registry 源仓库
- Extension 开发指南 — 写一个自己的 extension