dream-num/univerPublic

The Office Harness for AI Agents — Spreadsheets, Docs, Slides, Canvas, Relational Tables, and PDF in one runtime.

AI summary: A high-performance SDK for embedding collaborative spreadsheets, documents, and presentations.

Stars
22.4K
+85 today
Forks
1.9K
Watchers
378
Open issues
97
Open PRs
45
Contributors
~81
Commits
5.8K
Branches
35

TypeScriptApache-2.0Created Sep 29, 2022Last push todayLatest release v1.0.3+2.2K stars this week+7K this month

Quick answers

What is univer?
A high-performance SDK for embedding collaborative spreadsheets, documents, and presentations.
What does univer do?
Univer is a robust SDK that allows developers to embed office-like productivity experiences directly into their applications. It features a Canvas-based rendering engine and a powerful formula engine for handling complex spreadsheets. The project utilizes a flexible plugin architecture to support documents, presentations, and interactive boards. It offers a unified Facade API that operates seamlessly across both browser and Node.js environments.
Who is univer for?
Frontend developers and software architects building data-intensive applications or custom office solutions. Users should have a strong understanding of web development and JavaScript/TypeScript.
How popular is univer on GitHub?
dream-num/univer has 22,353 stars and 1,868 forks on GitHub, and gained 2,214 stars in the last 7 days.
What license does univer use?
dream-num/univer is released under the Apache-2.0 license.

Star history

