# dsh-univer-office: an office plugin that puts spreadsheets, docs and slides inside DeepSeek Harness

> The plugin gives a DSH agent a Univer runtime for building and editing Sheets, Docs, Slides, Bases and Boards, with every write landing in an isolated draft you approve or discard. Here is what the repository documents, where the limits are, and who should install it.

**dream-num/dsh-univer-office** — Preview, create, edit office spreadsheets, docs & slides inside DeepSeek Harness. Power by Univer.

- Repository: https://github.com/dream-num/dsh-univer-office
- Website: https://univer.ai
- Stars: 420 · Forks: 38
- Language: TypeScript
- License: Apache-2.0
- Published: 2026-08-22 · Updated: 2026-08-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/dream-num-dsh-univer-office

## What dsh-univer-office adds to a DeepSeek Harness session

DeepSeek Harness on its own is a conversational agent. dsh-univer-office gives it a Univer runtime, so the agent can create and edit spreadsheets, documents, presentations, multidimensional tables and canvases instead of describing them. The README frames the result as an office environment inside the harness: you describe the outcome in natural language, the agent handles creation, editing and verification, and the work stays in the conversation for you to preview, approve or discard.

The intended audience is narrow and specific. You need DSH installed and running before the plugin is useful at all. The package is published on npm as dsh-univer-office, so the install path assumes a working dsh CLI. If you want a spreadsheet library to embed in your own application, this is the wrong layer: Univer itself is the runtime, and this repository is the integration that wires it into DSH's chat, session and settings surfaces.

The README lists the content types it can produce: Sheets, Docs, Slides, Bases and Boards. The Base type is a lightweight database with tables, fields, records and views, and Boards are editable canvases with shapes, text, connectors and native charts. A single .univer file can hold several of these at once, and formulas or embedded content can reference other content in the same file. That last point is the part that separates it from asking a model to emit CSV text: the artifact is a real document model, not a string.

## How the draft, verify and review loop actually works

The README's workflow section describes a four-step cycle: describe the result and supply source files, the agent creates an isolated draft and edits the Univer content, changes appear in a live movable preview window, and review cards stay in the conversation so you can fold them, reopen them fullscreen, approve or discard. Every content type supports isolated draft editing, review, revision, approval and discarding.

That draft isolation is the design decision worth paying attention to. An agent that writes directly into your current workbook is one bad instruction away from destroying work, and there is no undo that survives a session. Here every write starts in a separate draft, and merging into the current version is a deliberate action. The trade-off is that you are in the loop. Long generation tasks need a human to approve the merge, so this is not a pipeline component for unattended batch jobs.

Verification is content-type specific rather than a single generic check. Sheets get structured range inspection, recalculation and range or workbook screenshots. Docs get document readback and page screenshots. Slides get structure inspection plus a lint pass for text bounds, overflow and overlap. Bases get structured data checks, and Boards get element and connector analysis. The slide lint is the most concrete of these: off-page, overflowing and overlapping text are the failure modes a generated deck actually exhibits, and the README states the agent detects them.

Under the hood, package.json describes a bundled collaboration Gateway and Viewer, with inline previews and live floating worktree windows. The client half declares platform web and injects several @deepseek-ai/dsh-client-* modules for locale, chat, conversation, renderer, session and settings. That is why the install instructions end with a browser refresh: the viewer is a web client surface, not a terminal output.

## Installing dsh-univer-office and producing a first spreadsheet

The README's quick start assumes DSH may already be running. If it is, press Ctrl+C in the terminal that started it first. The README notes you can run the installation command while DSH is running, but the current process will not load the new plugin automatically, so a restart is required either way.

Install from npm with the dsh plugin command, specifying the web profile:

```sh
dsh plugin --profile web add dsh-univer-office
```

After installation, restart the harness:

```sh
dsh web
```

Once DSH starts successfully, refresh the existing DeepSeek Harness browser page with Cmd+R or Ctrl+R. If the page still shows no Univer surface, the plugin did not load into the running process.

The first real use is a plain-language request in the chat. The README gives this example:

```text
Create a monthly expense spreadsheet with dates, categories, amounts, a total, and a few rows of sample data.
```

What you should see is a live, movable preview window while the agent works, followed by a review card in the conversation. From the Univer page embedded in that card you can continue editing, approve the draft, or discard it. To get a file you can open elsewhere, ask the agent to export the spreadsheet as .xlsx; the README states the result opens in Excel, WPS Office and other compatible applications. The same pattern applies to documents (.docx) and presentations (.pptx), and Sheets also export to .csv and .tsv.

## Where the plugin stops: Board export, CSV and the harness dependency

The capabilities table is honest about one gap: Board file export is not yet supported. Base and Board support structural verification, but a Board cannot be written out to a file. If your task ends with a diagram that has to leave the conversation as an artifact, the plugin will not produce it.

The export matrix has other edges. Docs import and export .docx only. Slides import and export .pptx only. Bases import nothing, though they export .xlsx, .csv and .tsv. So a Base is a Univer-native structure you build inside the harness, not a view over an existing database file. If your data already lives in a .xlsx and you want a Base view of it, the README does not describe that path.

