GenOffice: 에이전트가 진짜 .pptx·.docx·.xlsx를 만드는 오픈소스 오피스
Claude Code가 MCP 호출 38번, 약 13분으로 8장짜리 투자 브리핑을 진짜 .pptx로 만든 기록이 README에 있어요
- 누가
- Genspark(Mainfunc, Inc.)가 만들어요. 발표 자료·보고서·워크북을 진짜 Office 파일로 내야 하는 사람과, 그걸 Claude Code·Codex·Cursor에게 시키고 싶은 사람을 위해.
- 언제
- 2026-07-31 저장소 공개, 2026-08-03 오픈소스 발표. 최신 릴리스는 2026-11-04의 v0.12.852이고 며칠에 한 번씩 릴리스가 나와요.
- 어디서
- macOS 11+, Windows 10+, Linux. Claude Code·Codex·Cursor·Gemini CLI·Copilot·OpenCode·Windsurf, MCP로 Claude Desktop까지. 파일은 내 PC에 남아요.
이게 불편했어요
에이전트에게 발표 자료를 부탁하면 HTML이나 마크다운 흉내가 돌아왔어요. 회사에 내려면 결국 파워포인트로 옮겨 다시 맞춰야 했고, 엑셀로 달라고 하면 수식 대신 숫자만 붙어 와서 셀 하나 바꾸면 합계가 틀렸어요.
그래서 이렇게 풀어요
GenOffice는 Docs·Sheets·Slides·PDF 앱과 함께 genoffice 명령줄, 에이전트 스킬, MCP 서버를 같이 배포해요. 에이전트가 스타일 시트와 개요, 페이지 스펙을 쓰면 CLI가 넘침·겹침·팔레트 이탈을 검사하고 .pptx를 조립한 뒤 슬라이드마다 PNG를 돌려주니, 에이전트가 자기 결과를 보고 고쳐요. 워크북은 "=SUM(B2:B9)" 같은 셀이 살아 있는 수식으로 들어가고, 모델 호출은 CLI 안에 없어서 문서는 내 컴퓨터를 떠나지 않아요.