since Sep 22, 2026
010K20KSep 2026Sep 2026Sep 2026Oct 2026
22.4K stars as of Oct 4, 2026. Measured daily since Sep 22, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 1 commit2025-10-10: 5 commits2025-10-11: 3 commits2025-10-12: 0 commits2025-10-13: 1 commit2025-10-14: 0 commits2025-10-15: 4 commits2025-10-16: 4 commits2025-10-17: 1 commit2025-10-18: 2 commits2025-10-19: 0 commits2025-10-20: 1 commit2025-10-21: 4 commits2025-10-22: 2 commits2025-10-23: 8 commits2025-10-24: 7 commits2025-10-25: 4 commits2025-10-26: 0 commits2025-10-27: 1 commit2025-10-28: 0 commits2025-10-29: 5 commits2025-10-30: 4 commits2025-10-31: 4 commits2025-11-01: 2 commits2025-11-02: 0 commits2025-11-03: 3 commits2025-11-04: 3 commits2025-11-05: 0 commits2025-11-06: 7 commits2025-11-07: 5 commits2025-11-08: 4 commits2025-11-09: 0 commits2025-11-10: 9 commits2025-11-11: 2 commits2025-11-12: 2 commits2025-11-13: 9 commits2025-11-14: 12 commits2025-11-15: 6 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 1 commit2025-11-19: 2 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 7 commits2025-11-23: 0 commits2025-11-24: 6 commits2025-11-25: 0 commits2025-11-26: 5 commits2025-11-27: 2 commits2025-11-28: 1 commit2025-11-29: 6 commits2025-11-30: 0 commits2025-12-01: 2 commits2025-12-02: 3 commits2025-12-03: 3 commits2025-12-04: 1 commit2025-12-05: 2 commits2025-12-06: 2 commits2025-12-07: 0 commits2025-12-08: 2 commits2025-12-09: 4 commits2025-12-10: 8 commits2025-12-11: 6 commits2025-12-12: 5 commits2025-12-13: 3 commits2025-12-14: 0 commits2025-12-15: 6 commits2025-12-16: 5 commits2025-12-17: 8 commits2025-12-18: 4 commits2025-12-19: 3 commits2025-12-20: 2 commits2025-12-21: 1 commit2025-12-22: 6 commits2025-12-23: 4 commits2025-12-24: 3 commits2025-12-25: 6 commits2025-12-26: 6 commits2025-12-27: 5 commits2025-12-28: 0 commits2025-12-29: 1 commit2025-12-30: 3 commits2025-12-31: 3 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 1 commit2026-01-05: 2 commits2026-01-06: 4 commits2026-01-07: 8 commits2026-01-08: 5 commits2026-01-09: 5 commits2026-01-10: 4 commits2026-01-11: 0 commits2026-01-12: 1 commit2026-01-13: 2 commits2026-01-14: 4 commits2026-01-15: 5 commits2026-01-16: 0 commits2026-01-17: 5 commits2026-01-18: 0 commits2026-01-19: 2 commits2026-01-20: 2 commits2026-01-21: 4 commits2026-01-22: 4 commits2026-01-23: 3 commits2026-01-24: 2 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 5 commits2026-01-28: 2 commits2026-01-29: 6 commits2026-01-30: 9 commits2026-01-31: 1 commit2026-02-01: 0 commits2026-02-02: 4 commits2026-02-03: 0 commits2026-02-04: 1 commit2026-02-05: 2 commits2026-02-06: 1 commit2026-02-07: 2 commits2026-02-08: 0 commits2026-02-09: 3 commits2026-02-10: 2 commits2026-02-11: 4 commits2026-02-12: 1 commit2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 1 commit2026-02-21: 1 commit2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 5 commits2026-02-25: 5 commits2026-02-26: 5 commits2026-02-27: 4 commits2026-02-28: 3 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 4 commits2026-03-04: 3 commits2026-03-05: 1 commit2026-03-06: 1 commit2026-03-07: 4 commits2026-03-08: 0 commits2026-03-09: 5 commits2026-03-10: 3 commits2026-03-11: 3 commits2026-03-12: 2 commits2026-03-13: 4 commits2026-03-14: 4 commits2026-03-15: 0 commits2026-03-16: 5 commits2026-03-17: 5 commits2026-03-18: 3 commits2026-03-19: 1 commit2026-03-20: 2 commits2026-03-21: 1 commit2026-03-22: 0 commits2026-03-23: 6 commits2026-03-24: 8 commits2026-03-25: 2 commits2026-03-26: 0 commits2026-03-27: 3 commits2026-03-28: 3 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 1 commit2026-04-01: 0 commits2026-04-02: 3 commits2026-04-03: 1 commit2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 3 commits2026-04-07: 1 commit2026-04-08: 5 commits2026-04-09: 2 commits2026-04-10: 6 commits2026-04-11: 4 commits2026-04-12: 1 commit2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 5 commits2026-04-16: 2 commits2026-04-17: 2 commits2026-04-18: 3 commits2026-04-19: 0 commits2026-04-20: 2 commits2026-04-21: 5 commits2026-04-22: 2 commits2026-04-23: 1 commit2026-04-24: 4 commits2026-04-25: 1 commit2026-04-26: 0 commits2026-04-27: 4 commits2026-04-28: 4 commits2026-04-29: 4 commits2026-04-30: 1 commit2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 4 commits2026-05-07: 3 commits2026-05-08: 3 commits2026-05-09: 3 commits2026-05-10: 0 commits2026-05-11: 2 commits2026-05-12: 4 commits2026-05-13: 5 commits2026-05-14: 2 commits2026-05-15: 4 commits2026-05-16: 4 commits2026-05-17: 0 commits2026-05-18: 7 commits2026-05-19: 3 commits2026-05-20: 1 commit2026-05-21: 4 commits2026-05-22: 5 commits2026-05-23: 2 commits2026-05-24: 0 commits2026-05-25: 5 commits2026-05-26: 8 commits2026-05-27: 8 commits2026-05-28: 6 commits2026-05-29: 9 commits2026-05-30: 6 commits2026-05-31: 2 commits2026-06-01: 5 commits2026-06-02: 4 commits2026-06-03: 4 commits2026-06-04: 2 commits2026-06-05: 4 commits2026-06-06: 4 commits2026-06-07: 0 commits2026-06-08: 8 commits2026-06-09: 3 commits2026-06-10: 7 commits2026-06-11: 6 commits2026-06-12: 8 commits2026-06-13: 7 commits2026-06-14: 1 commit2026-06-15: 4 commits2026-06-16: 4 commits2026-06-17: 7 commits2026-06-18: 9 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 1 commit2026-06-22: 7 commits2026-06-23: 8 commits2026-06-24: 8 commits2026-06-25: 7 commits2026-06-26: 7 commits2026-06-27: 7 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 3 commits2026-07-02: 5 commits2026-07-03: 4 commits2026-07-04: 7 commits2026-07-05: 1 commit2026-07-06: 9 commits2026-07-07: 7 commits2026-07-08: 3 commits2026-07-09: 7 commits2026-07-10: 6 commits2026-07-11: 10 commits2026-07-12: 0 commits2026-07-13: 6 commits2026-07-14: 11 commits2026-07-15: 8 commits2026-07-16: 6 commits2026-07-17: 9 commits2026-07-18: 5 commits2026-07-19: 1 commit2026-07-20: 5 commits2026-07-21: 1 commit2026-07-22: 6 commits2026-07-23: 8 commits2026-07-24: 7 commits2026-07-25: 8 commits2026-07-26: 2 commits2026-07-27: 13 commits2026-07-28: 5 commits2026-07-29: 10 commits2026-07-30: 7 commits2026-07-31: 5 commits2026-08-01: 8 commits2026-08-02: 7 commits2026-08-03: 12 commits2026-08-04: 2 commits2026-08-05: 8 commits2026-08-06: 2 commits2026-08-07: 3 commits2026-08-08: 9 commits2026-08-09: 3 commits2026-08-10: 8 commits2026-08-11: 13 commits2026-08-12: 10 commits2026-08-13: 7 commits2026-08-14: 6 commits2026-08-15: 12 commits2026-08-16: 2 commits2026-08-17: 13 commits2026-08-18: 9 commits2026-08-19: 7 commits2026-08-20: 2 commits2026-08-21: 10 commits2026-08-22: 5 commits2026-08-23: 0 commits2026-08-24: 3 commits2026-08-25: 3 commits2026-08-26: 3 commits2026-08-27: 7 commits2026-08-28: 8 commits2026-08-29: 4 commits2026-08-30: 1 commit2026-08-31: 1 commit2026-09-01: 1 commit2026-09-02: 1 commit2026-09-03: 4 commits2026-09-04: 2 commits2026-09-05: 1 commit2026-09-06: 0 commits2026-09-07: 3 commits2026-09-08: 5 commits2026-09-09: 10 commits2026-09-10: 4 commits2026-09-11: 3 commits2026-09-12: 1 commit2026-09-13: 0 commits2026-09-14: 1 commit2026-09-15: 2 commits2026-09-16: 6 commits2026-09-17: 8 commits2026-09-18: 4 commits2026-09-19: 0 commits2026-09-20: 8 commits2026-09-21: 14 commits2026-09-22: 1 commit2026-09-23: 2 commits2026-09-24: 4 commits2026-09-25: 0 commits2026-09-26: 0 commits2026-09-27: 3 commits2026-09-28: 11 commits2026-09-29: 8 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
1,244 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    22,353 stars

  • Rising fast

    +2,214 stars this week

  • Very active

    1,244 commits in 52 weeks

  • Well documented

    High community health score

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

  • Repeat trending

    12 trending appearances

