# Package catalog

> Select every Univer CLI SDK package by content, collaboration, compilation, rendering, process, and application task.

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

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

- Language: `en`

- Source file: `content/docs/cli/packages.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 currently publishes 25 independent packages. Install only the base packages the application needs,
then add a command preset from the same row when its default terminal interaction fits the product.

## Two package roles

| Role                   | Provides                                                                                                       |
| ---------------------- | -------------------------------------------------------------------------------------------------------------- |
| Base package           | Structured TypeScript APIs without depending on Commander or deciding command names, output, and exit behavior |
| Command preset package | A native Commander `Command` backed by a base package, with default arguments, help, and terminal interaction  |

Command presets usually end in `-command`. Not every base package needs a corresponding command preset.

## Content and collaboration runtimes

| Task                                    | Base package                                                                                                                   | Command preset package                                                                                           |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| Create standard headless Univer         | [`@univer-cli/headless-univer`](https://www.npmjs.com/package/@univer-cli/headless-univer)                                     | —                                                                                                                |
| Search the Univer Facade API offline    | [`@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)           |
| Prepare and bind Facade execution       | [`@univer-cli/content-execution`](https://www.npmjs.com/package/@univer-cli/content-execution)                                 | —                                                                                                                |
| Read Sheet, Doc, or Slide content       | [`@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) |
| Run one collaborative Unit              | [`@univer-cli/univer-collaboration-runtime`](https://www.npmjs.com/package/@univer-cli/univer-collaboration-runtime)           | —                                                                                                                |
| Reuse collaboration runtimes in workers | [`@univer-cli/univer-collaboration-runtime-pool`](https://www.npmjs.com/package/@univer-cli/univer-collaboration-runtime-pool) | —                                                                                                                |

## Content compilation

| Task                                        | Base package                                                                                 | Command preset package                                                                                       |
| ------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| Convert SVG into 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)             |
| Convert a Typst bundle into 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) |

## Rendering and diagnostics

| Task                                   | Base package                                                                                           | Command preset package                                                                                       |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| Capture a 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)   |
| Lint Slide layout                      | [`@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) |
| Host a Render Page and drive a browser | [`@univer-cli/univer-render-runtime`](https://www.npmjs.com/package/@univer-cli/univer-render-runtime) | —                                                                                                            |
| Compose and build a Render Page        | [`@univer-cli/univer-render-page`](https://www.npmjs.com/package/@univer-cli/univer-render-page)       | —                                                                                                            |

## Processes and lifecycle

| Task                                                           | Base package                                                                                                       | Command preset package                                                                   |
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
| Exclusively acquire, cache, and retire stateful objects by key | [`@univer-cli/generic-keyed-instance-pool`](https://www.npmjs.com/package/@univer-cli/generic-keyed-instance-pool) | —                                                                                        |
| Let multiple CLI processes access one local resident process   | [`@univer-cli/daemon`](https://www.npmjs.com/package/@univer-cli/daemon)                                           | [`@univer-cli/daemon-command`](https://www.npmjs.com/package/@univer-cli/daemon-command) |

## Application helpers

| Task                                                 | Base package                                                                                 | Command preset package                                                                                       |
| ---------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| Declare, read, and persist application configuration | [`@univer-cli/config`](https://www.npmjs.com/package/@univer-cli/config)                     | [`@univer-cli/config-command`](https://www.npmjs.com/package/@univer-cli/config-command)                     |
| Query, cache, and export visual resources            | [`@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) |

## How to choose

1. Start with the base package that matches the business task.
2. Add its command preset only when the default Commander interaction fits the product.
3. Use a collaboration runtime when the CLI, Web, and Server share a Unit instead of accessing the collaboration database directly.
4. Add a pool, daemon, or Render Runtime only when the application needs reuse, cross-process access, or browser rendering.
5. Read the target package README for its public APIs, ownership, and disposal behavior.

See [Document loading and content operations](https://office.univer.ai/cli/content-operations.md), [Visual inspection](https://office.univer.ai/cli/visual-inspection.md), and
[Runtime reuse and Daemon](https://office.univer.ai/cli/runtime-architecture.md) for concepts and core usage.