claude mcp add --transport stdio genoffice -- genoffice mcpcapabilities · guide(slides, spec) · guide(slides, design)search(query) ×4 → IEA, BNEF and IRENA figures for the slidesdeck_start(dir, style, outline) → outline checked: 8 pages to writedeck_page(dir, 0, page) … deck_page(dir, 7, page)deck_build(dir, out) → renewables-2026.pptx, no image failuresslides_audit(file) · slides_render(file, out)deck_replace(dir, n, page) ×3 · slides_render(file, out)
이걸로 만든 사람들
GenOffice 엔진으로 .docx·.pptx를 바이트 보존 편집하는 Hermes Agent용 MCP 브리지(mcp-genoffice)를 만들어 Hermes의 MCP 카탈로그에 올렸어요. CDP 모드로 데스크톱 앱을 조종한대요.
I built the Hermes Agent bridge to it.
클라우드 계정 대신 아무 로컬 LLM으로 돌아가게 고친 GenOffice 포크(open-genoffice)를 만들어 올렸어요.
GenOffice fork that works with any local LLM instead of a cloud account
안에서는 이렇게 돌아가요
- 1
나 → Claude Code
"태양계 8장 덱 만들어 줘"스킬은 '브리프에서 덱'이면 guide slides design→style.md+outline.json→페이지별 check→create --spec→render --grid→audit 경로를 타라고 정해 둬요.skills/genoffice/SKILL.md - 2
Claude Code → genoffice CLI
genoffice guide slides design레지스트리가 info·convert·create·slides·docs·render·guide·mcp 등을 받고, --json이면 JSON 한 덩어리로 답해요.packages/cli/src/cli.ts - 3
Claude Code → genoffice CLI
slides check deck/pages/01.json페이지 스펙 파일 하나를 만들어 보고 개요 항목과 style.md 팔레트에 맞는지, 글이 넘치거나 겹치지 않는지 검사해요. 통과할 때까지 한 장씩.packages/cli/src/commands/slides.ts - 4
genoffice CLI → Claude Code
검사 결과: 넘침·겹침·팔레트 이탈CLI는 앱의 글꼴 색인이 없어서 휴리스틱 글자 폭으로 재요. 라틴·CJK 본문엔 가깝고 장식 글꼴엔 느슨하다고 코드 주석이 밝혀요.packages/cli/src/formats/slide-spec.ts - 5
Claude Code → genoffice CLI
create --type pptx --spec deck/pagespages/ 폴더의 스펙을 이름순으로 한 장씩 슬라이드로 만들고, 개요의 모든 페이지에 파일이 있어야만 조립을 시작해요.packages/cli/src/commands/create.ts - 6
genoffice CLI → pptx-engine
빈 덱에 ops 적용@genoffice/pptx-engine이 빈 .pptx를 열어 요소를 그리고, 그림 ops의 로컬 경로는 바이트로 바꿔 넣은 뒤 저장해요. 거부된 op가 하나라도 있으면 파일은 그대로예요.packages/cli/src/formats/pptx.ts - 7
genoffice CLI → Claude Code
slides render: 장당 PNG숨은 GenOffice 프로세스가 문서를 임시 PDF로 찍고 pdfium이 PNG로 래스터화해요. 에이전트가 그 그림을 보고 어긋난 장을 replace로 고쳐요.packages/cli/src/formats/render.ts - 8
Claude Code → solar-system.pptx
genoffice open deck/solar-system.pptx다 됐으면 결과를 GenOffice 편집기 탭으로 넘겨요. PowerPoint에서도 그대로 열리는 보통의 .pptx예요.packages/cli/src/commands/open.ts
넣으면 이렇게 나와요
나한테 맞을까요
이럴 때 좋아요
- 주간 보고서나 제안서를 .docx·.pptx로 내야 하는 사람
- 에이전트가 만든 표에 수식이 살아 있길 바라는 사람
- PDF를 받아 워드로 고쳐야 하는 사람 (변환은 내 PC에서)
- 한글 .hwp 파일을 열어 .docx로 옮겨야 하는 사람 (열기만, 저장은 OOXML)
- Claude Desktop처럼 터미널이 없는 앱에서 MCP로 문서를 만들고 싶은 사람
이건 안 돼요
- CLI와 스킬은 앱 안에 들어 있어서 GenOffice 앱 설치가 먼저예요. 렌더와 PDF 변환은 숨은 GenOffice 프로세스를 띄우고(1~6초), 헤드리스 서버면 가상 디스플레이가 필요해요.
- 앱의 AI 패널은 Genspark 로그인이나 내 모델 키가 필요해요. CLI·스킬·MCP 경로는 모델을 부르지 않으니 키가 없어도 돼요.
- 라이선스는 Apache-2.0이지만 ee/ 디렉터리는 별도의 엔터프라이즈 라이선스이고, GenOffice·Genspark 이름과 로고는 쓸 수 없어요.
- 공식 빌드는 사용 통계를 기본으로 보내요(문서 내용·파일 이름은 제외). 설정 → General에서 끌 수 있어요.
GenOffice: an open-source Office your agent drives into real .pptx files
Its README logs Claude Code building an 8-slide investor briefing as a real .pptx in 38 MCP calls and about 13 minutes
- Who
- By Genspark (Mainfunc, Inc.), for anyone who must hand in real Office files and wants Claude Code, Codex or Cursor to make them.
- When
- Opened 2026-07-31, announced as open source 2026-08-03. Latest release v0.12.852 on 2026-11-04, with a release every few days.
- Where
- macOS 11+, Windows 10+, Linux (deb, rpm, AppImage). Claude Code, Codex, Cursor, Gemini CLI, Windsurf; Claude Desktop over MCP.
What was hard
Ask an agent for a presentation and you got an HTML or Markdown imitation. To hand it in you still rebuilt it in PowerPoint, and a spreadsheet came back as pasted numbers, so one changed cell broke the total.
What it does about it
GenOffice ships the Docs, Sheets, Slides and PDF apps together with a genoffice command line, an agent skill and an MCP server. The agent writes a style sheet, an outline and page specs; the CLI checks for overflow, overlap and off-palette colors, assembles the .pptx and hands back a PNG per slide, so the agent looks at its own work and fixes it. Workbooks keep cells like "=SUM(B2:B9)" as live formulas, and since no model call lives inside the CLI, your documents never leave your machine.