What univer does

Univer is a robust SDK that allows developers to embed office-like productivity experiences directly into their applications. It features a Canvas-based rendering engine and a powerful formula engine for handling complex spreadsheets. The project utilizes a flexible plugin architecture to support documents, presentations, and interactive boards. It offers a unified Facade API that operates seamlessly across both browser and Node.js environments.

Frontend developers and software architects building data-intensive applications or custom office solutions. Users should have a strong understanding of web development and JavaScript/TypeScript.

  • Canvas rendering: Ensures high-performance display and interaction for complex data grids.
  • Unified API: Provides a single Facade API to manage data across different environments.
  • Plugin architecture: Allows developers to extend functionality by adding specific productivity modules.
  • Formula engine: Handles complex calculations and spreadsheet functions out of the box.
  • Multi-format support: Embed spreadsheets, text documents, and presentations within a single SDK.

Where teams use it

Building SaaS dashboards

Embed powerful data grids and spreadsheets directly into enterprise business applications.

Creating document editors

Integrate a custom text document editor into internal company wikis or portals.

Developing AI agents

Provide AI assistants with a robust office harness to generate and manipulate structured data.

Replacing iframe embeds

Use a native SDK to build deeply integrated spreadsheet features without relying on external iframes.

README

dev branch
Univer SDK

