cnb-rs ext
cnb-rs ext <subcommand>管理 cnb-rs extension(与 gh extension 风格对齐)。
extension 是把第三方子命令以独立 binary 形式插入到 cnb-rs 中的机制 —— 用户调 cnb-rs <name> [args] 时,若 <name> 不是内置命令,cnb-rs 会去 $EXTENSIONS_DIR/cnb-<name>/cnb-<name>[.exe] 找可执行文件并 spawn。
完整工作原理见 指南:cnb-rs extensions。
别名:
cnb-rs ext/cnb-rs extensions/cnb-rs extension三者完全等价。
可用命令
| 子命令 | Phase | 说明 |
|---|---|---|
cnb-rs ext list | 3.2 | 列出已安装的 extension(alias ls,3.4 后含 manifest 全字段) |
cnb-rs ext install | 3.4 | 从 CNB release 下载 binary + SHA256 校验 + 写 manifest |
cnb-rs ext exec | 3.3 | 显式执行 extension(绕命名冲突或调试用) |
cnb-rs ext remove | 3.5 | 删除已安装的 extension(alias rm / uninstall) |
cnb-rs ext upgrade | 3.6 | 比对 manifest tag vs latest release 升级 |
cnb-rs ext search | 5 | 在官方 registry 中搜索 extension(24h cache + 离线 fallback) |
cnb-rs ext create | 5 | 创建新 extension 项目脚手架(Rust 极简模板,include_str! 嵌入) |
cnb-rs ext registry | 5 | 管理 cnb-rs extension registry(schema 校验等 maintainer 工具) |
cnb-rs ext browse | 6 Task D | 全屏 TUI 浏览 registry(filter / i 安装 / r 卸载 / w 浏览器打开) |
安装位置
| 平台 | extensions 根目录 |
|---|---|
| Linux | $XDG_DATA_HOME/cnb/extensions 或 ~/.local/share/cnb/extensions |
| macOS | ~/Library/Application Support/cnb/extensions |
| Windows | %LOCALAPPDATA%\cnb\extensions |
可用环境变量 CNB_EXTENSIONS_DIR 覆盖(绝对路径;测试 / dev 友好)。
示例
bash
# 安装 extension(完整路径形式)
$ cnb-rs ext install wwvo/cnb-rs/cnb-stats
# 安装指定 tag(pinned,upgrade --all 会跳过)
$ cnb-rs ext install wwvo/cnb-rs/cnb-stats --pin v0.0.9
# 列出已装 extension(含 manifest 元数据)
$ cnb-rs ext list
# JSON 输出(脚本调用友好)
$ cnb-rs ext list --json
# 升级单个 extension
$ cnb-rs ext upgrade stats
# 升级所有(跳过 pinned)
$ cnb-rs ext upgrade --all
# 升级所有 + dry-run(只看不动)
$ cnb-rs ext upgrade --all --dry-run
# 调用 extension(直接用命令名)
$ cnb-rs hello world # 等价于 ext exec hello world
# 显式调用(绕命名冲突)
$ cnb-rs ext exec hello world
# 删除 extension(交互确认)
$ cnb-rs ext remove hello
# 删除 extension(跳过确认)
$ cnb-rs ext remove hello -y另请参阅
- cnb-rs
- cnb-rs api — extension 反向调 CNB OpenAPI 的「生态基石」命令
- 指南:cnb-rs extensions — 完整工作原理、命名约定、env var 注入说明