Inspect, search, fetch, and convert local documents and mail stores with bounded access.
OfficeIMO is a family of COM-free .NET libraries for creating, reading, editing, converting, and exporting Office and document formats. It runs in services, desktop applications, build agents, containers, and automation hosts without Microsoft Office, Excel, PowerPoint, Visio, or LibreOffice automation.
This is not one facade over a collection of unrelated document libraries. OfficeIMO owns its OneNote, PDF, Markdown, RTF, OpenDocument, AsciiDoc, LaTeX, OPML, DocBook, CSV, EPUB, ZIP, drawing, Apple iWork source, legacy Word .doc, legacy Excel .xls, and legacy PowerPoint .ppt/.pot/.pps implementations. Word, Excel, and PowerPoint use the Open XML SDK for package mechanics; HTML exposes owned document and provider contracts while retaining AngleSharp for parsing and CSS execution. Converters compose the same first-party object models used by the native packages and return diagnostics when a target format cannot carry everything from the source.
Applications should keep OfficeIMO packages on the same coordinated version. Converters compose package-owned document models and expose result-bearing APIs when callers need fidelity diagnostics.
For existing Windows x64 applications that import through ODBC, OfficeIMO.Odbc exposes bounded .xlsx workbook snapshots as read-only SQL tables. It is built and deployed separately from the .NET document packages.
Upgrading an existing application? The OfficeIMO migration guide covers package, API, and behavior changes across every format. Release history and downloadable artifacts are published through GitHub Releases.
If OfficeIMO saves you time, please consider supporting the work through GitHub Sponsors or PayPal. PowerShell users should start with PSWriteOffice.
OfficeIMO keeps document engines first-party and optional integrations isolated. The table calls out direct non-OfficeIMO runtime dependencies that matter to package selection; Microsoft/BCL compatibility packages are still used where older target frameworks need platform APIs.
| Package family | Direct external runtime dependency | What OfficeIMO owns |
|---|---|---|
| Drawing, OneNote, Markdown, RTF, OpenDocument, AsciiDoc, LaTeX, OPML, DocBook, CSV, EPUB, ZIP | No third-party document engine | Parsing, object models, writing, rendering primitives, safety limits, and diagnostics |
| CAB and passive MSI extraction | None | Managed Cabinet decoding, embedded MSI payload mapping, bounded extraction, and path validation |
| JavaScript and browser assets | None | Strict TypeScript document layers, streaming XLSX/CSV and embedded portable scripts |
| Apple iWork source reading | No third-party document engine | Bounded package, Snappy/IWA, protobuf-envelope, record-preservation, and Pages/Numbers/Keynote projection layers |
| Word, Excel, PowerPoint | Open XML SDK | Fluent/editable object models, lifecycle, validation, conversions, managed image export, and first-party .doc/.xls/.ppt support |
HTML document contracts (OfficeIMO.Html.Core) | None | Owned nodes, immutable snapshots, edits and parser/charset contracts |
HTML syntax provider (OfficeIMO.Html.AngleSharp) | AngleSharp and System.Text.Encoding.CodePages | Translation to owned nodes, selector/serialization services and charset-provider integration |
| HTML conversion and rendering | AngleSharp and AngleSharp.Css | Resource policy, media filtering, layout scene, and PNG/JPEG/TIFF/SVG/WebP output; opt-in bridges add RTF, MHTML, email-image, and PDF workflows |
| No third-party PDF or cryptographic dependency | PDF parsing/writing/rendering, password security, signature structure, preservation policy, limits, and diagnostics | |
| Email, email stores, and address books | System.Text.Encoding.CodePages | EML/MIME, MSG/OFT, TNEF, mbox, PST/OST, OLM, EMLX, Outlook OAB, MAPI projection, protected-wrapper preservation, limits, and diagnostics |
| Optional Security provider | Bouncy Castle and System.Security.Cryptography.Xml | CMS/S/MIME/RFC 3161/X.509/XML DSig orchestration behind one typed provider explicitly supplied to Word, PDF, or Email |
| Optional ChartForgeX bridge | ChartForgeX | Vector-first visual artifact conversion, OfficeDrawing fidelity reports, and Word, Excel, PowerPoint, and PDF placement |
| Visio | System.IO.Packaging | VSDX/VSTX/VSSX and macro-enabled package model, bounded legacy binary import, diagram builders, editing, validation, topology, and PNG/JPEG/TIFF/SVG/WebP export |
| Reader.Yaml | YamlDotNet | Reader projection, chunking, limits, locations, and diagnostics |
| MarkdownRenderer.Wpf | Microsoft WebView2 | Rendering shell, presets, plug-in model, and WPF host contract |
| Optional document AI | OfficeIMO.AI and IntelligenceX adapter | Read-only questions, summaries, field extraction and proposed structure with bounded source evidence; .NET 10 and caller-selected model execution |
| Optional OCR providers | A caller-supplied executable or an installed Tesseract CLI | Neutral request/result/geometry contracts, bounded provider execution, and opt-in Reader/PDF integrations |
| Google Workspace packages | System.Text.Json and platform HTTP/cryptography | Credentials abstraction, request/retry logic, Drive placement, translation plans, and reports; no Google client SDK |
| Converter packages not listed above | Only the OfficeIMO format packages they connect | Feature mapping, limits, loss reports, and destination APIs |
| Surface | Current repository coverage |
|---|---|
| Modern Office authoring/editing | .docx, .xlsx, .pptx, .vsdx, .vstx, .vssx, .vsdm, .vstm, .vssm |
| First-party legacy binary support | Word 97–2003 .doc, Excel BIFF8 .xls, PowerPoint 97–2003 .ppt/.pot/.pps |
| First-party Apple iWork support | Modern IWA-based .pages, .numbers, and .key read/inspect plus editable or visual-fallback projection; bounded template-free Keynote text/image/table slides, Pages body documents and Numbers scalar-table spreadsheets |
| First-party offline OneNote support | Desktop/FSSHTTP .one, .onetoc2, .onepkg |
| Managed PNG/JPEG/TIFF/WebP/SVG document export | Drawing; Word, Excel, PowerPoint, HTML, OneNote, Visio, and PDF; HTML-backed email and EPUB; ODT/ODS/ODP through their Office adapters |
The checkboxes describe the exact level of support: authoring, editing, reading, preserving, inspecting, converting, or exporting. A checked inspection or preservation item is not presented as full authoring support.
OfficeIMO Studio puts the OfficeIMO engines in an app: read, search, mark up and fill PDFs, organize pages, make scans searchable, convert Office documents to PDF, and protect and sign the result. Documents are processed on your own device; connecting the document assistant to a model is optional.
The feature table on the Studio page shows what Studio does on each system and what is planned.
The OfficeIMO command-line tool runs the same conversions, extraction and workflows from scripts, and serves them to AI agents over MCP.
Claude Code, Codex, VS Code with GitHub Copilot, Cursor and other MCP clients use OfficeIMO to inspect, search, fetch and convert local Word, Excel, PowerPoint, PDF and mail files, and to make separate PDF outputs. The OfficeIMO Document Tools plugin adds two Agent Skills and the MCP server, which runs on your computer and opens only the folders you allow:
claude plugin marketplace add EvotecIT/OfficeIMO
codex plugin marketplace add EvotecIT/OfficeIMO --ref master --sparse .agents/plugins
The AI agents page has one-click installation for VS Code and Cursor, the configuration for other clients, every tool the server provides, and the directories that list OfficeIMO.
Every checked item below is implemented today. Detailed behavior, examples, and fidelity boundaries live in each project README.
Save, SaveAsync, SaveCopy, ToBytes, and ToStream lifecycle contracts used across formatsDependency footprint: zero third-party runtime dependencies.
Dependency footprint: only OfficeIMO.Core; extraction does not execute installers or custom actions. Cabinet sets, external MSI payloads, and action-dependent installation layouts are unsupported; see the support matrix.
Index.zip, Snappy-framed IWA, ArchiveInfo, MessageInfo, and protobuf-envelope readingOfficeIMO.Word.IWork, OfficeIMO.Excel.IWork, and OfficeIMO.PowerPoint.IWork adapters with editable reconstruction versus visual fallback reportsDependency footprint: only OfficeIMO.Core; the package and IWA readers are first-party implementations. Word, Excel, and PowerPoint remain independent unless an iWork adapter is installed explicitly.
DbDataReaderDependency footprint: OfficeIMO.Core and Apache.Arrow; Excel and CSV remain independently usable.
RowMapper<T> configuration shared by Excel, CSV, and other DbDataReader sourcesDependency footprint: build-time Roslyn analyzer only; no generator assembly is deployed with the application.
IOfficeTextShapingProvider contractDependency footprint: OfficeIMO.Core, HarfBuzzSharp, and its platform-native runtime assets.
OfficeDrawing scenesDependency footprint: only OfficeIMO.Core and CodeGlyphX; both core packages remain independently usable.
VisualArtifact to reusable SVG and OfficeDrawing representationsDependency footprint: ChartForgeX and the OfficeIMO Word, Excel, PowerPoint, PDF, Visio, and Core packages. Existing format packages remain independently usable and do not depend on ChartForgeX.
Dependency footprint: ChartForgeX.Markup.Mermaid and OfficeIMO.MarkdownRenderer. The document and Markdown cores remain independently usable.
.docx documents.doc subset with loss preflightDependency footprint: Open XML SDK plus OfficeIMO.Core; legacy .doc support and image export are OfficeIMO implementations. Apple Pages import is opt-in through OfficeIMO.Word.IWork.
.xlsx workbooks.xls subset with loss preflightDataTable, DataSet, row, stream, and typed-model import/export with editable-row workflowsDependency footprint: Open XML SDK plus OfficeIMO.Core; legacy .xls support and image export are OfficeIMO implementations. Apple Numbers import is opt-in through OfficeIMO.Excel.IWork.
.pptx presentations.ppt, .pot, and .pps through a versioned capability contract and loss preflightDependency footprint: Open XML SDK plus OfficeIMO.Core; legacy binary support, composition, editing, charting, and managed image export are OfficeIMO implementations. Apple Keynote import is opt-in through OfficeIMO.PowerPoint.IWork.
OfficeIMO.Visio.Pdf, with explicit semantic-fallback diagnosticsDependency footprint: System.IO.Packaging plus OfficeIMO.Core; the VSDX model and renderers are first-party, while PDF conversion reuses the shared Reader/PDF projection.
Typed invoice and credit-note authoring, parsing, editing and bounded CII/UBL conversion. One decimal calculation owns quantities, adjustments, VAT and payable totals. Unsupported source data is reported before rewriting. The core has no external runtime dependencies.
OfficeIMO.Invoicing.Validation adds
hash-pinned XSD and Schematron releases for all five Factur-X 1.09.2 profiles,
EN 16931, XRechnung and UBL Peppol BIS, plus pinned independent corpus evidence.
Business-rule execution uses an explicitly configured local Java/Saxon runtime.
OfficeIMO.Invoicing.Pdf renders localized or
multilingual layouts and attaches the exact captured XML through PdfInvoiceDocument.
Native Polish FA(3) reading and bounded authoring keep national declarations
separate from EN totals, with an offline pinned-schema validator and official
fixtures. OfficeIMO.Invoicing.KSeF owns token
authentication, encrypted online submission, status and UPO retrieval. Submission
references, accepted status, receipt binding and receipt schema results remain
distinct.
Dependency footprint: only OfficeIMO.Core; no third-party PDF parser, writer, renderer, OCR, or cryptographic dependency. Install OfficeIMO.Pdf.Ocr only for scanned-page recognition and searchable output, and OfficeIMO.Security only for its built-in CMS/X.509/RFC 3161 adapter.
Dependency footprint: OfficeIMO.Invoicing and OfficeIMO.Pdf. Install this optional adapter only when combining the XML invoice engine with PDF generation.
IOcrEngine over bounded rendered PDF pages without a Reader or provider dependencyDependency footprint: only OfficeIMO.Ocr and OfficeIMO.Pdf; providers and native runtimes remain explicit application choices.
Dependency footprint: OfficeIMO.Core contracts plus BouncyCastle.Cryptography and System.Security.Cryptography.Xml; no dependency on Word, PDF, Email, or another format package. Format packages do not depend on Security.
| Format package | Security support without the provider | Optional provider-backed operations |
|---|---|---|
OfficeIMO.Word | OPC/VBA signature discovery, evidence reporting, and fail-safe mutation policy | OPC XML signature creation/validation and VBA CMS/trust/timestamp validation |
OfficeIMO.Pdf | Signature dictionaries, byte ranges, external-signer hooks, preservation and mutation policy | Built-in CMS signing, X.509 validation, and RFC 3161 processing |
OfficeIMO.Email | MIME parsing, S/MIME carrier discovery, and protected-source retention | CMS signing, encryption, verification, decryption, and sign-then-encrypt for RFC 5322/MIME output |
OfficeIMO.Excel | OPC/VBA signature inspection and fail-safe mutation policy | OPC/VBA signature creation, validation, and trust evaluation |
OfficeIMO.PowerPoint | OPC, legacy, and VBA signature inspection plus fail-safe mutation policy | OPC/VBA signature creation, validation, and trust evaluation |
OfficeIMO.Visio | OPC signature inspection plus fail-safe mutation policy | OPC signature creation and validation |
OfficeIMO.OpenDocument | First-party password encryption/decryption, signature discovery, and fail-safe mutation policy | Bounded XML package-manifest signature creation and validation |
OfficeIMO.Epub | IDPF/Adobe font deobfuscation, signature discovery, and diagnostics | Bounded XML package-manifest signature creation and validation |
Install OfficeIMO.Security only in applications that use a provider-backed operation. Its cryptographic dependencies
therefore do not change the restore graph, trimming roots, or NativeAOT surface of ordinary format consumers.
Dependency footprint: only OfficeIMO.Core; no OpenDocument SDK and no LibreOffice runtime.
Native Publisher publication recovery into positioned pages, styled text stories,
table cells and embedded image assets, with SVG export and explicit fidelity
reports. OfficeIMO.Publisher.Pdf adds multi-page
PDF conversion through the shared drawing and PDF engines. The
support contract identifies profile and rendering
limits. The reader references only OfficeIMO.Core and does not require Publisher.
The Reader adapter retains complete stories,
physical page inventory and image descriptors for semantic ingestion.
Compiled HTML Help reading with exact entry extraction, topics, embedded resources, hierarchical contents, and the keyword index. Optional Markdown, EPUB, and PDF adapters reuse the existing conversion engines and expose fidelity reports. Reader ingestion retains archive hashes and topic citations. See supported profiles for ITSF/LZX coverage and export limits. Loading is inert and needs no Windows help viewer.
Managed DjVu scanned-book reading, stored UTF-8 text and word geometry, bounded page rendering, and source navigation. OfficeIMO.DjVu.Pdf adds searchable scanned-page PDFs and explicit OCR for missing text; OfficeIMO.Reader.DjVu projects the native document into Reader. See the codec and independent qualification contract.
Portable XPS/OpenXPS package reading, native page editing, and writing, with
embedded fonts, paths, images, and explicit conversion diagnostics. SVG and raster
export reuse the shared drawing engine; OfficeIMO.Xps.Pdf
adds vector PDF export. Rendering and preservation boundaries
are documented separately. OfficeIMO.Reader.Xps
adds bounded Unicode, logical-order and page ingestion. The core package references
only OfficeIMO.Core.
Dependency footprint: System.Text.Encoding.CodePages plus OfficeIMO.Core; no third-party RTF parser.
Dependency footprint: only OfficeIMO.Core; Markdown parsing and writing are first-party.
Dependency footprint: OfficeIMO Markdown, Markdown.Html, and HTML plus System.Text.Json on compatibility targets; no Atlassian SDK.
HtmlConversionDocument with DOM, base-URI, media, resource, and URL-policy ownershipDependency footprint: OfficeIMO.Core, AngleSharp, and AngleSharp.Css. Email, RTF, MHTML, and PDF are not part of the base HTML restore graph.
OfficeIMO.Html conversion namespaces retained while package ownership becomes explicitDependency footprint: OfficeIMO.Core, OfficeIMO.Html, and OfficeIMO.Rtf.
Dependency footprint: OfficeIMO.Core, OfficeIMO.Html, and OfficeIMO.Email for MIME parsing.
OfficeIMO.Email.Image and OfficeIMO.Reader.EmailDependency footprint: OfficeIMO.Email, OfficeIMO.Html, and OfficeIMO.Html.Rtf; the base Email package remains HTML-free.
Dependency footprint: OfficeIMO.Core, OfficeIMO.Email, OfficeIMO.Email.Html, and OfficeIMO.Html.
Dependency footprint: OfficeIMO.Core, OfficeIMO.Mhtml, OfficeIMO.Html.Pdf, and OfficeIMO.Pdf.
Dependency footprint: only OfficeIMO.Core; no Asciidoctor process or parser package.
Dependency footprint: only OfficeIMO.Core; no TeX runtime, compiler, or parser dependency.
Dependency footprint: System.Text.Json and System.Text.Encoding.CodePages on compatibility targets; no dependency on another OfficeIMO package, Word, Open XML, TeX, EndNote, rendering, or network clients.
Dependency footprint: only OfficeIMO.Core; no external parser or runtime dependency.
OfficeIMO.WorkflowsNative producer profiles, opaque-record preservation, scheduling, legacy formats, and rendering have separate operation boundaries.
Dependency footprint: only the matching coordinated OfficeIMO.Core release; no COM, external parser, or network dependency in file operations.
Dependency footprint: only OfficeIMO.Core; external schemas are identified but not downloaded at runtime.
#Fields: support, static metadata columns, row-length policy, and custom date formatsDataTable, IDataReader/DbDataReader, typed-reader, SQL/bulk-copy-shaped, reusable-row, field-span, and trusted-text pathsThis listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.
OfficeIMO Document Tools works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.