The harder constraint is the harness itself. This is a DSH plugin, loaded through dsh plugin with a profile, injected into DSH client modules, and patched in via cordis.patch.yml. There is no documented standalone CLI, no headless mode, and no server you can call from a script. If your build pipeline needs to convert a folder of .docx files on a schedule, this is the wrong tool, and no amount of configuration will change that, because the review-and-approve loop is the point of the design rather than an optional layer.

One smaller caveat sits in the install command: it names the web profile explicitly. If your DSH runs under a different profile, the README does not document what happens, and it does not document how to remove or roll back the plugin either.

## How it differs from driving Univer directly

Univer is the runtime this plugin wraps, and the comparison that matters is between adopting Univer through this repository and adopting Univer on its own. Univer is an open source office suite project with its own documentation site at univer.ai, and the package.json here points funding at an Open Collective for Univer. The plugin's own homepage field in package.json points back at the GitHub repository, while the repository's README links to univer.ai.

The difference in approach is who drives the document. With Univer directly, you embed the editor in your application and write the integration code: you decide which toolbar a user sees, how documents are stored, and how changes are persisted. You get full control and you own every piece of glue. With dsh-univer-office, the driver is an agent in a chat session. You get natural-language editing, draft isolation, verification passes and a review card, and you give up control over the editing surface, because the experience is built around DSH's conversation UI and its client injection points.

That makes the two options suit different jobs. If you are building a product where end users edit spreadsheets in a browser, you want Univer and your own front end. If you are an engineer or analyst who wants an agent to produce a reviewed .xlsx, .docx or .pptx from a description, the plugin is the shorter path. A second, blunter alternative is asking the model for CSV or Markdown and pasting it into your office application yourself. That works until you need formulas, charts, pivot tables, conditional formatting, headers and footers, or a slide layout check, which is exactly the surface the capabilities table claims to cover.

## Licence, release cadence and what maintenance costs you

The repository is Apache-2.0, and package.json carries the same identifier with DreamNum Co., Ltd. as author. Apache-2.0 is a permissive licence with an explicit patent grant, which matters more than usual here because the plugin bundles a collaboration Gateway and Viewer alongside the integration code. If you redistribute the package or ship it inside a product, read the licence text and the NOTICE requirements yourself rather than treating this paragraph as legal advice. The Univer runtime and the DSH client modules the plugin injects are separate pieces of software with their own terms, and the README does not enumerate them.

The release history shows a fast, small-version cadence: v0.2.6 on 2026-08-19, v0.2.7 on 2026-08-21, and v0.2.10 on 2026-08-26. The package.json in the repository is already at 0.2.14, ahead of the newest release listed. The last push to the default branch was on 2026-08-26. Nothing in the repository says the project is archived, but the version numbers staying in the 0.x range is the practical signal: expect the API surface and the plugin's behaviour to move, and pin the version you install rather than tracking latest.

Upgrade cost is mostly harness restarts. Because the plugin loads into the DSH process and injects client modules, an upgrade means stopping DSH, updating the plugin, restarting and refreshing the browser. The repository also carries cordis.patch.yml, which the dsh.bundle field uses to patch the harness, so a DSH upgrade that changes those patch points is the scenario most likely to break the plugin. The README does not document a compatibility matrix between plugin versions and DSH versions, so that is something you find out by running it.

## Conclusion

Adopt dsh-univer-office if you already run DeepSeek Harness and want the agent producing reviewable .xlsx, .docx and .pptx artifacts rather than text you paste into Excel yourself. Skip it if you need a standalone office suite or headless batch conversion, because the plugin is loaded by the DSH process and Board export is not supported. Before rolling it out, confirm your DSH profile name matches the --profile web used in the install command, and check that the current DSH process is restarted so the plugin actually loads.

## FAQ

### How do I install dsh-univer-office?

Stop DSH if it is running, then run dsh plugin --profile web add dsh-univer-office, restart with dsh web, and refresh the DeepSeek Harness browser page with Cmd+R or Ctrl+R. Running the install while DSH is up works, but the running process will not load the plugin until you restart it.

### Does dsh-univer-office work without DeepSeek Harness?

No. It is a DSH plugin that installs through the dsh plugin command, injects DSH client modules, and patches the harness through cordis.patch.yml. The README documents no standalone CLI or headless mode.

### Can dsh-univer-office export files I can open in Excel, Word or PowerPoint?

Yes for Sheets, Docs and Slides: the README says to ask the agent to export as .xlsx, .docx or .pptx, and those files open in Excel, WPS Office and other compatible applications. Sheets also export to .csv and .tsv, and Bases export to .xlsx, .csv or .tsv, but Board file export is not yet supported.

## Sources

- [Official documentation](https://univer.ai)
- [Official README](https://github.com/dream-num/dsh-univer-office#readme)
- [Project repository](https://github.com/dream-num/dsh-univer-office)
- [Release notes](https://github.com/dream-num/dsh-univer-office/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/dream-num-dsh-univer-office
