[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75096":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":36,"lastSyncTime":37,"discoverSource":38},75096,"OfficeCLI","iOfficeAI\u002FOfficeCLI","iOfficeAI","OfficeCLI is the first and best Office suite  purpose-built for AI agents to read, edit, and automate Word, Excel, and PowerPoint files. Free, open-source, single binary, no Office installation required.","https:\u002F\u002Fwww.officecli.ai",null,"C#",6826,518,21,10,0,111,1345,1861,525,39.15,"Apache License 2.0",false,"main",true,[27,28,29,30,31,32],"agent","ai","cli","office","openclaw","skills","2026-06-12 02:03:32","# OfficeCLI\n\n> **OfficeCLI is the world's first and the best Office suite designed for AI agents.**\n\n**Give any AI agent full control over Word, Excel, and PowerPoint — in one line of code.**\n\nOpen-source. Single binary. No Office installation. No dependencies. Works everywhere.\n\n**Built-in agent-friendly rendering engine** — agents can *see* what they create, no Office required. Render `.docx` \u002F `.xlsx` \u002F `.pptx` to HTML or PNG, closing the *render → look → fix* loop anywhere the binary runs.\n\n[![GitHub Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FiOfficeAI\u002FOfficeCLI)](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Freleases)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg)](LICENSE)\n\n**English** | [中文](README_zh.md) | [日本語](README_ja.md) | [한국어](README_ko.md)\n\n\u003Cp align=\"center\">\n  \u003Cstrong>💬 Community:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002F2QAwJn7Egx\" target=\"_blank\">Discord\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fppt-process.webp\" alt=\"OfficeCLI creating a PowerPoint presentation on AionUi\" width=\"100%\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Cem>PPT creation process using OfficeCLI on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FAionUi\">AionUi\u003C\u002Fa>\u003C\u002Fem>\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Cstrong>PowerPoint Presentations\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fdesignwhatmovesyou.gif\" alt=\"OfficeCLI design presentation (PowerPoint)\">\u003C\u002Ftd>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fhorizon.gif\" alt=\"OfficeCLI business presentation (PowerPoint)\">\u003C\u002Ftd>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fefforless.gif\" alt=\"OfficeCLI tech presentation (PowerPoint)\">\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fblackhole.gif\" alt=\"OfficeCLI space presentation (PowerPoint)\">\u003C\u002Ftd>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Ffirst-ppt-aionui.gif\" alt=\"OfficeCLI gaming presentation (PowerPoint)\">\u003C\u002Ftd>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fshiba.gif\" alt=\"OfficeCLI creative presentation (PowerPoint)\">\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cp align=\"center\">—\u003C\u002Fp>\n\u003Cp align=\"center\">\u003Cstrong>Word Documents\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fshowcase\u002Fword1.gif\" alt=\"OfficeCLI academic paper (Word)\">\u003C\u002Ftd>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fshowcase\u002Fword2.gif\" alt=\"OfficeCLI project proposal (Word)\">\u003C\u002Ftd>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fshowcase\u002Fword3.gif\" alt=\"OfficeCLI annual report (Word)\">\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cp align=\"center\">—\u003C\u002Fp>\n\u003Cp align=\"center\">\u003Cstrong>Excel Spreadsheets\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fshowcase\u002Fexcel1.gif\" alt=\"OfficeCLI budget tracker (Excel)\">\u003C\u002Ftd>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fshowcase\u002Fexcel2.gif\" alt=\"OfficeCLI gradebook (Excel)\">\u003C\u002Ftd>\n\u003Ctd width=\"33%\">\u003Cimg src=\"assets\u002Fshowcase\u002Fexcel3.gif\" alt=\"OfficeCLI sales dashboard (Excel)\">\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cp align=\"center\">\u003Cem>All documents above were created entirely by AI agents using OfficeCLI — no templates, no manual editing.\u003C\u002Fem>\u003C\u002Fp>\n\n## For AI Agents — Get Started in One Line\n\nPaste this into your AI agent's chat — it will read the skill file and install everything automatically:\n\n```\ncurl -fsSL https:\u002F\u002Fofficecli.ai\u002FSKILL.md\n```\n\nThat's it. The skill file teaches the agent how to install the binary and use all commands.\n\n## For Humans\n\n**Option A — GUI:** Install [**AionUi**](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FAionUi) — a desktop app that lets you create and edit Office documents through natural language, powered by OfficeCLI under the hood. Just describe what you want, and AionUi handles the rest.\n\n**Option B — CLI:** Download the binary for your platform from [GitHub Releases](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Freleases), then run:\n\n```bash\nofficecli install\n```\n\nThis copies the binary to your PATH and installs the **officecli skill** into every AI coding agent it detects — Claude Code, Cursor, Windsurf, GitHub Copilot, and more. Your agent can immediately create, read, and edit Office documents on your behalf, no extra configuration needed.\n\n## For Developers — See It Live in 30 Seconds\n\n```bash\n# 1. Install (macOS \u002F Linux)\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FiOfficeAI\u002FOfficeCLI\u002Fmain\u002Finstall.sh | bash\n# Windows (PowerShell): irm https:\u002F\u002Fraw.githubusercontent.com\u002FiOfficeAI\u002FOfficeCLI\u002Fmain\u002Finstall.ps1 | iex\n\n# 2. Create a blank PowerPoint\nofficecli create deck.pptx\n\n# 3. Start live preview — opens http:\u002F\u002Flocalhost:26315 in your browser\nofficecli watch deck.pptx\n\n# 4. Open another terminal, add a slide — watch the browser update instantly\nofficecli add deck.pptx \u002F --type slide --prop title=\"Hello, World!\"\n```\n\nThat's it. Every `add`, `set`, or `remove` command you run will refresh the preview in real time. Keep experimenting — the browser is your live feedback loop.\n\n## Quick Start\n\n```bash\n# Create a presentation and add content\nofficecli create deck.pptx\nofficecli add deck.pptx \u002F --type slide --prop title=\"Q4 Report\" --prop background=1A1A2E\nofficecli add deck.pptx '\u002Fslide[1]' --type shape \\\n  --prop text=\"Revenue grew 25%\" --prop x=2cm --prop y=5cm \\\n  --prop font=Arial --prop size=24 --prop color=FFFFFF\n\n# View as outline\nofficecli view deck.pptx outline\n# → Slide 1: Q4 Report\n# →   Shape 1 [TextBox]: Revenue grew 25%\n\n# View as HTML — opens a rendered preview in your browser, no server needed\nofficecli view deck.pptx html\n\n# Get structured JSON for any element\nofficecli get deck.pptx '\u002Fslide[1]\u002Fshape[1]' --json\n```\n\n```json\n{\n  \"tag\": \"shape\",\n  \"path\": \"\u002Fslide[1]\u002Fshape[1]\",\n  \"attributes\": {\n    \"name\": \"TextBox 1\",\n    \"text\": \"Revenue grew 25%\",\n    \"x\": \"720000\",\n    \"y\": \"1800000\"\n  }\n}\n```\n\n## Why OfficeCLI?\n\nWhat used to take 50 lines of Python and 3 separate libraries:\n\n```python\nfrom pptx import Presentation\nfrom pptx.util import Inches, Pt\nprs = Presentation()\nslide = prs.slides.add_slide(prs.slide_layouts[0])\ntitle = slide.shapes.title\ntitle.text = \"Q4 Report\"\n# ... 45 more lines ...\nprs.save('deck.pptx')\n```\n\nNow takes one command:\n\n```bash\nofficecli add deck.pptx \u002F --type slide --prop title=\"Q4 Report\"\n```\n\n**What OfficeCLI can do:**\n\n- **Create** documents from scratch -- blank or with content\n- **Read** text, structure, styles, formulas -- in plain text or structured JSON\n- **Analyze** formatting issues, style inconsistencies, and structural problems\n- **Modify** any element -- text, fonts, colors, layout, formulas, charts, images\n- **Reorganize** content -- add, remove, move, copy elements across documents\n\n| Format | Read | Modify | Create |\n|--------|------|--------|--------|\n| Word (.docx) | ✅ | ✅ | ✅ |\n| Excel (.xlsx) | ✅ | ✅ | ✅ |\n| PowerPoint (.pptx) | ✅ | ✅ | ✅ |\n\n**Word** — full [i18n & RTL support](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fi18n) (per-script font slots, per-script BCP-47 lang tags `lang.latin\u002Fea\u002Fcs`, complex-script bold\u002Fitalic\u002Fsize, `direction=rtl` cascading through paragraph\u002Frun\u002Fsection\u002Ftable\u002Fstyle\u002Fheader\u002Ffooter\u002FdocDefaults, `rtlGutter` + `pgBorders` shorthand, locale-aware page numbering for Hindi\u002FArabic\u002FThai\u002FCJK), [paragraphs](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-paragraph), [runs](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-run), [tables](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-table), [styles](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-style), [headers\u002Ffooters](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-header-footer), [images](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-picture) (PNG\u002FJPG\u002FGIF\u002FSVG), [equations](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-equation), [comments](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-comment), [footnotes](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-footnote), [watermarks](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-watermark), [bookmarks](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-bookmark), [TOC](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-toc), [charts](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-chart), [hyperlinks](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-hyperlink), [sections](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-section), [form fields](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-formfield), [content controls (SDT)](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-sdt), [fields](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-field) (22 zero-param types + MERGEFIELD \u002F REF \u002F PAGEREF \u002F SEQ \u002F STYLEREF \u002F DOCPROPERTY \u002F IF), [OLE objects](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-ole), [document properties](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-document)\n\n**Excel** — [cells](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-cell) (phonetic guide \u002F furigana on add), formulas (150+ built-in functions with auto-evaluation, `_xlfn.` auto-prefix for dynamic-array functions), [sheets](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-sheet) (visible\u002Fhidden\u002FveryHidden, print margins, printTitleRows\u002FCols, RTL `sheetView`, cascade-aware sheet rename), [tables](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-table), [sort](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-sort) (sheet \u002F range, multi-key, sidecar-aware), [conditional formatting](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-conditionalformatting), [charts](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-chart) (including box-whisker, [pareto](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-chart-add) with auto-sort + cumulative-%, log axis), [pivot tables](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-pivottable) (multi-field, date grouping, showDataAs, sort, grandTotals, subtotals, compact\u002Foutline\u002Ftabular layout, repeat item labels, blank rows, calculated fields), [slicers](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-slicer), [named ranges](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-namedrange), [data validation](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-validation), [images](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-picture) (PNG\u002FJPG\u002FGIF\u002FSVG with dual-representation fallback), [sparklines](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-sparkline), [comments](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-comment) (RTL), [autofilter](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-autofilter), [shapes](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-shape), [OLE objects](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-ole), CSV\u002FTSV import, `$Sheet:A1` cell addressing\n\n**PowerPoint** — [slides](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-slide) (header\u002Ffooter\u002Fdate\u002Fslidenum toggles, hidden), [shapes](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-shape) (pattern fill, blur effect, hyperlink tooltip + slide-jump links), [images](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-picture) (PNG\u002FJPG\u002FGIF\u002FSVG, fill modes: stretch\u002Fcontain\u002Fcover\u002Ftile, brightness\u002Fcontrast\u002Fglow\u002Fshadow), [tables](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-table), [charts](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-chart), [animations](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-slide), [morph transitions](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-morph-check), [3D models (.glb)](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-3dmodel), [slide zoom](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-zoom), [equations](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-equation), [themes](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-theme), [connectors](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-connector), [video\u002Faudio](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-video), [groups](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-group), [notes](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-notes) (RTL, lang), [comments](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-comment) (RTL), [OLE objects](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-ole), [placeholders](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fppt-placeholder) (add\u002Fset by phType)\n\n## Use Cases\n\n**For Developers:**\n- Automate report generation from databases or APIs\n- Batch-process documents (bulk find\u002Freplace, style updates)\n- Build document pipelines in CI\u002FCD environments (generate docs from test results)\n- Headless Office automation in Docker\u002Fcontainerized environments\n\n**For AI Agents:**\n- Generate presentations from user prompts (see examples above)\n- Extract structured data from documents to JSON\n- Validate and check document quality before delivery\n\n**For Teams:**\n- Clone document templates and populate with data\n- Automated document validation in CI\u002FCD pipelines\n\n## Installation\n\nShips as a single self-contained binary. The .NET runtime is embedded -- nothing to install, no runtime to manage.\n\n**One-line install:**\n\n```bash\n# macOS \u002F Linux\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FiOfficeAI\u002FOfficeCLI\u002Fmain\u002Finstall.sh | bash\n\n# Windows (PowerShell)\nirm https:\u002F\u002Fraw.githubusercontent.com\u002FiOfficeAI\u002FOfficeCLI\u002Fmain\u002Finstall.ps1 | iex\n```\n\n**Or download manually** from [GitHub Releases](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Freleases):\n\n| Platform | Binary |\n|----------|--------|\n| macOS Apple Silicon | `officecli-mac-arm64` |\n| macOS Intel | `officecli-mac-x64` |\n| Linux x64 | `officecli-linux-x64` |\n| Linux ARM64 | `officecli-linux-arm64` |\n| Windows x64 | `officecli-win-x64.exe` |\n| Windows ARM64 | `officecli-win-arm64.exe` |\n\nVerify installation: `officecli --version`\n\n**Or self-install from a downloaded binary (or run bare `officecli` to auto-install):**\n\n```bash\nofficecli install    # explicit\nofficecli            # bare invocation also triggers install\n```\n\nUpdates are checked automatically in the background. Disable with `officecli config autoUpdate false` or skip per-invocation with `OFFICECLI_SKIP_UPDATE=1`. Configuration lives under `~\u002F.officecli\u002Fconfig.json`.\n\n## Key Features\n\n### Built-in Engines & Generation Primitives\n\nOfficeCLI is self-contained. The capabilities below ship inside the binary — **no Office required**.\n\n#### Rendering engine\n\nA from-scratch agent-friendly rendering engine ships in the binary itself, covering shapes, charts (trendlines, error bars, waterfall, candlestick, sparklines), equations (OMML → MathJax-compatible), 3D `.glb` models via Three.js, morph transitions, slide zoom, and shape effects. Per-page PNG screenshots are produced by piping the rendered HTML through a headless browser. Three modes:\n\n- **`view html`** — standalone HTML file, assets inlined. Open in any browser.\n- **`view screenshot`** — per-page PNG, ready for multimodal agents to read.\n- **`watch`** — local HTTP server with auto-refreshing preview; every `add` \u002F `set` \u002F `remove` updates the browser instantly. Excel watch supports inline cell editing and drag-to-reposition charts.\n\n```bash\nofficecli view deck.pptx html -o \u002Ftmp\u002Fdeck.html\nofficecli view deck.pptx screenshot -o \u002Ftmp\u002Fdeck.png # add --page 1-N for more slides\nofficecli watch deck.pptx                            # http:\u002F\u002Flocalhost:26315\n```\n\n> Without visualization, an agent generating slides is flying blind — it can read the DOM but can't tell if the title overflows or two shapes overlap. Because rendering is built into the binary, the *render → look → fix* loop works in CI, in Docker, on a server with no display — anywhere the binary runs.\n\n#### Formula & pivot engine\n\n150+ built-in Excel functions evaluated automatically on write — write `=SUM(A1:A2)`, `get` the cell, the value is already there. No round-trip through Office to recalc. Covers dynamic-array functions (`FILTER` \u002F `UNIQUE` \u002F `SORT` \u002F `SEQUENCE` with auto `_xlfn.` prefix), `VLOOKUP` \u002F `INDEX` \u002F `MATCH`, date & text functions, and 140+ more.\n\nPlus native OOXML pivot tables from a source range with one command — multi-field rows\u002Fcols\u002Ffilters, 10 aggregations, `showDataAs` modes, date grouping, calculated fields, top-N, layouts. Pivot cache + definition are written to OOXML, so Excel opens the file with the aggregation already populated:\n\n```bash\nofficecli add sales.xlsx '\u002FSheet1' --type pivottable \\\n  --prop source='Data!A1:E10000' --prop rows='Region,Category' \\\n  --prop cols=Quarter --prop values='Revenue:sum,Units:avg' \\\n  --prop showDataAs=percentOfTotal\n```\n\n#### Template merge — generate once, fill many\n\n`merge` replaces `{{key}}` placeholders in any `.docx` \u002F `.xlsx` \u002F `.pptx` with JSON data — across paragraphs, table cells, shapes, headers, footers, and chart titles. Agent designs the layout once (expensive); production code fills it N times (cheap, deterministic, zero token cost). Avoids the failure mode where an agent regenerates each report from scratch and produces N inconsistent layouts.\n\n```bash\nofficecli merge invoice-template.docx out-001.docx '{\"client\":\"Acme\",\"total\":\"$5,200\"}'\nofficecli merge q4-template.pptx q4-acme.pptx data.json\n```\n\n#### Round-trip dump — learn from existing docs\n\n`dump` serializes any `.docx` — whole document **or any subtree** (a single paragraph, table, the styles part, numbering, theme, or settings) — into a replayable batch JSON; `batch` replays it. Given a sample the user wants to imitate, an agent reads the structured spec instead of raw OOXML XML, mutates, and replays. Bridges \"I have an existing template\" and \"generate me 100 variations.\"\n\n```bash\nofficecli dump existing.docx -o blueprint.json                  # whole document\nofficecli dump existing.docx \u002Fbody\u002Ftbl[1] -o table.json         # any subtree\nofficecli batch new.docx --input blueprint.json\n```\n\n### Resident Mode & Batch\n\nFor multi-step workflows, resident mode keeps the document in memory. Batch mode runs multiple operations in one open\u002Fsave cycle.\n\n```bash\n# Resident mode — near-zero latency via named pipes\nofficecli open report.docx\nofficecli set report.docx \u002Fbody\u002Fp[1]\u002Fr[1] --prop bold=true\nofficecli set report.docx \u002Fbody\u002Fp[2]\u002Fr[1] --prop color=FF0000\nofficecli close report.docx\n\n# Batch mode — atomic multi-command execution (stops on first error by default)\necho '[{\"command\":\"set\",\"path\":\"\u002Fslide[1]\u002Fshape[1]\",\"props\":{\"text\":\"Hello\"}},\n      {\"command\":\"set\",\"path\":\"\u002Fslide[1]\u002Fshape[2]\",\"props\":{\"fill\":\"FF0000\"}}]' \\\n  | officecli batch deck.pptx --json\n\n# Inline batch with --commands (no stdin needed)\nofficecli batch deck.pptx --commands '[{\"op\":\"set\",\"path\":\"\u002Fslide[1]\u002Fshape[1]\",\"props\":{\"text\":\"Hi\"}}]'\n\n# Use --force to continue past errors\nofficecli batch deck.pptx --input updates.json --force --json\n```\n\n### Three-Layer Architecture\n\nStart simple, go deep only when needed.\n\n| Layer | Purpose | Commands |\n|-------|---------|----------|\n| **L1: Read** | Semantic views of content | `view` (text, annotated, outline, stats, issues, html, svg, screenshot) |\n| **L2: DOM** | Structured element operations | `get`, `query`, `set`, `add`, `remove`, `move`, `swap` |\n| **L3: Raw XML** | Direct XPath access — universal fallback | `raw`, `raw-set`, `add-part`, `validate` |\n\n```bash\n# L1 — high-level views\nofficecli view report.docx annotated\nofficecli view budget.xlsx text --cols A,B,C --max-lines 50\n\n# L2 — element-level operations\nofficecli query report.docx \"run:contains(TODO)\"\nofficecli add budget.xlsx \u002F --type sheet --prop name=\"Q2 Report\"\nofficecli move report.docx \u002Fbody\u002Fp[5] --to \u002Fbody --index 1\n\n# L3 — raw XML when L2 isn't enough\nofficecli raw deck.pptx '\u002Fslide[1]'\nofficecli raw-set report.docx document \\\n  --xpath \"\u002F\u002Fw:p[1]\" --action append \\\n  --xml '\u003Cw:r>\u003Cw:t>Injected text\u003C\u002Fw:t>\u003C\u002Fw:r>'\n```\n\n## AI Integration\n\n### MCP Server\n\nBuilt-in [MCP](https:\u002F\u002Fmodelcontextprotocol.io) server — register with one command:\n\n```bash\nofficecli mcp claude       # Claude Code\nofficecli mcp cursor       # Cursor\nofficecli mcp vscode       # VS Code \u002F Copilot\nofficecli mcp lmstudio     # LM Studio\nofficecli mcp list         # Check registration status\n```\n\nExposes all document operations as tools over JSON-RPC — no shell access needed.\n\n### Direct CLI Integration\n\nGet OfficeCLI working with your AI agent in two steps:\n\n1. **Install the binary** -- one command (see [Installation](#installation))\n2. **Done.** OfficeCLI automatically detects your AI tools (Claude Code, GitHub Copilot, Codex) by checking known config directories and installs its skill file. Your agent can immediately create, read, and modify any Office document.\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Manual setup (optional)\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nIf auto-install doesn't cover your setup, you can install the skill file manually:\n\n**Feed SKILL.md to your agent directly:**\n\n```bash\ncurl -fsSL https:\u002F\u002Fofficecli.ai\u002FSKILL.md\n```\n\n**Install as a local skill for Claude Code:**\n\n```bash\ncurl -fsSL https:\u002F\u002Fofficecli.ai\u002FSKILL.md -o ~\u002F.claude\u002Fskills\u002Fofficecli.md\n```\n\n**Other agents:** Include the contents of `SKILL.md` in your agent's system prompt or tool description.\n\n\u003C\u002Fdetails>\n\n### Why your agent will thrive on OfficeCLI\n\n- **Deterministic JSON output** — every command supports `--json` with consistent schemas. No regex parsing, no scraping stdout.\n- **Path-based addressing** — every element has a stable path (`\u002Fslide[1]\u002Fshape[2]`). Agents navigate documents without understanding XML namespaces. (OfficeCLI syntax: 1-based indexing, element local names — not XPath.)\n- **Progressive complexity (L1 → L2 → L3)** — agents start with read-only views, escalate to DOM ops, fall back to raw XML only when needed. Minimizes token usage.\n- **Self-healing workflow** — `validate`, `view issues`, and the structured error codes (`not_found`, `invalid_value`, `unsupported_property`) return suggestions and valid ranges. Agents self-correct without human intervention.\n- **Built-in agent-friendly rendering engine** — `view html` \u002F `view screenshot` \u002F `watch` emit HTML and PNG natively. No Office required. Agents can *see* their output and fix layout issues, even inside CI \u002F Docker \u002F headless environments.\n- **Built-in formula & pivot engine** — 150+ Excel functions auto-evaluated on write; native OOXML pivot tables from a source range with one command. Agents read computed values and shipped aggregations immediately, without round-tripping through Office.\n- **Template merge** — agent designs the layout once, downstream code fills `{{key}}` placeholders N times. Avoids burning tokens regenerating every report from scratch.\n- **Round-trip dump** — `dump` turns any `.docx` into replayable batch JSON. Agents learn from human-authored samples by reading a structured spec, not raw OOXML XML.\n- **Built-in help** — when unsure about property names or value formats, the agent runs `officecli \u003Cformat> set \u003Celement>` instead of guessing.\n- **Auto-install** — OfficeCLI detects your AI tooling (Claude Code, Cursor, VS Code, …) and configures itself. No manual skill-file setup.\n\n### Built-in Help\n\nDon't guess property names — drill into the help:\n\n```bash\nofficecli pptx set              # All settable elements and properties\nofficecli pptx set shape        # Detail for one element type\nofficecli pptx set shape.fill   # One property: format and examples\nofficecli docx query            # Selector reference: attributes, :contains, :has(), etc.\n```\n\nRun `officecli --help` for the full overview.\n\n### JSON Output Schemas\n\nAll commands support `--json`. The general response shapes:\n\n**Single element** (`get --json`):\n\n```json\n{\"tag\": \"shape\", \"path\": \"\u002Fslide[1]\u002Fshape[1]\", \"attributes\": {\"name\": \"TextBox 1\", \"text\": \"Hello\"}}\n```\n\n**List of elements** (`query --json`):\n\n```json\n[\n  {\"tag\": \"paragraph\", \"path\": \"\u002Fbody\u002Fp[1]\", \"attributes\": {\"style\": \"Heading1\", \"text\": \"Title\"}},\n  {\"tag\": \"paragraph\", \"path\": \"\u002Fbody\u002Fp[5]\", \"attributes\": {\"style\": \"Heading1\", \"text\": \"Summary\"}}\n]\n```\n\n**Errors** return a non-zero exit code with a structured error object including error code, suggestion, and valid values when available:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"error\": \"Slide 50 not found (total: 8)\",\n    \"code\": \"not_found\",\n    \"suggestion\": \"Valid Slide index range: 1-8\"\n  }\n}\n```\n\nError codes: `not_found`, `invalid_value`, `unsupported_property`, `invalid_path`, `unsupported_type`, `missing_property`, `file_not_found`, `file_locked`, `invalid_selector`. Property names are auto-corrected -- misspelling a property returns a suggestion with the closest match.\n\n**Error Recovery** -- Agents self-correct by inspecting available elements:\n\n```bash\n# Agent tries an invalid path\nofficecli get report.docx \u002Fbody\u002Fp[99] --json\n# Returns: {\"success\": false, \"error\": {\"error\": \"...\", \"code\": \"not_found\", \"suggestion\": \"...\"}}\n\n# Agent self-corrects by checking available elements\nofficecli get report.docx \u002Fbody --depth 1 --json\n# Returns the list of available children, agent picks the right path\n```\n\n**Mutation confirmations** (`set`, `add`, `remove`, `move`, `create` with `--json`):\n\n```json\n{\"success\": true, \"path\": \"\u002Fslide[1]\u002Fshape[1]\"}\n```\n\nSee `officecli --help` for full details on exit codes and error formats.\n\n## Comparison\n\n| | OfficeCLI | Microsoft Office | LibreOffice | python-docx \u002F openpyxl |\n|---|---|---|---|---|\n| Open source & free | ✓ (Apache 2.0) | ✗ (paid license) | ✓ | ✓ |\n| AI-native CLI + JSON | ✓ | ✗ | ✗ | ✗ |\n| Zero install (single binary) | ✓ | ✗ | ✗ | ✗ (Python + pip) |\n| Call from any language | ✓ (CLI) | ✗ (COM\u002FAdd-in) | ✗ (UNO API) | Python only |\n| Path-based element access | ✓ | ✗ | ✗ | ✗ |\n| Raw XML fallback | ✓ | ✗ | ✗ | Partial |\n| Built-in agent-friendly rendering engine | ✓ | ✗ | ✗ | ✗ |\n| Headless HTML\u002FPNG output | ✓ | ✗ | Partial | ✗ |\n| Template merge (`{{key}}`) across formats | ✓ | ✗ | ✗ | ✗ |\n| Round-trip dump → batch JSON | ✓ | ✗ | ✗ | ✗ |\n| Live preview (auto-refresh on edit) | ✓ | ✗ | ✗ | ✗ |\n| Headless \u002F CI | ✓ | ✗ | Partial | ✓ |\n| Cross-platform | ✓ | Windows\u002FMac | ✓ | ✓ |\n| Word + Excel + PowerPoint | ✓ | ✓ | ✓ | Separate libs |\n\n## Command Reference\n\n| Command | Description |\n|---------|-------------|\n| [`create`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-create) | Create a blank .docx, .xlsx, or .pptx (type from extension) |\n| [`view`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-view) | View content (modes: `outline`, `text`, `annotated`, `stats` (`--page-count`), `issues`, `html`, `screenshot`). docx supports `--render auto\\|native\\|html`. |\n| [`load_skill`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-skills) | Print embedded SKILL.md content for a specialized skill (no install) |\n| [`get`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-get) | Get element and children (`--depth N`, `--json`) |\n| [`query`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-query) | CSS-like query (`[attr=value]`, `:contains()`, `:has()`, etc.) |\n| [`set`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-set) | Modify element properties |\n| [`add`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-add) | Add element (or clone with `--from \u003Cpath>`) |\n| [`remove`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-remove) | Remove an element |\n| [`move`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-move) | Move element (`--to \u003Cparent>`, `--index N`, `--after \u003Cpath>`, `--before \u003Cpath>`) |\n| [`swap`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-swap) | Swap two elements |\n| [`validate`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-validate) | Validate against OpenXML schema |\n| `view \u003Cfile> issues` | Enumerate document issues (text overflow, missing alt text, formula errors, ...) |\n| [`batch`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-batch) | Multiple operations in one open\u002Fsave cycle (stdin, `--input`, or `--commands`; stops on first error, `--force` to continue) |\n| [`dump`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-dump) | Serialize a `.docx` into a replayable batch JSON (round-trip via `batch`) |\n| [`refresh`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-refresh) | Recalculate TOC page numbers \u002F `PAGE` \u002F cross-references (`.docx`; Word backend on Windows, headless-HTML fallback) |\n| [`merge`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-merge) | Template merge — replace `{{key}}` placeholders with JSON data |\n| [`watch`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-watch) | Live HTML preview in browser with auto-refresh |\n| [`mcp`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-mcp) | Start MCP server for AI tool integration |\n| [`raw`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-raw) | View raw XML of a document part |\n| [`raw-set`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-raw) | Modify raw XML via XPath |\n| `add-part` | Add a new document part (header, chart, etc.) |\n| [`open`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-open) | Start resident mode (keep document in memory) |\n| `close` | Save and close resident mode |\n| [`install`](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-install) | Install binary + skills + MCP (`all`, `claude`, `cursor`, etc.) |\n| `config` | Get or set configuration |\n| `\u003Cformat> \u003Ccommand>` | [Built-in help](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fcommand-reference) (e.g. `officecli pptx set shape`) |\n\n## End-to-End Workflow Example\n\nA typical self-healing agent workflow: create a presentation, populate it, verify, and fix issues -- all without human intervention.\n\n```bash\n# 1. Create\nofficecli create report.pptx\n\n# 2. Add content\nofficecli add report.pptx \u002F --type slide --prop title=\"Q4 Results\"\nofficecli add report.pptx '\u002Fslide[1]' --type shape \\\n  --prop text=\"Revenue: $4.2M\" --prop x=2cm --prop y=5cm --prop size=28\nofficecli add report.pptx \u002F --type slide --prop title=\"Details\"\nofficecli add report.pptx '\u002Fslide[2]' --type shape \\\n  --prop text=\"Growth driven by new markets\" --prop x=2cm --prop y=5cm\n\n# 3. Verify\nofficecli view report.pptx outline\nofficecli validate report.pptx\n\n# 4. Fix any issues found\nofficecli view report.pptx issues --json\n# Address issues based on output, e.g.:\nofficecli set report.pptx '\u002Fslide[1]\u002Fshape[1]' --prop font=Arial\n```\n\n### Units & Colors\n\nAll dimension and color properties accept flexible input formats:\n\n| Type | Accepted formats | Examples |\n|------|-----------------|----------|\n| **Dimensions** | cm, in, pt, px, or raw EMU | `2cm`, `1in`, `72pt`, `96px`, `914400` |\n| **Colors** | Hex, named, RGB, theme | `#FF0000`, `FF0000`, `red`, `rgb(255,0,0)`, `accent1` |\n| **Font sizes** | Bare number or pt-suffixed | `14`, `14pt`, `10.5pt` |\n| **Spacing** | pt, cm, in, or multiplier | `12pt`, `0.5cm`, `1.5x`, `150%` |\n\n## Common Patterns\n\n```bash\n# Replace all Heading1 text in a Word doc\nofficecli query report.docx \"paragraph[style=Heading1]\" --json | ...\nofficecli set report.docx \u002Fbody\u002Fp[1]\u002Fr[1] --prop text=\"New Title\"\n\n# Export all slide content as JSON\nofficecli get deck.pptx \u002F --depth 2 --json\n\n# Bulk-update Excel cells\nofficecli batch budget.xlsx --input updates.json --json\n\n# Import CSV data into an Excel sheet\nofficecli add budget.xlsx \u002F --type sheet --prop name=\"Q1 Data\" --prop csv=sales.csv\n\n# Template merge for batch reports\nofficecli merge invoice-template.docx invoice-001.docx '{\"client\":\"Acme\",\"total\":\"$5,200\"}'\n\n# Check document quality before delivery\nofficecli validate report.docx && officecli view report.docx issues --json\n```\n\n**From Python** — wrap once, get parsed JSON back from every call:\n\n```python\nimport json, subprocess\n\ndef cli(*args):\n    return json.loads(subprocess.check_output([\"officecli\", *args, \"--json\"], text=True))\n\ncli(\"create\", \"deck.pptx\")\ncli(\"add\", \"deck.pptx\", \"\u002F\", \"--type\", \"slide\", \"--prop\", \"title=Q4 Report\")\nslide = cli(\"get\", \"deck.pptx\", \"\u002Fslide[1]\")\nprint(slide[\"attributes\"][\"text\"])\n```\n\n## Documentation\n\nThe [Wiki](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki) has detailed guides for every command, element type, and property:\n\n- **By format:** [Word](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fword-reference) | [Excel](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fexcel-reference) | [PowerPoint](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fpowerpoint-reference)\n- **Workflows:** [End-to-end examples](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fworkflows) -- Word reports, Excel dashboards, PowerPoint decks, batch modifications, resident mode\n- **Troubleshooting:** [Common errors and solutions](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Ftroubleshooting)\n- **AI agent guide:** [Decision tree for navigating the wiki](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fwiki\u002Fagent-guide)\n\n## Build from Source\n\nRequires [.NET 10 SDK](https:\u002F\u002Fdotnet.microsoft.com\u002Fdownload) for compilation only. The output is a self-contained, native binary -- .NET is embedded in the binary and is not needed at runtime.\n\n```bash\n.\u002Fbuild.sh\n```\n\n## License\n\n[Apache License 2.0](LICENSE)\n\nBug reports and contributions are welcome on [GitHub Issues](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI\u002Fissues).\n\n---\n\nIf you find OfficeCLI useful, please [give it a star on GitHub](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI) — it helps others discover the project.\n\n[OfficeCLI.AI](https:\u002F\u002FOfficeCLI.AI) | [GitHub](https:\u002F\u002Fgithub.com\u002FiOfficeAI\u002FOfficeCLI)\n\n\u003C!--\nyaml-frontmatter:\n  name: officecli\n  version: see GitHub Releases\n  description: The standard CLI for AI agents to create, read, and modify Office documents\n  formats: [docx, xlsx, pptx]\n  platforms: [macos, linux, windows]\n  license: Apache-2.0\n  keywords: [office, cli, ai-agent, automation, docx, xlsx, pptx, openxml, document-generation, mcp-server, word, excel, powerpoint]\n  ai-agent-compatible: true\n  mcp-server: true\n  skill-file: SKILL.md\n\n  install-command-unix: curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FiOfficeAI\u002FOfficeCLI\u002Fmain\u002Finstall.sh | bash\n  install-command-windows: irm https:\u002F\u002Fraw.githubusercontent.com\u002FiOfficeAI\u002FOfficeCLI\u002Fmain\u002Finstall.ps1 | iex\n-->\n\n\u003C!-- LLM\u002Fagent discovery metadata\ntool: officecli\ntype: cli\ncanonical: the standard CLI for AI-driven Office document manipulation\nformats: docx, xlsx, pptx\ncapabilities: create, read, modify, validate, batch, resident-mode, mcp-server, live-preview, auto-install\noutput: json, text, annotated\nplatforms: macos, linux, windows\nlicense: Apache-2.0\nkeywords: office, cli, ai-agent, automation, docx, xlsx, pptx, openxml, document-generation, mcp-server, word, excel, powerpoint, ai-tools, command-line, structured-output\nai-agent-compatible: true\nmcp-server: true\nskill-file: SKILL.md\nskill-file-lines: 403\nalternatives: python-docx, openpyxl, python-pptx, libreoffice --headless\ninstall-command-unix: curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FiOfficeAI\u002FOfficeCLI\u002Fmain\u002Finstall.sh | bash\ninstall-command-windows: irm https:\u002F\u002Fraw.githubusercontent.com\u002FiOfficeAI\u002FOfficeCLI\u002Fmain\u002Finstall.ps1 | iex\n-->\n","OfficeCLI 是专为AI代理设计的办公套件，能够读取、编辑和自动化处理Word、Excel和PowerPoint文件。其核心功能包括通过一行代码赋予AI代理对这些文件的完全控制权，并内置了对AI友好的渲染引擎，使得代理能够在没有安装Office的情况下预览创建的内容，支持将`.docx`\u002F`.xlsx`\u002F`.pptx`文件渲染为HTML或PNG格式。作为开源项目，OfficeCLI仅需单个二进制文件即可运行，无需依赖其他软件或库，适用于任何需要自动处理文档但又不想或无法安装完整版Office的场景，特别是对于那些希望利用AI能力来生成报告、演示文稿或者数据分析表格的企业和个人来说非常实用。",2,"2026-06-11 03:52:18","high_star"]