Univer:面向 AI Agent 的全能 Office 框架与开源 SDK
英文标题:🔥 dream-num/univer
Univer 是一款专为 AI Agent 与人机协同打造的高性能、可定制开源 Office SDK,将电子表格、文档、幻灯片等功能整合进统一运行时。该框架采用 Canvas 渲染引擎与插件化解耦设计,并提供在浏览器与 Node.js 端同构的 Facade API,支持无头(Headless)化批处理与自动化流程。结合编程式编辑、隔离工作树(Worktree)协同和视觉化验证能力,Univer 为开发者将现代 Office 能力深度嵌入 SaaS 与 AI 应用提供了强大的底层基础设施。
100.5 KB
68 B
68 B
68 B
68 B
68 B
中文
面向 AI Agent 的 Office 框架
电子表格 · 文档 · 幻灯片 · 多维表格(Bases) · 画板(Boards) · PDF(即将推出)
高性能、完全可定制的 Office SDK
借助插件架构、基于 Canvas 的渲染机制、独立公式引擎,以及同时适用于浏览器和 Node.js 的统一 Facade API,构建可嵌入的生产力体验。
🌐 官方网站 | 📖 技术文档 | ✨ 案例展示 | 📘 API 参考 | 📝 技术博客
Univer 是一款开源 SDK,用于在自有产品中构建 Office 应用。它为你提供电子表格、文档和演示文稿体验的核心组件,而无需受制于托管应用或固定的 UI 界面。
在以下场景中推荐使用 Univer:
- 将电子表格或文档编辑功能无缝嵌入 SaaS 产品、内部工具、BI 工作流或 AI 应用程序。
- 使用与浏览器端完全一致的架构,在服务端运行工作簿/文档处理任务。
- 通过插件按需组合所需功能,或使用预设配置快速上手启动。
- 借助自定义插件、命令、服务、UI 组件和 Facade API 自由扩展系统行为。
Univer 不仅仅是一个电子表格查看器,更是一个用于构建专属生产力工作界面的完整框架。
在 Univer 产品家族中,各类 Office 工具共享底层的存储与计算运行时。内容可以在不同工具间自由组合与嵌入,关联数据与引用会协同更新。人类用户和 AI Agent 可以在同一个文件中协同工作。有关完整功能覆盖请参阅能力矩阵,关于当前开源仓库与专业版(Pro)的涵盖范围请查看相关说明。
基于 Univer Office SDK 构建的项目
以下开源项目基于 Univer Office SDK 构建:
| 项目 | 描述 |
|---|---|
| Univer Workspace | 面向人类与 AI Agent 协作的 Office 工作区,支持协同编辑与对 Agent 修改的审查。 |
| Univer Office for DeepSeek Harness | 专为 DeepSeek Harness 打造的 Office 插件,支持内容互通、校验及适用于 Agent 协作的隔离工作树(Worktree)。 |
| Univer CLI | 供 Agent 创建、编辑、检查并交付 Office 内容的本地命令行工作空间。 |
| Univer Office for WorkBuddy | 面向 WorkBuddy 的本地 Office 集成套件,支持 MCP 预览与草稿审查(开发预览版)。 |
| Univer Office for OpenClaw | 用于在 OpenClaw 中创建、审查和交付 Office 内容的工具集。 |
每个项目均有其独立的安装设置说明与 SDK 授权条款。
| ⚡专为超大工作区打造基于 Canvas 的渲染机制与专用公式引擎,保证超大型复杂工作簿依然流畅响应。 | 🧩原生插件化设计可自由组合、替换、懒加载或扩展各项能力,无需被动打包整套臃肿技术栈。 | 🤖面向 AI 基础设施的无头(Headless)运行在 Node.js 中执行工作簿与文档业务逻辑,为 Agent、自动化及服务端工作流提供动力。 |
|---|---|---|
| 🛠️生产就绪型 SDK提供框架适配器、Facade API、预设方案与无头运行时,完美契合真实的业务集成路径。 | 🌗原生支持暗色模式UI 组件与底层渲染引擎均能同时自适应亮色与暗色主题。 | 🔌统一 Facade API一套在浏览器与 Node.js 端完全一致的 API 接口,统筹管理工作簿、选区、公式和文档。 |
- 同构设计:支持在浏览器中运行交互式 UI 应用,同时支持在 Node.js 中执行无头(Headless)处理逻辑。
- 插件优先架构:所有能力均作为可组合插件交付,功能可自由添加、移除、替换或懒加载。
- 预设模式(Preset Mode)快速集成:当需要快速搭建一个可运行的应用时,可直接使用
presets/中精选的插件包集合。 - 插件模式(Plugin Mode)深度控制:当需要自定义加载机制、更小的打包体积或进行深度系统集成时,可手动组合各个包。
- Facade API:通过高级封装 API 便捷操作工作簿、工作表、单元格选区、文档、公式、命令与事件监听。
- Canvas 渲染引擎:通过跨文档类型共享的统一底层渲染层,支持大型可编辑文档表面。
- 高可扩展性 UI:可轻松集成至 React、Vue、Web Components 及特定框架的应用外壳(Shell)中。
🤖 面向 AI Agent 的 Office 工作流
Univer 的 AI 与协作能力将 Agent 的自动化操作与人类的交互式编辑、审核无缝打通:
- 编程式编辑:Agent 通过结构化 API 检查并修改 Office 内容。
- 产出结果验证:Agent 可通过内容检测、渲染截图以及布局诊断工具校验最终输出结果。
- Worktree 隔离协作:Agent 在独立的草稿工作树(Worktree)中工作,人类用户可对其变更进行直观审查并决定合并哪些内容。
关于集成的更多详细信息,请参阅 AI SDK 文档。实时协同编辑、共享修订以及 Worktree 工作流需要搭配相应的 Web SDK 和协作能力支持;不同功能包的可用性与许可证授权范围可能存在差异。
如需完整的产品能力覆盖与精细的模块组合,请使用 Plugin Mode(插件模式)。对于受支持的表格(Sheets)、文档(Docs)和 Node 环境,Preset Mode(预设模式) 提供了更精简、开箱即用的配置方案。
Plugin Mode(插件模式)
插件模式赋予你对依赖包、样式引入、国际化语言包合并、Facade API 注册以及插件配置等全流程的细粒度控制能力:
bash pnpm add @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui @univerjs/sheets-ui @univerjs/ui
typescript import { LocaleType, mergeLocales, Univer } from '@univerjs/core' import { FUniver } from '@univerjs/core/facade' import DesignEnUS from '@univerjs/design/locale/en-US' import { UniverDocsPlugin } from '@univerjs/docs' import { UniverDocsUIPlugin } from '@univerjs/docs-ui' import DocsUIEnUS from '@univerjs/docs-ui/locale/en-US' import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula' import { UniverRenderEnginePlugin } from '@univerjs/engine-render' import { UniverSheetsPlugin } from '@univerjs/sheets' import SheetsEnUS from '@univerjs/sheets/locale/en-US' import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula' import SheetsFormulaEnUS from '@univerjs/sheets-formula/locale/en-US' import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui' import SheetsFormulaUIEnUS from '@univerjs/sheets-formula-ui/locale/en-US' import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt' import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui' import SheetsNumfmtUIEnUS from '@univerjs/sheets-numfmt-ui/locale/en-US' import { UniverSheetsUIPlugin } from '@univerjs/sheets-ui' import SheetsUIEnUS from '@univerjs/sheets-ui/locale/en-US' import { UniverUIPlugin } from '@univerjs/ui' import UIEnUS from '@univerjs/ui/locale/en-US'
import '@univerjs/design/lib/index.css' import '@univerjs/ui/lib/index.css' import '@univerjs/docs-ui/lib/index.css' import '@univerjs/sheets-ui/lib/index.css' import '@univerjs/sheets-formula-ui/lib/index.css' import '@univerjs/sheets-numfmt-ui/lib/index.css'
import '@univerjs/engine-formula/facade' import '@univerjs/ui/facade' import '@univerjs/sheets/facade' import '@univerjs/sheets-ui/facade' import '@univerjs/sheets-formula/facade' import '@univerjs/sheets-numfmt/facade'
const univer = new Univer({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( DesignEnUS, UIEnUS, DocsUIEnUS, SheetsEnUS, SheetsUIEnUS, SheetsFormulaEnUS, SheetsFormulaUIEnUS, SheetsNumfmtUIEnUS, ), }, })
univer.registerPlugin(UniverRenderEnginePlugin) univer.registerPlugin(UniverFormulaEnginePlugin) univer.registerPlugin(UniverUIPlugin, { container: 'app' }) univer.registerPlugin(UniverDocsPlugin) univer.registerPlugin(UniverDocsUIPlugin) univer.registerPlugin(UniverSheetsPlugin) univer.registerPlugin(UniverSheetsUIPlugin) univer.registerPlugin(UniverSheetsFormulaPlugin) univer.registerPlugin(UniverSheetsFormulaUIPlugin) univer.registerPlugin(UniverSheetsNumfmtPlugin) univer.registerPlugin(UniverSheetsNumfmtUIPlugin)
const univerAPI = FUniver.newAPI(univer) univerAPI.createWorkbook({})
Preset Mode(预设模式)
预设是一组精选的 Univer 插件包集合,内置了必需的 Facade API 注册逻辑与样式表:
bash pnpm add @univerjs/presets @univerjs/preset-sheets-core
typescript import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core' import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US' import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'
import '@univerjs/preset-sheets-core/lib/index.css'
const { univerAPI } = createUnive
English / 原文
The Office Harness for AI Agents
Spreadsheets · Documents · Presentations · Bases · Boards · PDFs (coming soon)
High-performance, fully customizable Office SDK
Build embeddable productivity experiences with a plugin architecture, Canvas-based rendering, a formula engine, and one Facade API that works in the browser and on Node.js.
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español
🌐 Website | 📖 Documentation | ✨ Showcase | 📘 API Reference | 📝 Blog
Univer is an open-source SDK for creating office applications inside your own product. It gives you the building blocks for spreadsheet, document, and presentation experiences without forcing you into a hosted app or a fixed UI.
Use Univer when you need to:
- Embed spreadsheet or document editing into a SaaS product, internal tool, BI workflow, or AI application.
- Run workbook/document processing on the server with the same architecture used in the browser.
- Compose only the features you need through plugins or start quickly with presets.
- Extend behavior through custom plugins, commands, services, UI components, and Facade APIs.
Univer is not a spreadsheet file viewer only. It is a framework for building your own productivity surface.
Across the Univer product family, Office tools share a runtime for storage and computation. Content can be composed and embedded across tools, with linked data and references updating together. People and AI agents can work in the same files. See the capability matrix for product coverage and Open Source and Pro for this repository's scope.
Built with Univer Office SDK
These open-source projects are built with Univer Office SDK:
| Project | Description |
|---|---|
| Univer Workspace | An Office workspace for people and AI agents, with shared editing and review of agent changes. |
| Univer Office for DeepSeek Harness | An Office plugin for DeepSeek Harness with connected content, validation, and isolated worktrees for agent collaboration. |
| Univer CLI | A local command-line workspace for agents to create, edit, inspect, and deliver Office content. |
| Univer Office for WorkBuddy | A local Office integration for WorkBuddy with MCP previews and draft review. Development preview. |
| Univer Office for OpenClaw | Tools for creating, reviewing, and delivering Office content in OpenClaw. |
Each project documents its own setup and SDK licensing requirements.
⚡
Built for large surfaces
Canvas-based rendering and a dedicated formula engine keep complex workbooks responsive. | 🧩
Plugin-shaped by default
Compose, replace, lazy-load, or extend capabilities without taking the whole stack. | 🤖
Headless for AI infrastructure
Run workbook and document logic in Node.js to power agents, automation, and server-side workflows.
---|---|---
🛠️
Product-ready SDK
Framework adapters, Facade APIs, presets, and headless runtime fit real integration paths. | 🌗
Dark-mode ready
UI components and the rendering engine both adapt to light and dark themes. | 🔌
Unified Facade API
One consistent API surface for workbooks, ranges, formulas, and documents across browser and Node.js.
- Isomorphic by design : run UI apps in browsers and headless processing in Node.js.
- Plugin-first architecture : every capability is delivered as a composable plugin, so features can be added, removed, replaced, or lazy-loaded.
- Preset mode for fast integration : use the curated plugin collections in
presets/when you want a working app quickly. - Plugin mode for full control : manually compose packages when you need custom loading, smaller bundles, or deep integration.
- Facade API : work with workbooks, worksheets, ranges, documents, formulas, commands, and events through a higher-level API.
- Canvas rendering engine : support large editable document surfaces with a rendering layer shared across document types.
- Extensible UI : integrate with React, Vue, Web Components, and framework-specific application shells.
🤖 Office Workflows for AI Agents
Univer's AI and collaboration capabilities connect agent operations with interactive editing and human review:
- Programmatic editing : agents inspect and modify Office content through structured APIs.
- Output verification : agents check results through content inspection, rendered screenshots, and layout diagnostics.
- Worktree collaboration : agents work in isolated drafts, then people review their changes and decide what to merge.
See the AI SDK documentation for integration details. Live editing, shared revisions, and Worktree workflows require the corresponding Web SDK and collaboration capabilities; package availability and licensing vary by feature.
Use Plugin Mode for complete product coverage and precise composition. For supported Sheets, Docs, and Node profiles, Preset Mode provides a shorter curated setup.
Plugin Mode
Plugin Mode gives you lower-level control over packages, style imports, locale merging, Facade API registration, and plugin configuration.
pnpm add @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui @univerjs/sheets-ui @univerjs/ui
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'
import { FUniver } from '@univerjs/core/facade'
import DesignEnUS from '@univerjs/design/locale/en-US'
import { UniverDocsPlugin } from '@univerjs/docs'
import { UniverDocsUIPlugin } from '@univerjs/docs-ui'
import DocsUIEnUS from '@univerjs/docs-ui/locale/en-US'
import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'
import { UniverRenderEnginePlugin } from '@univerjs/engine-render'
import { UniverSheetsPlugin } from '@univerjs/sheets'
import SheetsEnUS from '@univerjs/sheets/locale/en-US'
import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
import SheetsFormulaEnUS from '@univerjs/sheets-formula/locale/en-US'
import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'
import SheetsFormulaUIEnUS from '@univerjs/sheets-formula-ui/locale/en-US'
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'
import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui'
import SheetsNumfmtUIEnUS from '@univerjs/sheets-numfmt-ui/locale/en-US'
import { UniverSheetsUIPlugin } from '@univerjs/sheets-ui'
import SheetsUIEnUS from '@univerjs/sheets-ui/locale/en-US'
import { UniverUIPlugin } from '@univerjs/ui'
import UIEnUS from '@univerjs/ui/locale/en-US'
import '@univerjs/design/lib/index.css'
import '@univerjs/ui/lib/index.css'
import '@univerjs/docs-ui/lib/index.css'
import '@univerjs/sheets-ui/lib/index.css'
import '@univerjs/sheets-formula-ui/lib/index.css'
import '@univerjs/sheets-numfmt-ui/lib/index.css'
import '@univerjs/engine-formula/facade'
import '@univerjs/ui/facade'
import '@univerjs/sheets/facade'
import '@univerjs/sheets-ui/facade'
import '@univerjs/sheets-formula/facade'
import '@univerjs/sheets-numfmt/facade'
const univer = new Univer({
locale: LocaleType.EN_US,
locales: {
[LocaleType.EN_US]: mergeLocales(
DesignEnUS,
UIEnUS,
DocsUIEnUS,
SheetsEnUS,
SheetsUIEnUS,
SheetsFormulaEnUS,
SheetsFormulaUIEnUS,
SheetsNumfmtUIEnUS,
),
},
})
univer.registerPlugin(UniverRenderEnginePlugin)
univer.registerPlugin(UniverFormulaEnginePlugin)
univer.registerPlugin(UniverUIPlugin, { container: 'app' })
univer.registerPlugin(UniverDocsPlugin)
univer.registerPlugin(UniverDocsUIPlugin)
univer.registerPlugin(UniverSheetsPlugin)
univer.registerPlugin(UniverSheetsUIPlugin)
univer.registerPlugin(UniverSheetsFormulaPlugin)
univer.registerPlugin(UniverSheetsFormulaUIPlugin)
univer.registerPlugin(UniverSheetsNumfmtPlugin)
univer.registerPlugin(UniverSheetsNumfmtUIPlugin)
const univerAPI = FUniver.newAPI(univer)
univerAPI.createWorkbook({})
Preset Mode
Presets are curated collections of Univer plugins that include the required Facade API registrations and styles.
pnpm add @univerjs/presets @univerjs/preset-sheets-core
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'
import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'
import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'
import '@univerjs/preset-sheets-core/lib/index.css'
const { univerAPI } = createUniver({
locale: LocaleType.EN_US,
locales: {
[LocaleType.EN_US]: mergeLocales(UniverPresetSheetsCoreEnUS),
},
presets: [
UniverSheetsCorePreset({
container: 'app',
}),
],
})
univerAPI.createWorkbook({})
Your page needs a container:
<div id="app" style="height: 100vh"></div>
Learn more in the Installation & Basic Usage guide, the createUniver reference, and the Facade API reference.
🧩 Preset Mode vs Plugin Mode
| Choose | When to use it | Start here |
|---|---|---|
| Plugin Mode | You need strict control over packages, configured dependencies, lazy loading, or custom runtime composition. | This repository's examples/ and architecture guide |
| Preset Mode | You want a working Sheets, Docs, or Node setup with minimal configuration. | This repository's presets/ and the getting started guide |
| Headless Mode | You need server-side workbook/document processing, formula calculation, or automation without UI. | Headless Univer |
Keep the @univerjs/* SDK packages in the same coordinated Univer release line on the same version. Independently released packages, including @univerjs/icons and @univerjs/icons-svg, use the compatible versions declared by package manifests instead of the SDK version. If you use Univer Pro packages, keep @univerjs-pro/* aligned with the matching coordinated release line.
For API compatibility expectations, experimental APIs, internal APIs, and deprecation rules, see the API Stability Policy.
- Browser runtime : Univer is compiled with a Chrome 88 target and aims to work on Edge
>=88, Firefox>=90, Chrome>=88, Safari>=14.1, and Electron>=12. - Polyfills : Univer relies on
Intl.Segmenter. Add a polyfill such as@formatjs/intl-segmenterif your target browser or runtime does not provide it. - Build tools : We recommend Vite, esbuild, or Webpack 5. If your build tool does not support the
exportsfield inpackage.json(common in Webpack 4), you may need extra path mapping. - React : Univer's view layer is built on React 18, supports React 18 and 19, and provides minimal compatibility support for React 16.9+ and 17.
- Node.js runtime : Headless Univer supports Node.js
>=18.17.0. Developing this monorepo requires Node.js>=22.18.
| Area | Open-source capabilities | Univer Pro extensions |
|---|---|---|
| Sheets | Workbooks, worksheets, ranges, selection, formulas, number formatting, filtering, sorting, data validation, conditional formatting, hyperlinks, comments, find and replace, notes, tables, drawing integration, and extensible UI plugins. | Real-time collaboration, edit history, import/export, printing, charts, pivot tables, sparklines, outlines, shapes, in-cell graphics, data connectors, server-side calculation, and performance-enhanced formula features. |
| Docs | Rich document model, editing UI, lists, hyperlinks, drawing integration, comments, quick insert, and shared document architecture. | Collaboration, import/export, printing, enhanced tables and lists, columns, callouts, code blocks, quotes, shapes, and remote comment resources. |
| Slides | Presentation data model and UI packages under active development. | Pro slide model and UI, slide import/export, chart and table model/UI plugins, and shared shape-editing infrastructure. |
| Bases | Build custom structured-data experiences on top of Univer's plugin, command, and model architecture. | Base database model, commands, formula integration, workbench UI, field editors, and render-engine views. |
| Runtime | Browser apps, Node.js headless usage, Web Worker/RPC patterns, multi-instance usage, and server-oriented automation. | Collaboration client/server packages, Node.js collaboration client, Pro server services, SSR, computing delegation, server-side calculation, and changeset replay tooling. |
| Integrations | React, Vue, Web Components, framework templates, theming, localization, and custom plugins. | Pro presets and enterprise deployment packages. |
Sheets are the most mature product surface today. Docs and Slides share Univer's architecture and continue to evolve in the same SDK.
This repository contains Univer's open-source core and first-party OSS plugins. Univer Pro is developed separately as a commercial extension layer for advanced product surfaces, collaboration, server features, and enterprise integrations.
| Category | Open source | Univer Pro / commercial |
|---|---|---|
| Foundation | Core SDK, plugin system, rendering engine, formula engine, Facade API, themes, i18n, and framework adapters. | Pro presets and enterprise deployment packages. |
| Sheets | Core spreadsheet editing, formulas, number formatting, filter/sort, data validation, conditional formatting, notes, tables, hyperlinks, comments, drawing, find and replace. | Collaboration, edit history, import/export, print, charts, pivot tables, sparklines, outlines, shapes, in-cell graphics, data connectors, range preprocessing, and enhanced formula engine features. |
| Docs | Document model and editor UI, lists, hyperlinks, comments, quick insert, and drawing integration. | Collaboration, import/export, print, enhanced tables/lists, columns, callouts, code blocks, quotes, shapes, and remote thread-comment resources. |
| Slides | OSS presentation model and UI packages. | Pro slide model/UI packages, slide import/export, charts, tables, and reusable shape editor UI. |
| Bases | Extensible plugin architecture for custom data-centric products. | Base database core model, commands, mutations, formula integration, workbench UI, field editors, and render-engine integration. |
| Server and runtime | Node.js headless runtime, RPC/Web Worker patterns, and server-oriented automation primitives. | Collaboration server, Node.js collaboration client, SSR services, computing delegation, server-side calculation, and collaboration changeset replay tooling. |
Pro features are documented in the Univer Pro guide. They are intentionally separated here so the OSS package surface is clear.
Boundary principles:
-
OSS packages in this repository are intended to be useful on their own under the Apache-2.0 license. Univer Pro is optional and is not required to use the public OSS SDK APIs.
-
Bugs, regressions, and security issues in OSS packages should be reported and fixed in the OSS repository, even when a related Pro feature exists.
-
OSS documentation should not imply that Pro-only capabilities are available in public
@univerjs/*packages. Pro-only APIs, packages, and deployment paths should be named explicitly. -
When an OSS feature has a Pro enhancement, the OSS behavior should remain documented independently so users can evaluate the open-source surface without reading commercial docs first.
-
Core SDK :
dream-num/univer, this monorepo. -
Presets : this repository's
presets/, curated plugin collections for browser and Node.js apps. -
AI agent skills :
dream-num/univer-sdk-skills, reusable instructions for AI agents working with Univer integration, Pro features, plugin development, and Node backends. See the AI Skills guide. -
Documentation : docs.univer.ai, including Sheets, Docs, Slides, recipes, and Pro guides.
-
Web SDK : embedded editors and headless processing in the browser and Node.js.
-
Server SDK : collaboration and file conversion, integrated with your application's storage, identity, and permissions.
-
AI SDK : agent workflows for inspecting, editing, and verifying Office content.
-
API Reference : docs.univer.ai/reference, the Facade API and generated API reference.
-
Examples and showcase : Univer Showcase and this repository's
examples/. -
AI-native spreadsheets :
dream-num/univer-mcp, Univer Platform / MCP integration for driving Univer Sheets with natural language.. ├── packages/ Core packages, engines, document types, UI plugins, and feature plugins ├── examples/ All-in-one Vite workbench used for local browser development ├── common/ Shared internal tooling, storybook, and utilities ├── tests/ Additional integration test projects └── docs/ Architecture notes, images, and repository-local documentation
Package-level READMEs live beside each package under packages/.
Requirements:
-
Node.js
>=22.18 -
pnpm
>=11git clone https://github.com/dream-num/univer.git cd univer pnpm install pnpm dev
Useful commands:
| Command | Purpose |
|---|---|
pnpm dev |
Start the all-in-one Sheets, Docs, and Slides workbench with Vite 8 Bundled Dev and HMR. |
pnpm build |
Build workspace packages, excluding internal common packages. |
pnpm test |
Run unit tests through Turbo. |
pnpm typecheck |
Run TypeScript checks through Turbo. |
pnpm lint |
Run ESLint. |
pnpm storybook:dev |
Start Storybook for UI component development. |
Read CONTRIBUTING.md before opening a pull request.
Repository-local notes worth reading before deeper changes:
- Building Isomorphic Univer: how to split browser, Node.js, UI, and shared plugin logic.
- API Stability Policy: stable, experimental, internal, deprecated, and breaking-change expectations.
- Contributing to Facade API: API design expectations for
FUniver,FWorkbook,FRange, and related Facade classes. - Naming Convention: file, folder, interface, plugin, command, and dependency injection token conventions.
- Fixing Memory Leaks: common leak patterns and debugging workflow for Univer instances.
- Architecture TLDRs: concise notes for formula engine, web worker, permission, selection, and ref-range behavior.
💬 Community
Please read the Code of Conduct before participating.
If you believe you have found a security issue, please follow the Security Policy.
❤️ Sponsors
Univer is supported by the community and sponsors. You can support the project through Open Collective.
Copyright (c) 2021-present DreamNum Co., Ltd.
Licensed under the Apache-2.0 license.