claude mcp add --transport stdio genoffice -- genoffice mcpcapabilities · guide(slides, spec) · guide(slides, design)search(query) ×4 → IEA, BNEF and IRENA figures for the slidesdeck_start(dir, style, outline) → outline checked: 8 pages to writedeck_page(dir, 0, page) … deck_page(dir, 7, page)deck_build(dir, out) → renewables-2026.pptx, no image failuresslides_audit(file) · slides_render(file, out)deck_replace(dir, n, page) ×3 · slides_render(file, out)
What people made with it
They built mcp-genoffice, an MCP bridge for Hermes Agent that edits .docx and .pptx through GenOffice's engines without breaking layout, now in Hermes' MCP catalog.
I built the Hermes Agent bridge to it.
They published open-genoffice, a fork of GenOffice reworked to run on any local LLM instead of a cloud account.
GenOffice fork that works with any local LLM instead of a cloud account
How it runs inside
- 1
You → Claude Code
"Build an eight-slide deck about the Solar System"A deck from a brief: guide slides design, style.md + outline.json, check per page, create --spec, render, audit.skills/genoffice/SKILL.md - 2
Claude Code → genoffice CLI
genoffice guide slides designThe registry holds info, convert, create, slides, docs, render, guide, mcp…; --json answers in one JSON object.packages/cli/src/cli.ts - 3
Claude Code → genoffice CLI
slides check deck/pages/01.jsonEach page spec is built and checked against its outline entry and style.md palette, overflow and overlap included.packages/cli/src/commands/slides.ts - 4
genoffice CLI → Claude Code
Findings: overflow, overlap, off-paletteNo font index in the CLI: heuristic glyph widths, close for Latin and CJK body text, looser for display fonts.packages/cli/src/formats/slide-spec.ts - 5
Claude Code → genoffice CLI
create --type pptx --spec deck/pagesPage files in pages/ become one slide each in name order; the build waits until every outline page has its file.packages/cli/src/commands/create.ts - 6
genoffice CLI → pptx-engine
Ops applied to a blank deckpptx-engine draws the elements into a blank .pptx and saves; one rejected op leaves the file untouched.packages/cli/src/formats/pptx.ts - 7
genoffice CLI → Claude Code
slides render: one PNG per slideA hidden GenOffice process prints to PDF, pdfium rasterizes it, and the agent rebuilds a wrong page with replace.packages/cli/src/formats/render.ts - 8
Claude Code → solar-system.pptx
genoffice open deck/solar-system.pptxThe result is handed to a GenOffice editor tab: an ordinary .pptx that opens in PowerPoint as is.packages/cli/src/commands/open.ts
What goes in, what comes out
Is it for you
Good for
- People who must deliver weekly reports or proposals as .docx and .pptx
- Anyone who wants formulas to survive in an agent-made table
- Turning a PDF into an editable Word file, converted on your own machine
- Opening Hancom .hwp files and carrying them into .docx (import only; saves are OOXML)
- Making documents from Claude Desktop or another MCP client with no terminal
Not for
- The CLI and skill ship inside the app, so install GenOffice first. Render and PDF export start a hidden GenOffice process; a headless server needs xvfb.
- The app's AI panel needs a Genspark sign-in or your own model key. The CLI, skill and MCP paths call no model, so they work without a key.
- Apache-2.0, except the ee/ directory under a separate enterprise license; the GenOffice and Genspark names and logos are not licensed.
- Official builds send limited usage analytics by default (never document content or file names); switch it off under Settings → General.