跳转到内容

cnb-rs ext list

cnb-rs ext list [options]
cnb-rs ext ls   [options]            # alias

列出已安装的 extension。

扫描 $EXTENSIONS_DIR/cnb-*/ 子目录,且要求子目录中存在对应平台后缀的 binary 文件(避免列出仅有目录但 binary 缺失的「残留」extension)。

选项

  • --json:以 JSON 数组输出,每个元素含 name(命令名,不带 cnb- 前缀)和 bin(可执行文件绝对路径),适合脚本调用
  • --web:在浏览器打开 registry 仓库(替代未实现的 browse TUI,design §6.1 §6.8);默认 https://cnb.cool/wwvo/cnb-rs/cnb-extensions,用 CNB_REGISTRY_WEB_URL 环境变量覆盖(fork registry / 自部署 CNB)

输出示例

默认输出(Phase 3.4 后含 manifest 全字段)

已安装的 extension(2 个):

  cnb-stats 📌
    版本: v0.1.0
    仓库: wwvo/cnb-rs/cnb-stats
    类型: binary
    位置: /home/alice/.local/share/cnb/extensions/cnb-stats/cnb-stats

  cnb-whoami
    版本: v1.2.0
    仓库: alice/cnb-whoami
    类型: binary
    位置: /home/alice/.local/share/cnb/extensions/cnb-whoami/cnb-whoami

📌 标记表示该 extension 在 install 时加了 --pin <tag>cnb-rs ext upgrade --all 会跳过它。

没有 manifest 的 extension(手工放的旧 binary)

已安装的 extension(1 个):

  cnb-legacy
    版本: - (手工放置,无 manifest)
    位置: /home/alice/.local/share/cnb/extensions/cnb-legacy/cnb-legacy

Phase 3.4 之前手工 cp cnb-* extensions/cnb-*/ 的 binary 仍会被列出,仅 version / repo / kind 字段表示为 -

--json 输出

json
[
  {
    "name": "stats",
    "bin": "/home/alice/.local/share/cnb/extensions/cnb-stats/cnb-stats",
    "tag": "v0.1.0",
    "repo": "wwvo/cnb-rs/cnb-stats",
    "kind": "binary",
    "pinned": true
  },
  {
    "name": "legacy",
    "bin": "/home/alice/.local/share/cnb/extensions/cnb-legacy/cnb-legacy"
  }
]

无 manifest 的 extension 仅输出 name + bin,其余字段省略(skip_serializing_if = "Option::is_none")。

没有安装任何 extension 时

当前没有安装任何 extension。

提示: 使用 'cnb-rs ext install <repo>' 安装第一个 extension
      (例:cnb-rs ext install wwvo/cnb-rs/cnb-stats)

示例

bash
# 列出已装 extension
$ cnb-rs ext list

# 短 alias
$ cnb-rs ext ls

# JSON 输出供脚本解析
$ cnb-rs ext list --json | jq '.[].name'

# 仅列出有可升级的 extension(Phase 3.6+)
$ cnb-rs ext list --json | jq '.[] | select(.update_available) | .name'

另请参阅

另请参阅

JSON 输出供脚本解析

$ cnb-rs ext list --json | jq '.[].name'


## 另请参阅

- [cnb-rs ext](/ext/)
- [cnb-rs ext install](/ext/install) 从CNB release 安装 extension(会写 manifest)
- [cnb-rs ext exec](/ext/exec) 显式执行已装 extension
- [cnb-rs ext remove](/ext/remove) 删除已装 extension

Released under the MIT License.