GitHub

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

dream-num/univer, AI 에이전트를 위한 Office SDK

Univer는 스프레드시트, 문서, 프레젠테이션을 제품 안에 임베드하는 오픈소스 Office SDK입니다. 플러그인 아키텍처와 Canvas 렌더링, 수식 엔진, Facade API를 제공하며 브라우저와 Node.js의 헤드리스 환경에서 같은 런타임을 사용합니다.

AI 요약

Univer는 고정된 UI를 제공하는 호스팅 앱이 아니라, SaaS 제품이나 내부 도구, BI 워크플로, AI 애플리케이션 안에 Office 기능을 구성하는 SDK입니다. 스프레드시트, 문서, 프레젠테이션을 하나의 런타임에서 다루고, 저장소와 계산 기능을 공유합니다. 문서 사이에 콘텐츠를 조합하거나 임베드할 수 있으며 연결된 데이터와 참조도 함께 갱신됩니다. 사람과 AI 에이전트가 같은 파일에서 작업하는 시나리오도 지원 범위에 포함합니다. PDF는 현재 제공 예정 기능으로 표시되어 있습니다.

런타임과 확장 구조

브라우저에서는 편집 UI를 실행하고 Node.js에서는 UI 없이 워크북과 문서를 처리합니다. 두 환경에서 같은 구조를 사용하므로 서버 측 자동화, 수식 계산, 에이전트 작업을 별도 제품으로 나누지 않고 구성할 수 있습니다. Headless Univer는 Node.js 18.17.0 이상을 지원하며, 저장소의 모노레포를 개발하려면 Node.js 22.18 이상과 pnpm 11 이상이 필요합니다.

기능은 플러그인 단위로 제공됩니다. 플러그인을 추가하거나 제거하고, 필요한 시점에 지연 로딩하거나 자체 구현으로 교체할 수 있습니다. 스프레드시트, 문서, UI, 수식 엔진, 렌더링 엔진, 숫자 형식 같은 패키지를 직접 조합하는 Plugin Mode와, 자주 쓰는 플러그인을 묶은 Preset Mode를 나눠 제공합니다. Plugin Mode는 패키지 구성, 스타일 import, 로케일 병합, Facade API 등록까지 직접 제어할 때 적합합니다. Preset Mode는 Sheets, Docs, Node.js 구성을 빠르게 시작하려는 경우에 맞습니다.

상위 계층에는 Facade API가 있습니다. 워크북, 워크시트, 범위, 문서, 수식, 명령, 이벤트를 일관된 방식으로 다루며 브라우저와 Node.js에서 같은 API 표면을 사용합니다. React, Vue, Web Components와 연동할 수 있고, UI 컴포넌트와 테마는 라이트 모드와 다크 모드에 맞춰 구성합니다. 렌더링은 Canvas 기반이며, 저장소와 계산 기능을 분리한 대규모 편집 화면을 목표로 합니다.

AI 에이전트와 협업

AI 에이전트는 구조화된 API로 Office 콘텐츠를 조회하고 수정합니다. 작업 결과를 콘텐츠 검사, 렌더링 스크린샷, 레이아웃 진단으로 검증하는 흐름도 제공합니다. Worktree 협업에서는 에이전트가 격리된 초안에서 작업한 뒤 사람이 변경 내용을 검토하고 병합 여부를 결정합니다. 실시간 편집, 공유 리비전, Worktree 워크플로에는 관련 Web SDK와 협업 기능이 필요하며, 패키지 제공 여부와 라이선스는 기능마다 다릅니다.

저장소와 함께 Univer Workspace, DeepSeek Harness용 플러그인, Univer CLI, WorkBuddy 연동, OpenClaw용 도구가 소개되어 있습니다. CLI는 에이전트가 로컬 환경에서 Office 콘텐츠를 만들고 수정하고 검사하고 전달하는 작업 공간으로 설명됩니다. 별도 저장소인 Univer MCP는 자연어로 Univer Sheets를 조작하는 AI 네이티브 스프레드시트 통합을 제공합니다.

오픈소스와 Univer Pro의 범위

이 저장소는 Apache-2.0 라이선스의 코어 SDK와 공식 오픈소스 플러그인을 담습니다. 오픈소스 Sheets 기능에는 워크북, 워크시트, 범위, 수식, 숫자 형식, 필터와 정렬, 데이터 검증, 조건부 서식, 하이퍼링크, 댓글, 메모, 표, 찾기와 바꾸기, 일부 UI 확장이 포함됩니다. Docs에는 문서 모델과 편집 UI, 목록, 하이퍼링크, 댓글, 빠른 삽입, 드로잉 연동이 포함됩니다. Slides는 데이터 모델과 UI 패키지를 개발 중인 상태입니다.

실시간 협업, 편집 이력, import/export, 인쇄, 차트, 피벗 테이블, 스파크라인, 데이터 커넥터, 서버 측 계산, 협업 서버 같은 기능은 Univer Pro 확장으로 구분됩니다. Bases도 오픈소스에서는 플러그인, 명령, 모델 구조를 활용해 맞춤형 구조화 데이터 제품을 만들도록 열어 두고, 데이터베이스 모델과 필드 편집기, 워크벤치 UI 같은 기능은 Pro 범위에 둡니다. 공개 SDK만으로 사용할 수 있는 기능과 상용 확장을 문서에서 분리하는 것이 저장소의 경계 원칙입니다.

시작 방법과 호환성

저장소를 직접 실행하려면 git clone으로 받은 뒤 pnpm installpnpm dev를 실행합니다. Vite 기반 개발 워크벤치에서 Sheets, Docs, Slides를 확인할 수 있습니다. pnpm build, pnpm test, pnpm typecheck, pnpm lint, pnpm storybook:dev 명령도 제공합니다. 앱에 SDK를 추가할 때는 같은 조정 릴리스 계열의 @univerjs/* 패키지 버전을 맞춰야 하며, 아이콘 패키지는 각 package manifest가 선언한 호환 버전을 따릅니다.

브라우저 빌드는 Chrome 88을 기준으로 하며 Edge 88 이상, Firefox 90 이상, Chrome 88 이상, Safari 14.1 이상, Electron 12 이상을 목표로 합니다. Intl.Segmenter가 없는 환경에는 polyfill이 필요합니다. 권장 빌드 도구는 Vite, esbuild, Webpack 5이고 React 뷰 계층은 React 18을 기반으로 하며 React 19도 지원합니다. React 16.9 이상과 17에는 제한적인 호환성을 제공합니다.

원문: GitHub / 번역·요약: Trawling