The Office Harness for AI Agents

Spreadsheets · Documents · Presentations · Bases · Boards · PDFs

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

Release License Build CodeFactor Codecov

Stars Contributors Issues Last Commit

Discord Twitter Open Collective

Trendshift

✨ What is Univer?

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.

Build a collaborative tool with Univer Office SDK

Build a collaborative tool with Univer Office SDK

Watch the demo

Built with Univer Office SDK

Featured example: Univer Workspace

Univer Workspace is an open-source, self-hostable workspace built on Univer Office SDK, where people and AI agents create, collaborate on, and review Office content. Developers can use the complete implementation as a reference, learn how to integrate the SDK, and build their own products.

A Workspace mini-app beside its linked spreadsheet, with metrics, charts, and controls bound to cells

  • Agents can generate spreadsheet-based mini-apps, such as decision-making dashboards, interactive reports, and business dashboards.
  • Metrics, charts, and controls on the web page are bound to cells, supporting data reads, writes, and collaborative updates.

Explore Univer Workspace

Other examples

These open-source projects are built with Univer Office SDK:

Project Description
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.

🌟 Highlights

⚡
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.

🚀 Why Univer?

  • 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.

⚡ Quick Start

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.

🧭 Compatibility

  • 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-segmenter if 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 exports field in package.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.

🛠️ What You Can Build

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 editing UI packages. 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, Docs, and Slides provide spreadsheet, document, and presentation editing on Univer's shared architecture, with a consistent plugin system, command system, and Facade API.

🔓 Open Source and Pro

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.

🌐 Ecosystem

📦 Repository Guide

.
├── 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/.

🧑‍💻 Development

Requirements:

  • Node.js >=22.18
  • pnpm >=11
git 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.

📝 Contributor Notes

Repository-local notes worth reading before deeper changes:

💬 Community

Please read the Code of Conduct before participating.

🔒 Security

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.

Sponsor 0 Sponsor 1 Sponsor 2 Sponsor 3 Sponsor 4 Sponsor 5 Sponsor 6

Backer 0 Backer 1 Backer 2 Backer 3 Backer 4 Backer 5 Backer 6

📄 License

Copyright (c) 2021-present DreamNum Co., Ltd.

Licensed under the Apache-2.0 license.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

