Skip to main content

core

Drive .univer office files from the terminal with the univer CLI — import xlsx/csv/pptx/docx, explore read-only (inspect), read & write via Univer facade code (execute) on a worktree, export xlsx/csv/pptx/docx or print PDF, and hand off a viewer link. Use when a task involves reading or editing .univer / .xlsx / spreadsheet data, .pptx / slide decks / presentations, or .docx / documents, or needs the correct Univer cell model (stored value v, type t=1/2/3/4, formulas, number formats, ranges).

Zur Installation springen

Quellinformationen

Repository
dream-num/univer-cli
Letzte Quellaktivität
3. September 2026 um 15:31
Erkannte Sprache von SKILL.md
Englisch
Sterne
7
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
core
description
Drive .univer office files from the terminal with the univer CLI — import xlsx/csv/pptx/docx, explore read-only (inspect), read & write via Univer facade code (execute) on a worktree, export xlsx/csv/pptx/docx or print PDF, and hand off a viewer link. Use when a task involves reading or editing .univer / .xlsx / spreadsheet data, .pptx / slide decks / presentations, or .docx / documents, or needs the correct Univer cell model (stored value v, type t=1/2/3/4, formulas, number formats, ranges).
# Univer CLI Core `univer` reads and edits sheet, slide, doc, Base, and Board units inside `.univer` files and converts office units to and from xlsx, csv, pptx, and docx. Use it for office-file, database, and canvas tasks. **If `univer` is unavailable, stop and report that the environment is not installed. Do not fall back to openpyxl, python-pptx, python-docx, zip manipulation, or another writer.** ## SVG resources When a Unit needs icons, logos, emoji, or illustrations, use the built-in SVG resource library: ```bash univer resources registries univer resources find <query> [<query>...] univer resources export <handle> [<handle>...] --out <directory> ``` ## Mental model - A `.univer` file is a multi-unit container. Each sheet workbook, slide presentation, document, Base database, or Board canvas unit has a `unitId`. - Each file has two scopes: `trunk` is the human-facing main line; a `worktree` is the isolated copy where an agent works before review. - Every content command must provide the full address: `<file.univer>` + `--worktree <id>` for writes + `--unit <id>`. There is no default unit, even in a single-unit file. Obtain unit IDs from `unit list` or `import`. Worktrees are also addressed only by ID; `--name` creates a display label, not an address. - Writes happen on a `draft` worktree. `execute` requires `--worktree` and automatically persists only when a mutation occurred. There is no save command. A `ready` worktree rejects writes until it is explicitly reopened. Read-only code creates no revision and changes no state. Use `inspect` for read-only exploration and always select exactly one scope with `--trunk` or `--worktree <id>`; `execute` runs only on a worktree. - `worktree merge` is the only path into trunk. A conflict exits with code 1 and leaves trunk unchanged. Merge is normally a user decision, not an automatic agent step. `merged` and `discarded` are terminal states; never reuse them. Run `worktree list` before continuing existing work. ## Required reading before editing Load the matching unit Skill through the same CLI before writing Facade code; never rely on memory: - sheet unit → `univer skills get sheet` - slide unit → `univer skills get slide` - doc unit → `univer skills get doc` - Base unit → `univer skills get base` - Board unit → `univer skills get board` - Embed one Unit inside another → load both Unit Skills, then `univer skills get embed` - Read another Unit from a Sheet cell or formula-driven Shape → load the Host and Source Unit Skills, then `univer skills get cross-unit-formula` - Feed a Chart from another Unit's range → load the Host Unit Skill and the Sheet or Base Unit Skill, then `univer skills get embed` (see "Referencing another Unit's data from a Chart") ## Typical worktree edit ```bash univer import --file in.xlsx wb.univer univer worktree add wb.univer --name task univer execute wb.univer --worktree <id> --unit <u> -e '…' univer inspect range A1:C9 wb.univer --worksheet name:Sheet1 \ --worktree <id> --unit <u> --json ``` After the readback is correct, follow "Finish the task" below. ## Finish the task If you changed a worktree: 1. Verify the result after the last change. 2. Run `univer worktree ready <file.univer> --worktree <id>`. 3. Run `univer status <file.univer> --worktree <id> --json` and confirm the status is `ready`. 4. Run `univer open <file.univer> --worktree <id>`. 5. Give the viewer URL to the user and identify it as worktree `<id>`. If you make another change, repeat these steps. Tasks completed without worktree changes leave all worktree states unchanged. For a trunk result, run `univer open` without `--worktree` and give that viewer URL to the user, identifying it as trunk. When `univer open` fails, report its diagnostic and the exact failed command so the user can retry it. Merge only when the user asks. ## Rework after user feedback Continue in the same worktree only when the user asks for changes to the same task and the worktree ID is already known. Run `univer worktree list <file.univer>` first and confirm that worktree is still `ready` or `draft`. Never reuse a `merged` or `discarded` worktree; create a new worktree instead. For a `ready` worktree, explicitly reopen it before making any content change: ```bash univer worktree reopen <file.univer> --worktree <id> ``` This is the only `ready` → `draft` transition. Reopen does not create a content commit. If the worktree is already `draft`, continue directly without running reopen. The rework loop is: 1. Run the explicit `worktree reopen` command above for the known `ready` worktree, or continue directly if it is already `draft`. 2. Make the remaining edits in that same worktree and verify the updated result. 3. Follow "Finish the task" again: mark it `ready`, confirm the state, open it, and return the new viewer handoff to the user. ## Command map Use `univer <command> --help` as the syntax authority. | Stage | Command | Use | | -------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Start | `new` / `import` | Create an empty file or import xlsx, csv, pptx, docx, or URL content; import prints the unit ID. | | Start | `unit add\|remove\|list` | Unit lifecycle. These are the only lifecycle verbs. Use `--type sheet\|slide\|doc\|base\|board`; edit with `execute`; rename is unsupported. | | Start | `worktree add` / `worktree list` | Create an isolated worktree and check existing states. | | Start | `status` | Show units and worktree states together. | | Write | `execute` | Primary read/write surface; requires `--worktree` and `--unit`; accepts `-e`, `--code`, or `--script`. | | Write | `compile-svg` | The slide element-generation path: compile SVG to Facade operations and apply it with `--page <n> --apply`. | | Write | `compile-typst` | Compile a Typst Source Bundle into a new Doc; inspect JS, diagnostics, and PNG in build-only mode or commit once with `--apply --worktree`. | | Verify | `inspect` | Read-only exploration for Sheet workbook/range, Doc document/paragraph, Slide presentation/page, Base schema, and Board element structure. | | Verify | `screenshot` | Render PNG evidence. Use it for every slide page and run `screenshot setup` first. | | Deliver | `worktree ready\|reopen\|merge\|discard` | Mark work ready for review or explicitly reopen it for same-task rework; the user owns merge. | | Deliver | `export` / `print-pdf` / `open` | Export Office files or print Sheet, Doc, Slide, or Board PDF; `open` only prints a viewer URL for the user. | | System | `daemon status\|start\|stop` / `config` | Start diagnosis with `daemon status`. | | Maintain | `optimize` | Write a new copy with explicit `--worktrees clean`, `--history reset`, and/or `--images externalize`; history reset implies terminal Worktree cleanup and refuses active Worktrees. Omitted passes preserve their data. | ## Facade API lookup - No relevant class or API symbol is known: use `univer api find <query...>` with API-name keywords or identifier fragments. - A class is known: use `univer api show <Class>` to inspect its supported APIs. - A type or exact `Class.member` symbol is known: use `univer api show <symbol>` for its authoritative signature, documentation, referenced types, and examples. `find` is case-insensitive. Each query is searched independently and returns its own matches. Queries are not combined as AND, and `find` does not interpret intent. Pass a useful symbol returned by `find` directly to `show`; do not search for the same symbol again. `show` accepts one or more exact symbols. When several relevant symbols are already known, pass them in one `show` command instead of issuing one command per symbol. Only `find` accepts `--unit sheet|slide|doc|base|board`; use it there to reduce irrelevant Unit-specific results while retaining shared APIs. Do not pass `--unit` to `show`. Treat `show` output as authoritative; do not guess signatures, parameter shapes, or enum values. - The index covers conditional formatting, data validation, filters, sorting, tables, hyperlinks, comments, number formats, charts, pivot tables, shapes, and sparklines. These features use Facade APIs through `execute`; they do not have dedicated commands. - Enumerations are indexed too. For example, `api show ShapeTypeEnum` lists the declared common Shape values. If an enum is absent from the index, inspect it with `return Object.keys(api.Enum.XxxEnum)`. - Use `api find/show` as the version-matched Facade contract instead of reading a repository DTS path.
Auf GitHub ansehen