iOfficeAI/OfficeCLI
31.0
Weak · 5 August 2026
252.8k
lines of production code
C#
with Python
5
measurements over time
What this system is
OfficeCLI is a command-line interface and resident process that provides programmatic access to create, edit, and export Office documents (Excel, PowerPoint, Word) via Python and Node.js SDKs. It supports a wide range of features including complex charting, 3D models, diagrams, and advanced formatting, while also offering PDF/PNG export and foreign format conversion through a plugin architecture. The system ensures high fidelity in document round-trips and includes a formula evaluation engine for Excel calculations.
Features
Add 14 professional PowerPoint style templates for OfficeCLI
The \examples/ppt/templates\ directory now includes 14 pre-generated \.pptx\ files and their corresponding \build.sh\ scripts, organized into categories such as Science & Technology, Product & Brand, Lifestyle, Business & Tech, and Future Vision. These templates provide ready-to-use presentation styles with reference build scripts that demonstrate layout patterns, color schemes, and animation choreography for the OfficeCLI tool.
examples/ppt/templates · high confidence
Add Excel examples for cell formatting, charts, and conditional formatting
Added three new showcase examples in the \examples/excel\ directory: \cell-formatting\ demonstrates the full xlsx cell property surface (fonts, fills, borders, number formats, formulas, and rich-text runs); \charts\ generates a workbook with eight chart types (combo, 3D column, scatter, pie, bubble, stock, radar, and doughnut) using the high-level \add --type chart\ API; and \conditional-formatting\ exercises the complete xlsx conditional formatting rule family. Each example is provided as a Python SDK script, a Bash CLI script, and a Markdown documentation file, enabling users to see how to build these Excel features programmatically.
examples/excel · high confidence
Add chart style and color resources for extended chart types
The application now includes XML resource files for chart styling and color schemes, specifically adding support for extended chart types like funnel, sunburst, and treemap. These new resources define the visual appearance of chart components such as axes, data points, and legends, ensuring that these complex chart types render with the correct Microsoft-compatible structure and styling.
src/officecli/Resources · high confidence
Added npm package with postinstall binary download and launcher shim
The npm package now includes a postinstall script that downloads the native binary for the user's platform (macOS, Linux, Windows) from a release mirror or GitHub, verifying the SHA256 checksum. A launcher shim at the package root ensures the command is available, and if the binary is missing, it is lazily downloaded on first run. The README provides usage instructions for the CLI.
npm · high confidence
Excel batch dump now emits structured elements (tables, CF, validations, comments, charts, sparklines, pictures, shapes, OLE, and autofilter criteria) via the \`add\` command
The Excel handler's batch dump now generates a sequence of \add\ commands to reconstruct sheet elements, ensuring that referenced data exists before dependent elements (like charts) are added. This includes tables, conditional formatting rules, data validations, comments, charts, sparklines, pictures, shapes, OLE objects, and auto-filter criteria. The emitter also handles specific edge cases, such as preserving plain table styles, adjusting table references when total rows are present, and ensuring cross-sheet chart references are valid by deferring chart emission to a final pass.
src/officecli/Handlers/Excel · high confidence
Expanded PowerPoint examples for pictures and advanced textbox typography
Added new example files for PowerPoint generation, including \pictures-basic\ (demonstrating image embedding, cropping, rotation, hyperlinks, and set-only effects) and \textboxes-advanced\ (demonstrating per-paragraph and per-run typography overrides such as alignment, indents, styling, and kerning). These examples provide both shell script and Python SDK implementations alongside Markdown documentation, offering comprehensive references for common presentation tasks.
examples/ppt/pictures, examples/ppt/textboxes · high confidence
Expanded PowerPoint shape examples covering geometry, fills, outlines, connectors, and effects
Added comprehensive example scripts and documentation for PowerPoint shape manipulation. The \shapes-basic\ example demonstrates shape geometry presets (rect, ellipse, star, etc.), fill types (solid, gradient, pattern, opacity), outline styling (line color, width, dash, compound strokes, arrowheads), rotation, and visual effects (shadow, glow, reflection). The \shapes-connectors\ example covers connector types (straight, elbow, curve), flowchart topology, and shape grouping. Both are provided as shell scripts, Python SDK scripts, and Markdown documentation, enabling users to generate and understand complex PPTX structures.
examples/ppt/shapes · high confidence
Expanded chart examples for Excel
Added new example scripts and documentation for Excel charts, including advanced scatter, bubble, combo, radar, and stock (OHLC) charts, as well as area, bar, and other chart types. These examples demonstrate a wide range of chart features such as marker styles, smooth curves, reference lines, secondary axes, 3D rendering, and data labels.
examples/excel/charts · high confidence
Expanded formula evaluation with new function families and improved accuracy
The formula engine now supports a significantly larger set of Excel functions, including complex number operations (IM\), statistical distributions, descriptive and regression statistics, financial (bond, coupon, securities), and array/spill functions. This update also corrects the evaluation of existing functions such as CUM\ and CEILING.MATH/FLOOR.MATH to honor their mode arguments, fixes error propagation in aggregate functions, and ensures that complex number strings are parsed and formatted to match Excel's exact textual representation.
src/officecli/Core/Formula · high confidence
Expanded slide transition examples across multiple categories
Added new example files for slide transitions, including basic transitions (cut, fade, dissolve, flash), band/strip patterns (blinds, checker, comb, bars, strips, split), directional movements (push, wipe, cover, uncover), dynamic 3D effects (switch, flip, vortex, prism), and modern presets (fallOver, drape, pageCurl). Each category includes a shell script, a Python SDK script, and a Markdown documentation file, all generating corresponding .pptx files to demonstrate the respective transition types.
examples/ppt/transitions · high confidence
Introduce @officecli/sdk for Node.js
Adds a new Node.js SDK that communicates with the officecli resident via a named pipe. The SDK provides \create()\ and \open()\ to obtain a \Document\ handle, then \send()\ or \batch()\ to forward commands to the resident. It includes auto-provisioning of the CLI binary if missing, handles cross-platform pipe naming (including 8.3 path expansion on Windows), and exposes an \install()\ function for Unix-based provisioning.
sdk/node · high confidence
Introduce batch dump emitters for PowerPoint and Word
Added PptxBatchEmitter and WordBatchEmitter classes to generate batch-format dumps for PowerPoint and Word documents respectively. The emitters walk the document tree and emit a sequence of BatchItem rows that reconstruct the original document when replayed. This enables the \officecli dump --format batch\ pipeline to produce structured, replayable output for both file types.
OfficeCli.Handlers · high confidence
Introduce in-memory mark annotations for the watch preview
Added support for in-memory mark annotations (find/expect/note/color) attached to a document path within the watch subsystem. The new \WatchMark\ class and associated request/response types (\MarkRequest\, \UnmarkRequest\, \MarksResponse\) enable users to add, remove, and query these advisory annotations via the watch server's named pipe interface. The implementation ensures marks are stored only in memory and never persisted to disk or the underlying OOXML file, with JSON serialization configured to handle CJK and non-ASCII characters safely.
src/officecli/Core/Watch · high confidence
Introduce machine-readable help dump and schema integrity fingerprint
The \officecli help\ command now supports a flat, grep-friendly text dump and a JSONL/JSON array output for all schema elements and properties, enabling external tools to parse help data without parsing human-readable text. Additionally, a CRC32 fingerprint of the embedded help schemas is exposed via \officeci crc\ to allow downstream tooling to verify schema integrity after binary upgrades.
src/officecli/Help · high confidence
Introduce pluggable rendering architecture with PNG export support
The rendering pipeline has been refactored to support pluggable rendering backends, allowing alternative implementations to be registered and selected by capability and priority. The new \IRenderer\ interface and \RendererRegistry\ enable multiple renderers to coexist, with the built-in HTML/SVG renderers now adapting to this seam. This change adds support for PNG and PDF output artifacts, allowing users to export documents as raster images or PDFs, while maintaining the existing HTML/SVG capabilities.
src/officecli/Core/Rendering, src/officecli/Handlers/Rendering · high confidence
Introduce the officecli Python SDK for resident pipe communication
A new Python SDK (\officecli\) is introduced to communicate with the \officecli\ resident process via a named pipe, enabling fast, in-process command execution without spawning a new CLI process for every command. The SDK automatically provisions the \officecli\ binary on first use (auto-install) if it is not found on the system PATH, displaying a notice before installation. It supports cross-platform operation (Windows/macOS/Linux) with specific handling for Windows pipe paths and 8.3 short path expansion. The SDK provides \create\ and \open\ methods to manage sessions and \send\/\batch\ methods to execute commands, returning responses in a format mirroring the CLI's batch structure.
sdk/python · high confidence
Native flowchart and sequence diagram rendering for Office documents
Users can now insert flowcharts and sequence diagrams directly into Office documents using the \--type diagram\ flag. The system parses Mermaid syntax and renders diagrams natively as editable shapes (flowchart) or lifelines (sequence), supporting Unicode identifiers (e.g., CJK characters) and standard diagram syntax. For complex or unsupported diagram types, the system falls back to rendering via the Mermaid CLI or a headless browser to produce a high-fidelity PNG image. This change introduces the core compilation, layout, and style logic for these diagram types.
src/officecli/Core/Diagram · high confidence
New 3D and advanced chart examples for PowerPoint
Added new example scripts and documentation for generating 3D charts (column3d, bar3d, pie3d, line3d, area3d) and advanced chart features (RTL layout, axis visibility, crossings, and series styling) in PowerPoint presentations. The changes include \charts-3d.py\ and \charts-3d.sh\ to generate \charts-3d.pptx\ with 8 slides demonstrating 3D chart types, view3d angles, gapdepth, bar shapes, title/legend styling, and presets. Additionally, \charts-advanced.py\ and \charts-advanced.sh\ are added to generate \charts-advanced.pptx\ with 8 slides covering RTL direction, anchor variants, axis shortcuts, crossings, category axis layout, marker size, fills, and blank handling. Corresponding Markdown files (\charts-3d.md\, \charts-advanced.md\) document each slide's features and regeneration commands.
examples/ppt/charts · high confidence
New 3D model and animation examples for PowerPoint
Added two new example sets in the \examples/ppt\ directory. The first, \3d-model\, demonstrates embedding a GLB 3D model across slides with morph transitions and rotation properties (\rotx\, \roty\). The second, \animations\, showcases the first-class \animation\ element, covering entrance, exit, emphasis, and motion path effects with full timing control (trigger, duration, delay, repeat). Both examples include shell scripts, Python SDK twins, and Markdown documentation.
examples/ppt · high confidence
New OLE embedding examples for PowerPoint
Added examples for embedding Office files (\.xlsx\, \.docx\) as OLE objects in PowerPoint slides. The new \examples/ppt/ole/ole-embed.{sh,py,md}\ files demonstrate how to use the \--type ole\ command to embed payloads with explicit \progId\ and \preview\ thumbnails. The examples also show the difference between embedding with and without a \preview\ property, highlighting that without a thumbnail, the object renders as a blank rectangle in static view until activated. Additionally, the old \gen-beautiful-charts.sh\ and \gen-charts-demo.sh\ scripts have been removed, as chart examples have been reorganized into the new directory structure.
examples · high confidence
New PowerPoint table examples: basic, borders, and financial
Added three new example sets for PowerPoint table generation: basic table features (inline CSV data, per-cell text, fill variations, typography, and layout), table border styling (shorthand, per-edge, inside dividers, dash patterns, and diagonal borders), and a real-world financial review deck (section headers with gridSpan, traffic-light status fills, and KPI summaries). Each example includes a shell script, a Python SDK script, and a Markdown reference, demonstrating the full range of table creation and formatting capabilities.
examples/ppt/tables · high confidence
New Word examples for charts, content controls, and diagrams
Added three new example sets in examples/word: charts (a CLI script, Python SDK twin, and markdown guide for 14 inline DrawingML charts including column, bar, line, pie, area, scatter, radar, doughnut, stock, and combo types), content-controls (demonstrating sdt/structured document tags for text, dropdown, combobox, date, picture, richtext, group, and checkbox controls), and diagram (showcasing Mermaid diagrams in native editable shapes and image-rendered PNGs). Each example includes a .sh script, a .py SDK twin, and a .md documentation file.
examples/word · high confidence
New contributor guidelines and project metadata files added
The repository now includes a comprehensive CONTRIBUTING.md guide for both human and AI agents, establishing rules for atomic pull requests and validation methods. Additionally, new files have been added to the project root: a security policy (SECURITY.md), a third-party license notices file (THIRD-PARTY-NOTICES.txt), a standard Apache 2.0 LICENSE file, and a dev-install.sh script for local development builds. These files formalize the project's contribution workflow, security reporting process, and legal attribution requirements.
(repo-wide) · high confidence
New formula evaluation engine and pluggable renderer architecture
The core formula evaluation logic has been refactored into a new \FormulaEvaluator\ class that supports over 350 Excel functions, including LAMBDA, REDUCE, and dynamic-array functions. This update fixes numerous calculation errors, such as proper error propagation, correct handling of empty cells, and improved precision for numeric results. Additionally, a new pluggable renderer architecture has been introduced, allowing for flexible output generation and support for watch-mode interactions.
OfficeCli.Core · high confidence
New morph-ppt skill with planning, helpers, and style references
Added a new skill for generating PowerPoint presentations with Morph animations. This includes a planning prompt (decision-rules.md) that infers audience, purpose, and narrative structure to produce a brief. It also introduces cross-platform helper scripts (morph-helpers.py and morph-helpers.sh) to automate slide cloning, morph transition setting, and content ghosting. Additionally, reference materials for PPTX design (pptx-design.md) and a comprehensive style index (styles/INDEX.md) with example build scripts are provided to guide the visual execution of these presentations.
skills/morph-ppt/reference · high confidence
Plugin system v1: new architecture for dump-readers, exporters, and format-handlers
The plugin subsystem has been replaced with a v1 protocol supporting three plugin kinds: dump-readers (convert foreign formats like .doc to .docx), exporters (convert native formats to PDF, SVG, etc.), and format-handlers (edit foreign formats directly). The core infrastructure includes \PluginRegistry\ for discovery, \PluginProcess\ for safe subprocess execution with idle-timeout watchdogs, and \PluginManifest\ for configuration. \DumpReaderInvoker\ streams JSONL output from dump-reader plugins and replays it into native files. \ExporterInvoker\ handles export conversions. \FormatHandlerProxy\ delegates all document operations to a long-running format-handler plugin via \FormatHandlerSession\, enabling transparent editing of foreign formats. The registry now enforces security by rejecting plugins from relative or world-writable PATH directories.
src/officecli/Core/Plugins · high confidence
Structured error handling and batch execution API for developers
The core library now exposes a public \BatchExecutor\ API, allowing embedders to run batch or single commands in-process with output identical to the CLI's \--json\ or text modes. Internally, the \AttributeFilter\ was added to parse CSS-like attribute filters for query selectors, and \CliException\ was introduced to carry structured error codes and suggestions for AI agents. Additionally, \CliLogger\ provides optional file-based logging, \Bcp47LanguageTag\ validates language codes, and \CellPropHints\ clarifies ambiguous Excel cell properties.
src/officecli/Core · high confidence
Support for extended chart types and advanced chart features
Users can now create and style extended chart types (funnel, treemap, sunburst, boxWhisker, histogram, and pareto) in PowerPoint, Word, and Excel documents. The update also introduces support for reference lines, conditional coloring, and waterfall chart simulation, alongside a new axis-by-role API for targeted axis configuration.
src/officecli/Core/Chart · high confidence
Behavioural changes
1 commit (0 fixes) modifying examples/ppt/models
A change to existing behaviour in examples/ppt/models — 1 commit, 1 file.
examples/ppt/models · low confidence · unverified
5 commits (0 fixes) modifying assets/showcase
A change to existing behaviour in assets/showcase — 5 commits, 23 files.
assets/showcase · medium confidence · unverified
PowerPoint table style rendering corrected for emphasis bands and tint values
The rendering of built-in PowerPoint table styles has been updated to match PowerPoint's empirical output. Specifically, emphasis bands (header, last row, first column, and last column) now render in bold, and tint values for dark and medium families have been halved to match observed rendering. These changes ensure that tables styled with built-in themes appear visually consistent with native PowerPoint output.
src/officecli/Core/TableStyles · medium confidence
Fixes
Fix batch command JSON parsing to accept array-form props
The batch command previously rejected valid JSON input where the 'props' field was an array of 'key=value' strings (e.g., \["bold=true"\]) instead of an object (e.g., {"bold": "true"}). This change updates the JSON deserialization for batch items to accept both formats, ensuring that AI agents and scripts using the array form for properties no longer fail with a parsing error.
src/officecli · high confidence
Fix macOS notarization by adding JIT entitlement
The build configuration for macOS now includes the 'com.apple.security.cs.allow-jit' entitlement in the code-signing entitlements file. This change ensures that the notarized CoreCLR can start correctly on macOS, resolving a build or runtime issue related to JIT execution permissions.
build · medium confidence
Fixes for PPTX rendering, round-trip fidelity, and input validation
This release resolves 1307 issues in the PPTX handler, significantly improving the fidelity of the HTML preview and the reliability of the dump/replay cycle. Key fixes include correcting the rendering of shapes, connectors, and charts in the HTML preview; ensuring that properties like shadow, glow, and gradient fills round-trip without data loss; and validating user input to prevent crashes and schema violations. The changes also address specific bugs such as incorrect table cell styling, broken hyperlink handling, and animation timing errors.
src/officecli/Handlers/Pptx · high confidence
Fixes to Word and DOCX handlers for improved round-trip fidelity and bug resolution
This update resolves 1780 commits of fixes across the Word and DOCX handlers, significantly improving the fidelity of the dump→batch round-trip for complex document structures. Key improvements include preserving run-level formatting in hyperlinks, fields, and content controls; ensuring table cell widths, borders, and shading round-trip correctly; and fixing issues with header/footer rendering, numbering lists, and equation display. The changes also address specific bugs related to RTL text direction, form fields, and HTML preview rendering, ensuring that modifications made via the API are preserved accurately when the document is saved and reloaded.
src/officecli/Handlers/Word · high confidence
Hardened document opening with validation and safety checks
The document opening process now enforces stricter validation and safety measures. It rejects empty or missing file paths with a clear error message, prevents opening 0-byte files that would otherwise be accepted by the underlying SDK, and guards against decompression bombs by checking zip entry counts, uncompressed sizes, and compression ratios before processing. Additionally, it proactively repairs dangling internal relationships in PowerPoint and Word documents to prevent crashes during subsequent operations.
src/officecli/Handlers · high confidence
Dependencies
Release OfficeCLI 1.0.138 with SDKs and embedded resources
OfficeCLI has been updated to version 1.0.138, which includes the release of the @officecli/sdk (Node.js) and officecli-sdk (Python) packages for programmatic access to the resident pipe, alongside the publication of the @officecli/officecli npm package. The .NET project file was updated to version 1.0.138 and now embeds various static resources—including CSS, JavaScript, XML templates, and help schemas—directly into the assembly to support single-file installation and schema-driven help.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 32 → 31 (-1.2)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.19) — scores are not directly comparable.
Lenses
- Code Health 26 → 25 (-0.6)
- Architecture 71 → 72 (+0.1)
- Maturity 53 → 53 (-0.0)
- Readiness 27 → 27 (+0.0)
- Security 30 → 30 (+0.0)
- Performance 60 → 60 (+0.0)
Resolved (19)
- Build action pinned to a mutable branch
- Change coupling: ChartHelper.Reader.cs ↔ WordBatchEmitter.Charts.cs (src/officecli/Core/Chart/ChartHelper.Reader.cs)
- Change coupling: FormulaEvaluator.Functions.cs ↔ ModernFunctionQualifier.cs (src/officecli/Core/Formula/FormulaEvaluator.Functions.cs)
- Duplicated block (10 lines × 2) (src/officecli/Core/PivotTableHelper.Render.cs)
- Duplicated block (10 lines × 2) (src/officecli/Handlers/Excel/ExcelHandler.Add.Cells.cs)
- Duplicated block (12 lines × 2) (src/officecli/Core/PivotTableHelper.Render.cs)
- Duplicated block (17 lines × 2) (src/officecli/Core/PivotTableHelper.Render.cs)
- Duplicated block (6 lines × 2) (src/officecli/Handlers/Excel/ExcelHandler.Add.Cells.cs)
- Duplicated block (6 lines × 2) (src/officecli/Handlers/Excel/ExcelHandler.Add.Cells.cs)
- Duplicated block (7 lines × 3) (src/officecli/Handlers/Excel/ExcelHandler.Add.Cells.cs)
- Duplicated block (8 lines × 2) (src/officecli/Core/PivotTableHelper.Render.cs)
- Duplicated block (8 lines × 2) (src/officecli/Handlers/Excel/ExcelHandler.Add.Cells.cs)
- Duplicated block (8 lines × 4) (src/officecli/BlankDocCreator.cs)
- Duplicated block (9 lines × 2) (src/officecli/BlankDocCreator.cs)
- Hotspot: src/officecli/Handlers/Pptx/PowerPointHandler.Query.cs (src/officecli/Handlers/Pptx/PowerPointHandler.Query.cs)
- LLM evaluation failed
- Off-boarding risk: anonymized user #1
- WordBatchEmitter.EmitWordWithWarnings (cyclomatic 17) (src/officecli/Handlers/Word/WordBatchEmitter.cs)
- WordBatchEmitter.EmitWordWithWarnings (cyclomatic 21) (src/officecli/Handlers/Word/WordBatchEmitter.cs)
New (23)
- Duplicated block (10 lines × 2) (src/officecli/Core/PivotTableHelper.Render.cs)
- Duplicated block (12 lines × 2) (src/officecli/Core/PivotTableHelper.Render.cs)
- Duplicated block (17 lines × 2) (src/officecli/Core/PivotTableHelper.Render.cs)
- Duplicated block (7 lines × 5) (src/officecli/BlankDocCreator.cs)
- EmptyCatchBlock (src/officecli/CommandBuilder.View.cs)
- EmptyCatchBlock (src/officecli/CommandBuilder.View.cs)
- EmptyCatchBlock (src/officecli/CommandBuilder.cs)
- EmptyCatchBlock (src/officecli/Core/HtmlScreenshot.cs)
- EmptyCatchBlock (src/officecli/Core/HtmlScreenshot.cs)
- EmptyCatchBlock (src/officecli/Core/HtmlScreenshot.cs)
- EmptyCatchBlock (src/officecli/Core/HtmlScreenshot.cs)
- EmptyCatchBlock (src/officecli/Core/HtmlScreenshot.cs)
- EmptyCatchBlock (src/officecli/Core/PowerPointPngBackend.cs)
- EmptyCatchBlock (src/officecli/Core/PowerPointPngBackend.cs)
- EmptyCatchBlock (src/officecli/ResidentServer.cs)
- EmptyCatchBlock (src/officecli/ResidentServer.cs)
- Hotspot: src/officecli/Core/Formula/FormulaEvaluator.Functions.cs (src/officecli/Core/Formula/FormulaEvaluator.Functions.cs)
- Off-boarding risk: anonymized user #1
- The 'For AI Agents' section is cut off mid-table (PPT creation process) by the scanner; it cannot be confirmed whether the agent-getting-in-one-line guide is fully present or needs a fix. (README.md)
- The editing rule (PR must update matching schema file) and Not here section are clipped mid-table; the visible layout and enforcement discipline are intact. (schemas/README.md)
- …and 3 more
Architecture
- Unchanged — 1 containers · 2 contexts · 1 edges
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
iOfficeAI/OfficeCLI was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 5 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 67a93a397393263a87a2be855a91435c6354fb2f — the exact code this score is about.
- Scored under rubric-2026.08.19 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer latest.