114 total
  1. 🕶️ Release v1.0.3v1.0.3Sep 29, 2026

    # Univer 1.0.3 ## New features - **Pivot tables (Pro):** Copy pivot tables together with worksheets. - **Shape hyperlinks (Pro):** Show hyperlink popups when hovering over shape text in Sheets, Docs, Slides, and Boards. - **Notifications:** Support custom CSS classes per notification. - **Extensions:** Expose the destination worksheet name to copy-sheet interceptors. ## Improvements and fixes - **Formulas:** Improve conditional aggregate performance with array criteria. - **Cell editing:** Double-click a cell to select its editable content. - **Sheets:** Fix automatic row heights after paste, filter range updates, and formula editor focus and help positioning. - **Docs:** Preserve selections in long documents and improve paste controls. - **Emoji picker:** Support searching by localized names and keywords. - **Networking:** Fix interceptor disposal and completion handling for merged requests. - **Cross-document formulas (Pro):** Fix stale results after referenced sheets become available. - **Embedded editors (Pro):** Fix missing tools, scrolling behavior, and shape tool activation. - **Boards (Pro):** Avoid redundant undo entries for unchanged text styles. -

  2. 🕶️ Release v1.0.2v1.0.2Sep 24, 2026

    # Univer 1.0.2 This patch release improves PDF import fidelity, restores missing PivotChart data after reopening workbooks, and fixes color rendering in charts and document callouts. ## Bug fixes **Univer Pro** - **PDF import:** Fixed whitespace handling for fonts with custom character mappings, preserving correctly decoded text around spacing adjustments. - **PDF rendering:** Added monospace font fallbacks for Courier and its bold and italic variants. - **PDF persistence:** Preserved import reports when restoring documents and appending pages, including updated page references. - **PivotCharts:** Fixed an issue where standalone, range-based PivotCharts could reopen without calculated data when their saved source fields loaded before the chart definition. - **Pie and doughnut charts:** Fixed explicitly configured slice colors and gradients becoming invisible when the series used a transparent fill. Explicit slice opacity remains respected. - **Docs callouts:** Fixed color presets displaying incorrect text, border, and background colors in dark mode. Improved keyboard focus indicators and accessible selection states. ## Build and dependencies - Updated `@unive

  3. 🕶️ Release v1.0.1v1.0.1Sep 24, 2026

    This patch release fixes React DOM dependency declarations in Univer Pro and updates SDK demos and sample documents. ## Upgrading No public API changes are introduced in this release. **Full changelog:** [v1.0.0…v1.0.1](https://github.com/dream-num/univer/compare/v1.0.0...v1.0.1)

  4. 🎉 Release v1.0.0v1.0.0Sep 24, 2026

    **Univer 1.0 is here.** This release brings six editors—Sheets, Docs, Slides, Boards, Bases, and PDFs—into one programmable Office SDK, with shared plugin and command systems and Facade APIs for each editor. Alongside the new editors, 1.0 improves large spreadsheet calculation, long document layout, Office file compatibility, and mobile editing. The new Server SDK and AI SDK extend integration to backend services and agents. [Read the announcement](https://docs.univer.ai/blog/univer-1-0) · [Try Univer Office](https://office.univer.ai/en-US) · [Browse the documentation](https://docs.univer.ai) > **Upgrading from 0.25?** This is a major release with API removals and package changes. Read [Breaking changes and migration](#breaking-changes-and-migration) before updating. ## Highlights ### Six editors, one integration model Choose the editors your application needs and connect them to your own navigation, accounts, and business data. | Editor | What's new in 1.0 | | --- | --- | | [Sheets](https://docs.univer.ai/guides/sheets) | A reorganized formula engine, 3D and cross-workbook references, formula-linked shapes, expanded pivot table analysis, and PivotCharts. |

  5. 🐢 Release v0.25.2v0.25.2Sep 17, 2026

    ## [0.25.2](https://github.com/dream-num/univer/compare/v0.25.1...v0.25.2) (2026-09-17) ### Bug Fixes * prevent prototype pollution in drawing and formula maps ([69e9ccc](https://github.com/dream-num/univer/commit/69e9cccec98dbf0c51042cd1f3aa370113942d73))

Commits per week

last 52 weeks
590Week of 2025-10-05: 9 commitsWeek of 2025-10-12: 12 commitsWeek of 2025-10-19: 26 commitsWeek of 2025-10-26: 16 commitsWeek of 2025-11-02: 22 commitsWeek of 2025-11-09: 40 commitsWeek of 2025-11-16: 10 commitsWeek of 2025-11-23: 20 commitsWeek of 2025-11-30: 13 commitsWeek of 2025-12-07: 28 commitsWeek of 2025-12-14: 28 commitsWeek of 2025-12-21: 31 commitsWeek of 2025-12-28: 7 commitsWeek of 2026-01-04: 29 commitsWeek of 2026-01-11: 17 commitsWeek of 2026-01-18: 17 commitsWeek of 2026-01-25: 23 commitsWeek of 2026-02-01: 10 commitsWeek of 2026-02-08: 10 commitsWeek of 2026-02-15: 2 commitsWeek of 2026-02-22: 22 commitsWeek of 2026-03-01: 13 commitsWeek of 2026-03-08: 21 commitsWeek of 2026-03-15: 17 commitsWeek of 2026-03-22: 22 commitsWeek of 2026-03-29: 5 commitsWeek of 2026-04-05: 21 commitsWeek of 2026-04-12: 13 commitsWeek of 2026-04-19: 15 commitsWeek of 2026-04-26: 13 commitsWeek of 2026-05-03: 13 commitsWeek of 2026-05-10: 21 commitsWeek of 2026-05-17: 22 commitsWeek of 2026-05-24: 42 commitsWeek of 2026-05-31: 25 commitsWeek of 2026-06-07: 39 commitsWeek of 2026-06-14: 25 commitsWeek of 2026-06-21: 45 commitsWeek of 2026-06-28: 19 commitsWeek of 2026-07-05: 43 commitsWeek of 2026-07-12: 45 commitsWeek of 2026-07-19: 36 commitsWeek of 2026-07-26: 50 commitsWeek of 2026-08-02: 43 commitsWeek of 2026-08-09: 59 commitsWeek of 2026-08-16: 48 commitsWeek of 2026-08-23: 28 commitsWeek of 2026-08-30: 11 commitsWeek of 2026-09-06: 26 commitsWeek of 2026-09-13: 21 commitsWeek of 2026-09-20: 29 commitsWeek of 2026-09-27: 22 commitsOct 5, 2025Sep 27, 2026
1.2K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 5 commitsSun 1:00 — 2 commitsSun 2:00 — 4 commitsSun 3:00 — 4 commitsSun 4:00 — 2 commitsSun 5:00 — 0 commitsSun 6:00 — 2 commitsSun 7:00 — 1 commitsSun 8:00 — 2 commitsSun 9:00 — 4 commitsSun 10:00 — 9 commitsSun 11:00 — 12 commitsSun 12:00 — 14 commitsSun 13:00 — 11 commitsSun 14:00 — 13 commitsSun 15:00 — 16 commitsSun 16:00 — 12 commitsSun 17:00 — 12 commitsSun 18:00 — 29 commitsSun 19:00 — 13 commitsSun 20:00 — 12 commitsSun 21:00 — 6 commitsSun 22:00 — 9 commitsSun 23:00 — 3 commitsMon 0:00 — 12 commitsMon 1:00 — 9 commitsMon 2:00 — 15 commitsMon 3:00 — 6 commitsMon 4:00 — 2 commitsMon 5:00 — 2 commitsMon 6:00 — 2 commitsMon 7:00 — 5 commitsMon 8:00 — 7 commitsMon 9:00 — 17 commitsMon 10:00 — 37 commitsMon 11:00 — 65 commitsMon 12:00 — 30 commitsMon 13:00 — 19 commitsMon 14:00 — 72 commitsMon 15:00 — 65 commitsMon 16:00 — 86 commitsMon 17:00 — 87 commitsMon 18:00 — 59 commitsMon 19:00 — 44 commitsMon 20:00 — 63 commitsMon 21:00 — 65 commitsMon 22:00 — 25 commitsMon 23:00 — 15 commitsTue 0:00 — 13 commitsTue 1:00 — 8 commitsTue 2:00 — 8 commitsTue 3:00 — 1 commitsTue 4:00 — 2 commitsTue 5:00 — 5 commitsTue 6:00 — 6 commitsTue 7:00 — 5 commitsTue 8:00 — 15 commitsTue 9:00 — 20 commitsTue 10:00 — 65 commitsTue 11:00 — 81 commitsTue 12:00 — 41 commitsTue 13:00 — 40 commitsTue 14:00 — 79 commitsTue 15:00 — 87 commitsTue 16:00 — 97 commitsTue 17:00 — 87 commitsTue 18:00 — 55 commitsTue 19:00 — 67 commitsTue 20:00 — 84 commitsTue 21:00 — 81 commitsTue 22:00 — 33 commitsTue 23:00 — 8 commitsWed 0:00 — 9 commitsWed 1:00 — 7 commitsWed 2:00 — 3 commitsWed 3:00 — 4 commitsWed 4:00 — 3 commitsWed 5:00 — 9 commitsWed 6:00 — 4 commitsWed 7:00 — 7 commitsWed 8:00 — 7 commitsWed 9:00 — 20 commitsWed 10:00 — 54 commitsWed 11:00 — 83 commitsWed 12:00 — 43 commitsWed 13:00 — 27 commitsWed 14:00 — 91 commitsWed 15:00 — 95 commitsWed 16:00 — 108 commitsWed 17:00 — 88 commitsWed 18:00 — 69 commitsWed 19:00 — 68 commitsWed 20:00 — 91 commitsWed 21:00 — 70 commitsWed 22:00 — 27 commitsWed 23:00 — 13 commitsThu 0:00 — 8 commitsThu 1:00 — 5 commitsThu 2:00 — 4 commitsThu 3:00 — 3 commitsThu 4:00 — 4 commitsThu 5:00 — 1 commitsThu 6:00 — 5 commitsThu 7:00 — 5 commitsThu 8:00 — 10 commitsThu 9:00 — 11 commitsThu 10:00 — 49 commitsThu 11:00 — 98 commitsThu 12:00 — 34 commitsThu 13:00 — 19 commitsThu 14:00 — 96 commitsThu 15:00 — 86 commitsThu 16:00 — 101 commitsThu 17:00 — 101 commitsThu 18:00 — 60 commitsThu 19:00 — 67 commitsThu 20:00 — 78 commitsThu 21:00 — 54 commitsThu 22:00 — 17 commitsThu 23:00 — 6 commitsFri 0:00 — 7 commitsFri 1:00 — 6 commitsFri 2:00 — 2 commitsFri 3:00 — 2 commitsFri 4:00 — 4 commitsFri 5:00 — 4 commitsFri 6:00 — 3 commitsFri 7:00 — 6 commitsFri 8:00 — 4 commitsFri 9:00 — 12 commitsFri 10:00 — 49 commitsFri 11:00 — 110 commitsFri 12:00 — 54 commitsFri 13:00 — 32 commitsFri 14:00 — 90 commitsFri 15:00 — 92 commitsFri 16:00 — 125 commitsFri 17:00 — 96 commitsFri 18:00 — 66 commitsFri 19:00 — 64 commitsFri 20:00 — 66 commitsFri 21:00 — 40 commitsFri 22:00 — 16 commitsFri 23:00 — 10 commitsSat 0:00 — 16 commitsSat 1:00 — 10 commitsSat 2:00 — 4 commitsSat 3:00 — 1 commitsSat 4:00 — 3 commitsSat 5:00 — 3 commitsSat 6:00 — 6 commitsSat 7:00 — 4 commitsSat 8:00 — 9 commitsSat 9:00 — 15 commitsSat 10:00 — 51 commitsSat 11:00 — 88 commitsSat 12:00 — 26 commitsSat 13:00 — 22 commitsSat 14:00 — 81 commitsSat 15:00 — 86 commitsSat 16:00 — 81 commitsSat 17:00 — 72 commitsSat 18:00 — 33 commitsSat 19:00 — 46 commitsSat 20:00 — 44 commitsSat 21:00 — 23 commitsSat 22:00 — 15 commitsSat 23:00 — 8 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Oct 2, 2026weekly#13+6,091
Oct 1, 2026weekly#13+6,091
Sep 30, 2026daily#11+692
Sep 30, 2026weekly#15+6,666
Sep 29, 2026daily#11+692
Sep 28, 2026daily#8+1,105
Sep 27, 2026daily#4+920
Sep 26, 2026daily#4+1,050
Sep 25, 2026daily#4+1,082
Sep 24, 2026daily#2+1,142
Sep 23, 2026daily#4+255
Sep 22, 2026daily#3+202
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    456.7K stars · TypeScript

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • anomalyco/opencode

    The open source coding agent.

    211.7K stars · TypeScript

  • n8n-io/n8n

    Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

    206.7K stars · TypeScript

  • microsoft/vscode

    Visual Studio Code

    193.5K stars · TypeScript

  • firecrawl/firecrawl

    Supercharge your AI agents with data from the web and beyond. Building the library for superintelligence. 🔥

    188.6K stars · TypeScript