ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

genoffice CLI 实战指南:用 GenOffice 文档引擎在终端无窗口地创建、转换、读取与编辑 Office 文件

genoffice CLI 实战指南:用 GenOffice 文档引擎在终端无窗口地创建、转换、读取与编辑 Office 文件 人工智能AI 应用桌面应用AI AgentMCP 服务AI 技能【免费下载链接】genofficeFree, open-source AI Office suite: Docs, Sheets, Slides, PDF, Markdown and HTML editors with a built-in AI agent, plus a genoffice CLI and agent skill so Claude Code, Codex and Cursor can create and edit real .docx/.xlsx/.pptx files locally. Bring your own key. macOS, Windows Linux.项目地址https://gitcode.com/gh_mirrors/ge/genoffice点击查看免费下载genoffice是 GenOffice 套件的命令行入口它将 Docs、Sheets、Slides、PDF、Markdown、HTML 六大编辑器的文档引擎暴露给脚本与 AI Agent无需打开任何窗口即可创建、转换、读取、审计与渲染真实的.docx/.xlsx/.pptx文件。本文以 packages/cli/README.md 为骨架结合仓库源码packages/cli/src/与apps/各编辑器讲解每个命令的用法、JSON 输出契约、MCP 服务器、路径安全策略与审计日志以及如何把genoffice装到 PATH 上、在源码检出中构建运行。一句话定位genoffice是 GenOffice 的命令行把套件的文档引擎暴露给脚本和 AI 代理无需打开窗口即可使用。打包后的应用会在自己的 Node 运行时上运行内置 CLI通过ELECTRON_RUN_AS_NODE因此不需要额外安装任何东西——只要装了 GenOfficegenoffice就能跑。启动器脚本 packages/cli/bin/genoffice 展示了这一机制它先解析符号链接找到真实路径若处于打包目录则exec $app $here/genoffice.cjs并设置ELECTRON_RUN_AS_NODE1否则回退到系统node与本地构建产物。命令总览README 给出了一个完整的速查表覆盖info / convert / create / render / slides / sheet / docs / guide / open / selection / capabilities / search / image / media / install-cli / mcp / skill。下面是按域整理的可直接复制的命令每个都配有--json选项除mcp为服务器进程外其余命令默认为一行人类可读摘要--json时输出单个 JSON 对象。信息与转换genoffice info report.docx genoffice convert scan.pdf --to docx genoffice convert data.csv --to xlsx --out out/data.xlsx genoffice convert notes.md --to docx|html genoffice convert report.docx --to html # Word 编辑器的独立 HTML 导出 genoffice convert page.html --to docx # html2docx与 HTML 应用的 Export as Word 相同 genoffice convert report.docx --to md # 通过 markdown 编辑器的序列化器输出 GFM genoffice convert book.xlsx --to csv [--sheet Data] # 单个工作表按显示文本导出UTF-8 BOM、CRLF从源码 packages/cli/src/commands/convert.ts 可以看到转换路由分两类节点内路由NODE_ROUTESpdf→docx/pptx/xlsx、csv/xls/xlsb/ods→xlsx、md→docx/html、docx→md、xlsx/xlsm→csv在本进程内直接完成。应用路由APP_ROUTEScsv/xls/md/docx/xlsx/xlsm/pptx/html→pdf、docx→html、html→docx等需要渲染器排版的任务走 GenOffice 二进制的隐藏--headless-export模式见下文headless 导出。xlsx→csv输出带 UTF-8 BOMExcel 打开时不弹导入向导docx→md会警告被丢弃的图片images_dropped警告码提示用docs read --html保留。创建文档genoffice create --type pptx --ops deck.json --out deck.pptx genoffice create --type pptx --spec deck/pages --outline deck/outline.json --out deck.pptx # 每页一个 spec 文件 genoffice create --type xlsx --from table.json --out book.xlsx # 二维数组或 {sheets:[{name,rows}]}... 单元格是公式 genoffice create --type xlsx --from data.csv --out data.xlsx [--header] [--decimal ,] # ISO 日期变真日期尊重 sep 行 genoffice create --type docx --from report.md --out report.docx # 或 --from fragment.html受限 HTMLcreate --type pdf --from 文档 --out pdf则把任意 md/html/docx/xlsx/pptx 文件用 GenOffice 渲染器打印成 PDF。源码 packages/cli/src/commands/create.ts 中TYPES [pptx, xlsx, docx, pdf]--type必须命中其一。xlsx 的--from支持.csv或 JSON二维数组、或{ sheets: [{ name, rows }] }多工作表字符串以开头即公式。--header会把第一行冻结并给使用区域加 AutoFilter等价于 Excel 自己的导入向导。--decimal ,指定 CSV 的小数分隔符默认.此时,视为千分位。docx 的--from只接受.mdGFM标题、列表、表格、相对路径图片、$formulas$或.html受限 HTML 片段。创建 PPTX 的两种路径--ops file把 ops 数组逐个应用到一张空白单页画布上genoffice guide slides查看 ops 清单ops 可以是 JSON 数组或{ ops: [...] }--ops -从 stdin 读取。--spec file|dir页规格1280x720 画布上像素定位的文本、形状与图片构建成一页一幻灯片目录形式下每页一个文件、按文件名顺序配合--outline file逐页核对见分阶段建 deck一节。create/slides apply接受的 ops 与应用内 AI 用的是同一套genoffice/pptx-ops图片 op 的bytes字段可直接填本地文件路径。被拒绝的 op 会返回带引导的错误及其 usage 行调用方可修复后重试原子事务保证文件未被改动。读取、编辑与检查genoffice slides read deck.pptx [--full] --json # 持久 id 几何--full全文、表格、备注文本元素含 effective首个 run 的显示样式与 src继承层级 genoffice slides check deck/outline.json | deck/pages/03.json # outline 规则出错退出码 1/ 构建并审计单页文件 genoffice slides replace deck.pptx --slide 2 --spec deck/pages/03.json # 从页文件重建一页 genoffice slides apply deck.pptx --ops edit.json [--dry-run] [--out copy.pptx] genoffice slides audit deck.pptx [--slide 0] --json # 越界 / 文本溢出 / 重叠带持久 id 的分类问题与 setTransform suggest genoffice slides render deck.pptx --out shots/ [--scale 2] # 每页一张 PNG经应用的 PDF 导出 genoffice render report.docx|book.xlsx|page.html|file.pdf --out shots/ [--page 3] [--scale 2] genoffice render deck.pptx --out shots/ --el e_12 [--pad 16] # 另输出该元素裁剪图 stem-NN-e_12.png genoffice render deck.pptx --out shots/ --grid [--cols 4] [--tile 320] # 另输出 stem-grid.png 联系表 genoffice sheet read book.xlsx [--sheet Data] [--range A1:D20] [--formats] --json # 值、公式、工作表特性--formats 增加样式、列宽、行高 genoffice sheet apply book.xlsx --cells cells.json # [{cell:B2, value|formula, style?, sheet?}] genoffice sheet apply book.xlsx --ops ops.json [--dry-run] # 工作簿 DSLcells/formats/charts/tables/filters/…genoffice guide sheets genoffice sheet check book.xlsx --json # 公式错误、缺失工作表引用、坏定义名、图表范围越界、### 列等退出码 0 genoffice docs read report.docx [--range 0-9] [--html] [--full] [--comments] [--revisions] [--header-footer] --json genoffice docs apply report.docx --ops ops.json [--dry-run] # apply_ops 条目 insert_content / replace_blocks / insert_image / insert_chart / edit_chart / set_header_footer / reply_comment / resolve_comment genoffice docs check report.docx --json # 无结果的域、坏书签引用、过期 TOC、缺失图片、空图表/空标题、标题跳级、占位文本、待定修订、未关闭评论退出码 0 genoffice guide docs # op 签名 受限 HTML 规则guide domain --json 带各 op schema 与指纹的目录 genoffice selection report.docx --json # 编辑器里用户选中了什么三个*_check命令docs check、sheet check、slides check大纲分支都不会因发现而失败——它们以退出码 0 返回 findings由调用方决定修什么。批处理默认原子任何被拒 op 都不动文件退出码 1。云命令genoffice capabilities --json # GenOffice 配置了哪些云功能不联网 genoffice search electron headless export [--images] [--max 6] --json genoffice image isometric office, soft light --aspect 16:9 --out hero.png genoffice media photo.jpg --ask What text is in this picture? --jsonsearch、image、media复用编辑器的供应商路由详见云命令一节是唯一会把数据送出本机的命令。安装与集成genoffice skill list # 检测本机编码代理及其 skill 版本 genoffice skill install --dir ./skills --force # 把内置 skill 复制进 skills 目录 genoffice install-cli # 把 genoffice 放到 PATH genoffice mcp --http 3000 [--host 127.0.0.1] [--token secret] # Streamable HTTP跨机器客户端省略 --http 时走 stdio运行时模型无窗口、自带运行时、按需起渲染进程Word 与 Markdown 命令在 jsdom 下运行 docs 与 markdown 编辑器每进程只安装一次、按需懒加载。这两个模块目前以相对路径从应用渲染器导入直到它们各自拆包。jsdom 引导见 packages/cli/src/dom.ts它实例化一个pretendToBeVisual的 JSDOM把window/document/navigator挂到全局并补齐ResizeObserver、matchMedia、requestAnimationFrame、Range.getClientRects等 ProseMirror 需要的环境探测 API。工作簿写入走genoffice/xlsx-gateway应用自身的保存路径。内存中的工作簿负责校验并应用单元格、格式与结构 op快照装不下的 op图表、图片、表格、筛选、条件格式、数据验证、超链接、备注、窗格、页面设置、保护、定义名、标签页顺序会变成 gateway 的声明式保存载荷——正如应用的编辑日志那样。Pivot、迷你图与对编辑器会话对象的编辑仍仅限应用内。写出公式后genoffice 用 xlsx 伴生程序求值并把结果存为缓存值因此sheet read和普通阅读器看到的都是数字而不是空白。xlsx 伴生程序的位置解析见 packages/cli/src/resources.ts打包布局Resources/native/与 dev 检出apps/sheets/native/xlsx-engine/target/release/。需要应用渲染器的转换Word/PowerPoint/Excel/HTML/Markdown → PDF、Word → HTML、HTML → Word、create --type pdf在 GenOffice 二进制内通过隐藏的--headless-export模式运行genoffice spawn 它Dock 隐藏、无窗口、读取它打印的 JSON 信封并映射退出码见 packages/cli/src/formats/app-export.ts。设置GENOFFICE_APP_BIN可指向特定可执行文件在检出中则使用 dev Electron 加apps/shell所以先要npm run build:all。JSON 输出契约稳定的信封、可分支的错误每个命令默认打印一行人类可读摘要--json时打印单个 JSON 对象{ status: ok | partial, command, summary, output_path?, warnings?, detail? }warnings[]形如{ code, message, suggestion? }承载结果仍成功但需注意的忠告如formulas_not_cached、images_dropped、already_up_to_date。status: partial表示批处理用了--best-effort/--stop-on-error且丢了 op文件已写、部分 op 未应用计数与明细在detail.batch/detail.failures。错误也是结构化的{ status: error, code, error, message, suggestion?, detail? }code即退出码0成功、1用法错误、2文件问题、3转换失败、4应用不可用。error是稳定的 snake_case 原因unknown_op、target_not_found、out_of_range、sheet_not_found、file_open_in_gui、outside_allowed_roots、output_exists、unsupported、conversion_failed、app_unavailable等程序按它分支而不是解析 message。suggestion给出下一步对单字符拼写错误还会带did you mean …?。重试所需的事实合法范围、可用 id、工作表名、usage 行作为字段放在detail里而不是塞在 message 内。例如slides read越界时返回{ valid_range: [0, count-1] }op 被拒时返回{ failures: [{ index, op, error, reason, valid_range?, available?, supported?, usage?, did_you_mean? }] }。枚举与打包逻辑见 packages/cli/src/result.tsEXIT、ErrorReason、toJsonOk/toJsonError与 packages/cli/src/op-errors.ts把执行器写的自然语言错误里的同款事实抽成字段如reason、available、valid_range、did_you_mean。批处理模式--best-effort/--stop-on-error/ 默认 atomic在 packages/cli/src/batch.ts 定义并互斥校验--best-effort应用所有能应用的 op 并写出、被拒的进detail.failures--stop-on-error按顺序应用到第一次拒绝为止slides apply --isolation per_op等价于--best-effort。guide从验证器生成的 op 参考genoffice guide slides|docs|sheets [group|op|design|spec]打印 Agent 写 ops 之前要读的参考。关键设计packages/cli/src/commands/guide.ts 的注释直接说明每个 op 参考都是从 apply 校验所用的同一套定义生成的——pptx 的 markdown、sheets 的 zod schema、docs 的 op 注册表与工具 schema——因此 guide 不可能与apply实际接受的内容漂移--json返回带每个 op schema 的目录--fingerprint输出目录指纹任何 op 或字段变化都会改变指纹可用于校验 skill 与 CLI 版本是否匹配。分阶段建 deckCLI 端与应用同一条生成流水线create --type pptx --spec是应用 deck 生成流水线genoffice/pipelines的 CLI 端。调用方 Agent 负责设计工作按genoffice guide slides design编写样式表、大纲与每页一个 spec 文件genoffice guide slides spec定义格式然后由应用同款页面构建器把页面构建成 pptx——每个文本框都会被测量并自动长到内容所需大小。应用用模型调用分隔各阶段CLI 则用文件分隔slides check outline.json按规划规则校验大纲错误退出码 1还提示旁边缺失 style.md。slides check page.json构建并审计单页文件再与它的大纲条目及样式表的调色板核对两者都在页文件旁边自动发现或--outline file显式指定。create --spec dir对每个文件跑同样的检查有缺失页或与大纲不一致的页就拒绝拼装 deck。slides replace pptx --slide n --spec page.json从页文件重建一页其余页的 id 与内容不变重建页的元素 id 是新的需重新slides read。slides audit跑应用确定性的布局审计slides render给 Agent PNG 看效果。整个过程中genoffice 内部不发起任何模型调用。审计用启发式字形宽度packages/cli/src/formats/slide-spec.ts 注释CLI 还没有应用那样的字体索引框会增长、审计按启发式字形宽度度量拉丁与 CJK 正文较准、展示字体偏松overflow 数值是近似值因此slides render是最终确认手段。slides audit对越界/溢出问题给出suggest——一个可直接传给slides apply的setTransformopEMU 单位。render让 Agent 亲眼看到产物render file --out dir对 docx/xlsx/pptx/md/html/pdf 任一文档按 GenOffice 渲染器的排版逐页输出 PNGPDF 直接走 pdfium其余走--headless-export pdfium见 packages/cli/src/commands/render.ts 的detail.via。参数--page n只渲染第 n 页1 基。--scale n每 PDF 点的像素数0 n 4默认 172 dpi16:9 deck 即 960x5402 即 144 dpi。--el e_12[,e_13]仅 pptx额外把页面裁剪到这些元素id 来自slides read为stem-NN-id.png--pad px控制外边距默认 16。元素 id 跨页或不存在会给出invalid_argument/target_not_found附带可用 id 与did you mean。--grid [--cols n] [--tile px]额外输出一张stem-grid.png联系表默认 4 列、320px 瓦片把整个 deck 一次看全。打开与选区genoffice open report.docx在 GenOffice 应用中打开文件必要时启动应用并支持定位到具体位置--slide n [--el e_12]pptx、--block ndocx、--range [Sheet!]B2:D5 [--sheet name]xlsx、--page npdf见 packages/cli/src/commands/open.ts 的parseTarget按扩展名校验目标标志--el必须配--slide。打开动作通过应用的 control 端点协作packages/cli/src/control.ts 读取 shell 发布的 control 文件进程存活校验后连接。genoffice selection file --json返回用户当前选中内容pptx 为{ slide, elements[], types[] }docx 为{ blocks:[a,b], text, collapsed }xlsx 为{ sheet, range, values? }pdf 为{ page, text? }——用来把这个这里解析成可编辑目标文件没有在 GUI 标签中打开时返回file_not_open_in_gui。MCP 服务器把整套命令暴露成工具genoffice mcp把同样的命令以 Model Context Protocol 工具的形式服务在 stdio 上供不能或不应当跑 shell 的客户端使用Claude Desktop、Cursor、沙箱化 Agent。机器上不需要别的东西进程和其他命令一样跑在应用的 Node 运行时上只有需要渲染器的转换才会以隐藏方式启动 GenOffice 本身。注册到 Claudeclaude mcp add --transport stdio genoffice -- genoffice mcp或在客户端配置里{ mcpServers: { genoffice: { command: genoffice, args: [mcp] } } }工具表在 packages/cli/src/mcp/tools.ts每个命令动词一个工具docs_read、docs_apply、sheet_apply、slides_render、convert、create_docx/create_xlsx/create_pdf/create_pptx、render、guide、info、capabilities、search、image、media、open、slides_check/slides_replace等每个参数取自命令自己的选项表——两个表面CLI 与 MCP不会漂移resolveTool校验工具选项都存在于注册表的命令定义中。Ops、单元格列表、spec 与 Markdown 以 inline 形式传入落到 scratch 目录仅在该次调用期间存在render与slides_render把 PNG 作为 image content 返回。结果就是--json打印的同一 JSON 信封错误带isError与同样的error原因。op 参考同时也是资源genoffice://guide/docs、…/sheets、…/slides、…/slides/design、…/slides/specpackages/cli/src/mcp/server.ts 注册文本来自guide命令输出。新 deck 走deck_start样式表 大纲返回 design 与 spec 指南、deck_page一次一页逐页按大纲条目与调色板检查、deck_build与deck_replacepackages/cli/src/mcp/deck.ts。deck 目录就是状态布局与命令行分阶段流程完全一致style.md、outline.json、pages/NN.json正是slides check与create --spec dir读的文件所以任一端启动的 deck 都能在另一端完成deck_page经.pending文件检查通过后才改名就位检查失败保持磁盘原状。跨机器Streamable HTTPgenoffice mcp --http port [--host addr] [--token secret]以 Streamable HTTP 服务同一批工具供其他机器上的客户端使用实现见 packages/cli/src/mcp/http.ts。文件随调用一起传输PUT /files/name上传一个文件并返回 URL超过 32MB 传输上限拒绝413。每个路径参数也接受 http(s) URL抓取进该会话的 scratch 目录packages/cli/src/mcp/files.ts。写出文件的工具返回output_url文件小时以嵌入资源带回字节否则给resource_linkpackages/cli/src/mcp/remote.ts。每个会话有独立的 scratch 目录、工作目录与 deck 状态open工具不注册远程客户端面前没有 GenOffice 窗口见 packages/cli/src/mcp/server.ts 的remote tool.name open未设置GENOFFICE_ALLOWED_ROOTS时工具被限制在服务器自己的文件存储内。安全细节--token要求非空空串按未配置处理、fail-closed无 token 且绑定回环地址时拒绝非回环 Host 头Authorization: Bearer用 timing-safe 比较。GET /health健康检查。若在可信反向代理之后设置GENOFFICE_TRUST_PROXY_HEADERS1让服务器发出的下载 URL 使用转发的 host 与 scheme默认X-Forwarded-*一律忽略防被投毒构造指向攻击者的 URL。把 genoffice 放到 PATHmacOS应用每次启动都尝试把/usr/local/bin/genoffice或/opt/homebrew/bin/genoffice做符号链接成功即停。两个目录都不可写就保持静默可从启动器跑genoffice install-cli或手动sudo mkdir -p /usr/local/bin sudo ln -sf /Applications/GenOffice.app/Contents/Resources/cli/genoffice /usr/local/bin/genoffice。Windows安装器把install dir\resources\cli追加进用户 PATHapps/shell/build/installer.nsh保留 REG_EXPAND_SZ卸载时移除应用每个版本再复查一次新终端即可见genoffice。该目录为 cmd/PowerShell 放genoffice.cmd为 Git Bash 放无扩展名的genoffice。Linuxdeb/rpm 的 post-install 链接/usr/bin/genofficeAppImage 依赖首次启动在/usr/local/bin可写时做的符号链接。genoffice install-cli会重试并打印手动命令packages/cli/src/commands/install.ts 返回linked/present/occupied/unwritable状态occupied表示该位置是别的程序、不替换。jsdomWord/Markdown 需要随 bundle 以Resources/cli/node_modules形式分发构建时由 packages/cli/collect-deps.mjs 收集。与 PATH 无关打包应用每次启动都会把启动器目录写到~/.genoffice/launcherGENOFFICE_AUTH_DIR可覆盖该目录与auth.json相同。genoffice代理 skillskills/genoffice/SKILL.md在genoffice不在 PATH 时读取它。genoffice --version打印本包的版本由 packages/cli/build.mjs 内联。布局模块地图packages/cli/src/cli.ts — argv 解析、分发、输出runCli()可嵌入MCP 的runJson就直接runCli([...argv, --json])。packages/cli/src/registry.ts —CommandDef表name、usage、run是未来入口应用内 AI、MCP统一的唯一分发点。packages/cli/src/commands/ —info、convert、create、render、slides、sheet、docs、guide、open、selection、capabilities、search、image、media、skill、install-cli、mcp。packages/cli/src/dom.ts — Word/Markdown 路径需要的 jsdom 引导。packages/cli/src/formats/ — 对genoffice/pdf2docx、xlsx 伴生程序与 sheets CSV 导入器的薄适配层。packages/cli/src/resources.ts — 在打包Resources/布局与 dev 检出中定位 pdfium wasm、xlsx 伴生程序与 OCR 辅助程序。packages/cli/bin/genoffice、bin/genoffice.cmd— 启动器打包时复制到genoffice.cjs旁。路径策略与审计日志GENOFFICE_ALLOWED_ROOTSPATH 风格目录列表把 genoffice 读写的一切文件限制在这些目录树内检查前先解析符号链接因此根内的链接无法指向根外。越界访问退出码 2根列表在detail.allowed_roots。未设置即不限制。实现见 packages/cli/src/fs.tsassertAllowed。apply --out覆盖已存在文件需要--forcecreate/convert同理就地编辑永远不需要。未知选项一律拒绝而非忽略cli.ts里对每个命令的已知集合做 diff。正在 GenOffice shell 标签里打开的文件不会被就地改写退出码 2detail.gui_pidshell 把打开的标签发布到userData/open-documents.jsongenoffice 读取它GENOFFICE_USER_DATA覆盖位置见 packages/cli/src/gui.ts会校验发布者的 pid 还活着崩溃残留被忽略。--force照写不误——编辑器下次保存时警告磁盘变更Word、Excel或可能覆盖PowerPoint。每次执行的命令都向~/.genoffice/cli-audit.jsonl追加一行 JSONts、command、argv、status、code、output_path、ms、cwd2 MB 轮转GENOFFICE_AUDIT_LOGpath重定向GENOFFICE_AUDIT_LOGoff关闭。写入实现见 packages/cli/src/audit.ts。注意cli.ts的redactArgv--password/--api-key/--token/--secret类 flag 的值在日志里被替换为***flag 本身保留调用仍可辨认。写入本身也是原子的writeOutput用同目录临时文件 renameWindows 上对防病毒/索引器造成的EPERM/EACCES/EBUSY重试并退避保留目标文件 mode中断的apply只会留下旧文件或新文件不会出现截断文件——与应用自己的 atomic-write 一致。云命令复用什么、哪些数据会出本机search、image、media复用编辑器的供应商路由packages/cli/src/cloud.ts 的prepareCloud每进程一次地配置代理与打包的 gsk CLI 位置search选中 Serper/Tavily 提供商且配了 key 时用它否则 Parallel可选 key空白已存 key 用其免费、限速的 Search MCP都不行时登录~/.genoffice/auth.json且云工具开启时默认 Genspark不可用时回退免费源。Parallel 与 Tavily 只提供网页搜索。image 生成与media 分析用应用 AI 设置里选的对应提供商平台配置目录下的GenOffice/ai-settings.json可用GENOFFICE_AI_SETTINGS覆盖。路径定位见 packages/cli/src/cloud.ts 的aiSettingsPath与 packages/cli/src/commands/capabilities.ts。HTTPS_PROXY/HTTP_PROXY/ALL_PROXY含小写变体被尊重配置给 undici 全局分发器与 gsk 子进程。搜索结果、图片字节与分析文本都放进 JSON 的detailimage额外把文件写盘packages/cli/src/commands/image.ts 支持--aspect1:1|4:3|16:9|9:16|3:4|2:3|3:2|auto、--sizeauto|0.5k|1k|2k|3k|4kGenspark 专用、--ref参考/编辑目标图路径或 URL、--model输出 mime 决定扩展名。capabilities --json从 GenOffice 自己的设置判断本机能做什么搜索、图片搜索、图片生成、媒体分析分别报available与via不发网络请求顺带报告应用是否已安装。Agent 在计划需要照片或网络事实的工作前先查一次。只有这三个命令会把数据送出本机其余全部本地完成。构建与在检出中运行npm run build -w genoffice/cli # esbuild → dist/genoffice.cjs packages/cli/bin/genoffice info file.docx # 回退到系统 node需要应用渲染器的转换在检出中会用 dev Electron 加apps/shell因此先执行npm run build:all。genoffice --version在源码运行时会读package.json并追加-devpackages/cli/src/cli.ts 的devVersion。依赖中genoffice/*全部是工作区包docx-engine、pptx-engine、pptx-ops、xlsx-gateway、pipelines、ai-search、ai-provider、pdf2docx 等jsdom为 Word/Markdown 提供 DOMmodelcontextprotocol/sdk提供 MCP 服务器。让 AI 代理正确使用 genoffice 的五个习惯程序读输出永远加--json并按error字段而非 message分支重试数据从detail取。改前先读docs read/sheet read/slides read返回的块索引、A1 地址、s_n/e_*持久 id 是 apply 的定位依据被拒 op 按failures[].reason修复后重发整个批次。检查再交付三个check命令docs/sheet/slides 大纲不失败、只列 findingsslides audit与render组合用于几何与视觉确认。把guide当权威op 参考从校验器生成、永不过期--fingerprint可与 skill 版本互相校验MCP 端还以genoffice://guide/*资源提供。批处理默认原子--dry-run先看计划要保留部分成果才用--best-effort/--stop-on-error结果status: partial。关联阅读代理 skillskills/genoffice/SKILL.md包含命令表、Which command 决策表、行为须知与错误码对照是 CLI 的人类与 Agent 双重手册包定义与依赖packages/cli/package.json测试packages/cli/tests/cli.test.ts、mcp.test.ts、mcp-http.test.ts、xlsx.test.ts、pptx.test.ts、docx.test.ts、slides-spec.test.ts、audit.test.ts、args.test.ts等覆盖信封契约、路径策略、批处理语义与 MCP 双模式相关引擎packages/docx-engine、packages/pptx-engine、packages/xlsx-gateway、packages/pipelines、packages/pdf2docx赞分享人工智能AI 应用桌面应用AI AgentMCP 服务AI 技能【免费下载链接】genofficeFree, open-source AI Office suite: Docs, Sheets, Slides, PDF, Markdown and HTML editors with a built-in AI agent, plus a genoffice CLI and agent skill so Claude Code, Codex and Cursor can create and edit real .docx/.xlsx/.pptx files locally. Bring your own key. macOS, Windows Linux.项目地址https://gitcode.com/gh_mirrors/ge/genoffice点击查看免费下载相关推荐GenOffice 开源 AI Office 套件完整指南原生 Office 文件编辑、genoffice CLI 与 MCP 智能体接入实战GenOffice 开源 AI Office 套件完整指南原生 Office 文件编辑、genoffice CLI 与 MCP 智能体接入实战 GenOffi人工智能AI 应用桌面应用AI AgentMCP 服务AI 技能GenOffice 开源 AI 办公套件技术指南字节保真的 Office 编辑、genoffice CLI 与 MCP Agent 集成GenOffice 开源 AI 办公套件技术指南字节保真的 Office 编辑、genoffice CLI 与 MCP Agent 集成 本文基于仓库内的印地人工智能AI 应用桌面应用AI AgentMCP 服务AI 技能GenOffice 开源 AI 办公套件深度指南字节保真的文档引擎与 genoffice CLI / MCP 智能体集成GenOffice 开源 AI 办公套件深度指南字节保真的文档引擎与 genoffice CLI / MCP 智能体集成 GenOffice 是一个面向 ma人工智能AI 应用桌面应用AI AgentMCP 服务AI 技能上一篇GetQzonehistory终极指南快速恢复QQ空间历史数据的完整解决方案下一篇ROS机器人开发者的终极可视化利器5分钟掌握rviz核心功能创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表