# Package 概览

> 按内容与协同、内容编译、渲染、进程和应用辅助能力选择全部 Univer CLI SDK package。

- Human documentation: [https://office.univer.ai/zh-CN/cli/packages](https://office.univer.ai/zh-CN/cli/packages)

- Agent Markdown: [https://office.univer.ai/zh-CN/cli/packages.md](https://office.univer.ai/zh-CN/cli/packages.md)

- Language: `zh-CN`

- Source file: `content/docs/cli/packages.zh-CN.mdx`

- Upstream source: [https://github.com/dream-num/univer-cli-sdk/blob/main/README.md](https://github.com/dream-num/univer-cli-sdk/blob/main/README.md)

---

Univer CLI SDK 当前提供 25 个可独立发布的 package。应用只安装实际需要的基础功能包；默认终端交互
适合产品时，再增加同一行的预设命令包。

## 两类 Package

| 类型    | 提供什么                                              |
| ----- | ------------------------------------------------- |
| 基础功能包 | 结构化 TypeScript API；不依赖 Commander，不决定命令名称、输出和退出行为  |
| 预设命令包 | 基于基础功能包创建原生 Commander `Command`；提供默认参数、help 与终端交互 |

预设命令包通常以 `-command` 结尾。并不是每个基础功能包都需要对应的预设命令包。

## 内容与协同 Runtime

| 业务需求                    | 基础功能包                                                                                                                          | 预设命令包                                                                                                            |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| 创建标准 Headless Univer    | [`@univer-cli/headless-univer`](https://www.npmjs.com/package/@univer-cli/headless-univer)                                     | —                                                                                                                |
| 离线查询 Univer Facade API  | [`@univer-cli/api-reference`](https://www.npmjs.com/package/@univer-cli/api-reference)                                         | [`@univer-cli/api-reference-command`](https://www.npmjs.com/package/@univer-cli/api-reference-command)           |
| 准备并绑定 Facade execution  | [`@univer-cli/content-execution`](https://www.npmjs.com/package/@univer-cli/content-execution)                                 | —                                                                                                                |
| 读取 Sheet、Doc 或 Slide 内容 | [`@univer-cli/content-inspection`](https://www.npmjs.com/package/@univer-cli/content-inspection)                               | [`@univer-cli/content-inspection-command`](https://www.npmjs.com/package/@univer-cli/content-inspection-command) |
| 运行单个协同 Unit             | [`@univer-cli/univer-collaboration-runtime`](https://www.npmjs.com/package/@univer-cli/univer-collaboration-runtime)           | —                                                                                                                |
| 在 Worker 中复用协同 Runtime  | [`@univer-cli/univer-collaboration-runtime-pool`](https://www.npmjs.com/package/@univer-cli/univer-collaboration-runtime-pool) | —                                                                                                                |

## 内容编译

| 业务需求                           | 基础功能包                                                                                        | 预设命令包                                                                                                        |
| ------------------------------ | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| SVG 到 Slide Facade code        | [`@univer-cli/svg-facade`](https://www.npmjs.com/package/@univer-cli/svg-facade)             | [`@univer-cli/svg-facade-command`](https://www.npmjs.com/package/@univer-cli/svg-facade-command)             |
| Typst bundle 到 Doc Facade code | [`@univer-cli/doc-typst-facade`](https://www.npmjs.com/package/@univer-cli/doc-typst-facade) | [`@univer-cli/doc-typst-facade-command`](https://www.npmjs.com/package/@univer-cli/doc-typst-facade-command) |

## 渲染与诊断

| 业务需求                  | 基础功能包                                                                                                  | 预设命令包                                                                                                        |
| --------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| Unit PNG 截图           | [`@univer-cli/unit-screenshot`](https://www.npmjs.com/package/@univer-cli/unit-screenshot)             | [`@univer-cli/unit-screenshot-command`](https://www.npmjs.com/package/@univer-cli/unit-screenshot-command)   |
| Slide layout lint     | [`@univer-cli/unit-layout-lint`](https://www.npmjs.com/package/@univer-cli/unit-layout-lint)           | [`@univer-cli/unit-layout-lint-command`](https://www.npmjs.com/package/@univer-cli/unit-layout-lint-command) |
| 托管 Render Page 并驱动浏览器 | [`@univer-cli/univer-render-runtime`](https://www.npmjs.com/package/@univer-cli/univer-render-runtime) | —                                                                                                            |
| 组装并构建 Render Page     | [`@univer-cli/univer-render-page`](https://www.npmjs.com/package/@univer-cli/univer-render-page)       | —                                                                                                            |

## 进程与生命周期

| 业务需求                  | 基础功能包                                                                                                              | 预设命令包                                                                                    |
| --------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
| 按 key 独占、缓存和回收有状态对象   | [`@univer-cli/generic-keyed-instance-pool`](https://www.npmjs.com/package/@univer-cli/generic-keyed-instance-pool) | —                                                                                        |
| 让多个 CLI 进程访问同一个本地常驻进程 | [`@univer-cli/daemon`](https://www.npmjs.com/package/@univer-cli/daemon)                                           | [`@univer-cli/daemon-command`](https://www.npmjs.com/package/@univer-cli/daemon-command) |

## 应用辅助能力

| 业务需求          | 基础功能包                                                                                        | 预设命令包                                                                                                        |
| ------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| 声明、读取和持久化应用配置 | [`@univer-cli/config`](https://www.npmjs.com/package/@univer-cli/config)                     | [`@univer-cli/config-command`](https://www.npmjs.com/package/@univer-cli/config-command)                     |
| 查询、缓存和导出视觉资源  | [`@univer-cli/resource-library`](https://www.npmjs.com/package/@univer-cli/resource-library) | [`@univer-cli/resource-library-command`](https://www.npmjs.com/package/@univer-cli/resource-library-command) |

## 如何选择

1. 先按业务需求找到基础功能包。
2. 需要默认 Commander 交互时，再增加对应的预设命令包。
3. CLI、Web 与 Server 共享 Unit 时，使用 Collaboration Runtime，而不是直接访问协同数据库。
4. 需要高频复用、跨进程访问或浏览器渲染时，再引入 pool、daemon 或 Render Runtime。
5. 查看目标 package README，确认公共 API、资源所有权和释放方式。

具体概念和核心用法分别见[文档内容加载与读写](https://office.univer.ai/zh-CN/cli/content-operations.md)、
[视觉检查](https://office.univer.ai/zh-CN/cli/visual-inspection.md)与 [Runtime 复用与 Daemon](https://office.univer.ai/zh-CN/cli/runtime-architecture.md)。
