Convert 1 command
Convert one file; the input and output extensions select a route from the shared conversion catalog.
officeimo convert <input> [output] [--output <file>] [--force] [--max-input-bytes <bytes>] [--max-output-bytes <bytes>] [--max-characters-in-part <characters>] [--text-encoding <name>] [--tab-size 1..32] [--allow-legacy-loss] [--diagram-layers screen|print] [--require-no-loss] [--text-only]officeimo convert <data-input> <data-output> [--select <path>] [--columns <path,...>] [--root-name <name>] [--sheet <name>] [--range <A1:B2>] [--require-no-loss] [--force]officeimo convert <input.pages|input.numbers|input.key> [output.docx|output.xlsx|output.pptx|output.pdf] [--iwork-mode auto|editable|visual] [--allow-partial] [--allow-incomplete-preview] [--normalize-worksheet-names] [--max-input-bytes <bytes>] [--max-output-bytes <bytes>] [--force]officeimo convert <input> <output.md|output.markdown|output.json> [--assets <directory>] [--max-input-bytes <bytes>] [--force]
Key options
--output <file>Destination file; the default is a sibling PDF.--forceReplace an existing destination.--require-no-lossFail instead of publishing when the route reports source or output fidelity loss.--max-input-bytes <bytes>Refuse inputs larger than this many bytes.--max-output-bytes <bytes>Refuse to publish outputs larger than this many bytes.--assets <directory>Directory for images extracted during Markdown or JSON output.--select <path>Path to the rows to convert in a structured-data source, such as data.items.--iwork-mode auto|editable|visualHow Pages, Numbers and Keynote documents are rebuilt: auto, editable or visual.
Writes csv, docx, epub, html, json, jsonl, md, odp, ods, odt, pdf, pptx, toml, tsv, xlsx, xml, yamlPrints path
Convert guide →
Read 1 command
Extract one document as Markdown or JSON; a shortcut for 'reader read'.
Shortcut for officeimo reader read
officeimo read <path|-> [options]officeimo extract <path|-> [options]
Writes json, mdPrints markdown, json
Read guide →
Inspect 1 command
Return a compact, bounded JSON summary of one document; a shortcut for 'agent inspect'.
Shortcut for officeimo agent inspect
officeimo inspect <path> [options]
Prints json
Inspect guide →
HTML 3 commands
Render HTML, MHTML and ZIP site bundles to PDF or to page images.
officeimo html convert <input.html|input.mhtml|input.zip|-> [--input-format html|mhtml|site-bundle] [--output <file|->] [--stylesheet <file.css>] [--base-uri <absolute-uri>] [--font-family <name> --font-regular <file.ttf>] [--font-bold <file.ttf>] [--font-italic <file.ttf>] [--font-bold-italic <file.ttf>] [--max-input-bytes <bytes>] [--max-pages <count>] [--profile print-paged|screen-media-paged|screen-snapshot-paged] [--pages all|<page>|<first-last>|stitched] [--viewport-width <css-px>] [--viewport-height <css-px>] [--scale <factor>] [--entry-path <archive-path>] [--max-bundle-entry-bytes <bytes>] [--max-bundle-decoded-bytes <bytes>] [--max-bundle-entries <count>] [--pdf-ua-language <tag>] [--force]- Render an HTML page, MHTML archive or ZIP site bundle to PDF.
officeimo html render <input.html|input.mhtml|input.zip|-> [--input-format html|mhtml|site-bundle] [--output <archive.zip|->] [--profile screen-viewport|screen-full-page|print-paged|screen-media-paged|screen-snapshot-paged|continuous-vector] [--encoder png|svg] [--pages all|<page>|<first-last>|stitched] [--viewport-width <css-px>] [--viewport-height <css-px>] [--scale <factor>] [--stylesheet <file.css>] [--base-uri <absolute-uri>] [--font-family <name> --font-regular <file.ttf>] [--font-bold <file.ttf>] [--font-italic <file.ttf>] [--font-bold-italic <file.ttf>] [--max-input-bytes <bytes>] [--max-pages <count>] [--max-archive-bytes <bytes>] [--entry-path <archive-path>] [--max-bundle-entry-bytes <bytes>] [--max-bundle-decoded-bytes <bytes>] [--max-bundle-entries <count>] [--max-manifest-bytes <bytes>] [--force]- Render pages to PNG or SVG images packaged in a ZIP archive with a manifest.
officeimo html capabilities [--format text|json]- List the HTML engine's supported features and profiles.
Key options
--profile print-paged|screen-media-paged|screen-snapshot-pagedRendering intent, such as print-paged or screen-full-page.--pages all|<page>|<first-last>|stitchedPages to produce: all, one page, a range or stitched.--stylesheet <file.css>Additional CSS file applied to the document.--base-uri <absolute-uri>Absolute URI used to resolve relative links.--font-family <name>Name a font family and register its faces with --font-regular and related options.--max-pages <count>Refuse documents that would produce more pages than this.--pdf-ua-language <tag>Language tag for PDF/UA groundwork.
Writes pdf, png, svgPrints text, json
HTML guide →
Reader 3 commands
Extract documents or whole folders as Markdown or JSON for search, review and language models.
officeimo reader read <path|-> [--name <source-name>] [--format markdown|json] [--output <file|->] [--assets <directory>] [--max-input-bytes <bytes>] [--force]- Extract one document, or standard input, as Markdown or JSON.
officeimo reader folder <path> --output <directory> [--format markdown|json] [--assets <directory>] [--concurrency <1-64>] [--max-files <count>] [--max-total-bytes <bytes>] [--max-input-bytes <bytes>] [--no-recursive] [--force]- Extract every supported document under a folder into an output folder.
officeimo reader capabilities [--format text|json]- List the formats the reader handles.
Key options
--format markdown|jsonOutput format: markdown or json.--output <file|->Write to a file, or to a directory for folder extraction.--assets <directory>Directory for extracted images.--name <source-name>Source name used to choose a handler when reading standard input.--concurrency <1-64>Number of documents extracted at once in folder mode.--max-files <count>Stop folder extraction after this many files.
Writes json, mdPrints markdown, json, text
Reader guide →
Markup 5 commands
Parse, validate and preview OfficeIMO Markup, emit C# or PowerShell, and export Word, Excel or PowerPoint files.
officeimo markup parse <file|-> [--profile presentation|document|workbook|common]- Parse markup and print the document model with diagnostics as JSON.
officeimo markup validate <file|-> [--profile presentation|document|workbook|common]- Validate markup; exit code 1 when it has errors.
officeimo markup preview <file|-> [--profile presentation|document|workbook|common]- Print the parsed document model as JSON for previews.
officeimo markup emit <file|-> --target csharp|powershell [--output <file>] [--force]- Generate C# or PowerShell code that builds the document.
officeimo markup export <file|-> --target pptx --output <file.pptx> [--force]- Write the markup as a PPTX, XLSX or DOCX file.
Key options
--profile presentation|document|workbook|commonMarkup profile: presentation, document, workbook or common.--target csharp|powershellCode or file target for emit and export.--output <file>Destination file for emit or export.--stdinRead markup from standard input.--max-input-bytes <bytes>Bound input size (default: 67108864).--no-safe-preflightDisable Excel safe preflight.--no-defined-name-repairDisable Excel defined-name repair.--no-openxml-validationDisable Excel Open XML validation.--mermaid-renderer <mmdc>Configure the Mermaid renderer for PowerPoint.--no-mermaidDisable Mermaid rendering.--forceReplace an existing output file.
Writes cs, docx, pptx, ps1, xlsxPrints json, text
Markup guide →
Tabular 3 commands
List worksheets, report column schemas and convert between CSV, TSV and workbook formats.
officeimo tabular sheets <workbook>- List the worksheets in a workbook.
officeimo tabular schema <workbook|csv> [--sheet <name>|--sheet-index <index>] [--delimiter <character|\t>] [--no-header]- Report column names and inferred types for a worksheet or CSV file.
officeimo tabular convert <input> <output> [--sheet <name>|--sheet-index <index>] [--delimiter <character|\t>] [--output-delimiter <character|\t>] [--no-header] [--force]- Convert between CSV, TSV and workbook formats.
Key options
--sheet <name>Worksheet to read by name.--sheet-index <index>Worksheet to read by position.--delimiter <character|\t>Delimiter of delimited input.--output-delimiter <character|\t>Delimiter of delimited output.--no-headerTreat the first row as data.
Writes csv, tsv, xls, xlsb, xlsxPrints text
Tabular guide →
Workflow 12 commands
Batch conversion with checkpoints, saved jobs, page images, assembly, comparison, print plans and printing.
officeimo workflow compare <expected.pdf> <actual.pdf> --output <report.html> [--expected-pages <selection>] [--actual-pages <selection>] [--force] [--password-env <name>] [--comparison-password-env <name>] [--format json|text]- Compare two PDFs and write an HTML difference report.
officeimo workflow optimize-images <input.docx|input.doc>... [--analyze] [--output <file> | --output-directory <folder>] [--output-format docx|doc|pdf] [--mode downsample|recompress|both] [--dpi <36-1200>] [--quality <1-100>] [--force] [--format json|text]- Analyze or reduce the images in Word documents.
officeimo workflow export-pages <input.pdf> --output <folder> [--pages <selection>] [--image-format png|jpeg|webp|tiff|svg] [--dpi <36-600>] [--max-dimension <pixels>] [--force] [--format json|text]- Render PDF pages to PNG, JPEG, WebP, TIFF or SVG images.
officeimo workflow assemble <source>... --output <output.pdf> [--no-recursive] [--force] [--format json|text]- Combine documents, folders and ZIP archives into one PDF.
officeimo workflow print-plan <input.pdf> [--pages <selection>] [--paper A4|Letter|Legal|A3] [--password-env <name>] [--orientation auto|portrait|landscape] [--pages-per-sheet 1|2|4|6|9] [--scale fit|actual|fill|custom] [--custom-scale <percent>] [--margin <points>] [--margin-left <points>] [--margin-top <points>] [--margin-right <points>] [--margin-bottom <points>] [--alignment center|top-left|top|top-right|left|right|bottom-left|bottom|bottom-right] [--page-subset all|odd|even] [--color color|grayscale] [--format json|text]- Plan how a PDF lays out on printed sheets without printing.
officeimo workflow batch [<source>...] --output <folder> [--input-directory <folder>] [--target pdf|docx|xlsx|pptx|html|json|jsonl|yaml|toml|xml|csv|tsv] [--checkpoint <folder>] [--route <id>] [--source-extension <extension>] [--no-recursive] [--concurrency 1..32] [--conflict fail|rename|replace] [--retry-failed] [--text-encoding <name>] [--tab-size 1..32] [--allow-legacy-loss] [--pages <selection>] [--profile faithful|lightweight|printready|textonly] [--maximum-files <count>] [--maximum-input-bytes <bytes>] [--maximum-output-bytes <bytes>] [--maximum-xml-characters-in-part <characters>] [--diagram-layers screen|print] [--require-no-loss] [--source-password-env <name>] [--pdf-password-env <name>] [--allow-empty] [--verbose] [--format json|ndjson] [--save-job <new-job.json>]- Convert many files with per-file results, retries and optional checkpoints.
officeimo workflow job plan <job.json>- Show what a saved job would convert.
officeimo workflow job run <job.json> [--retry-failed] [--allow-empty] [--verbose] [--format json|ndjson] [--report <new-report.json>]- Run a saved job.
officeimo workflow job report <run-report.json>- Inspect a saved run report.
officeimo workflow printers [--capabilities <printer> | --paper-sources <printer>] [--format json|text]- List printers, their capabilities or their paper sources.
officeimo workflow print <document> --printer <queue|ipp://uri> [print-plan options; --paper defaults to the printer's media] [--copies 1..100] [--duplex default|off|long|short] [--paper-source <id>] [--dpi 72..600] [--raster-grayscale] [--output-file <new-local-path>] [--format json|text]- Print a document to a queue or an IPP printer.
officeimo workflow print-job status|wait|cancel --printer <queue|ipp://uri> --job <id> [--timeout <seconds>] [--format json|text]- Check, wait for or cancel a submitted print job.
Key options
--output <report.html>Destination file or folder.--input-directory <folder>Folder to convert in a batch.--target pdf|docx|xlsx|pptx|html|json|jsonl|yaml|toml|xml|csv|tsvBatch target format; PDF by default.--checkpoint <folder>Folder that records verified outputs so a rerun resumes where it stopped.--conflict fail|rename|replaceWhat a batch does with an existing output: fail, rename or replace.--retry-failedRetry items that failed in an earlier checkpointed run.--concurrency 1..32Number of files converted at once.--pages <selection>Page selection such as 1-3,last.--save-job <new-job.json>Write the batch settings to a new job file without converting.--format json|textResult format: json, ndjson for batches, or text for single operations.--forceReplace an existing output.
Writes csv, docx, html, jpeg, json, jsonl, pdf, png, pptx, svg, tiff, toml, tsv, webp, xlsx, xml, yamlPrints json, ndjson, text
Workflow guide →
Invoice 6 commands
Inspect, validate, edit, convert and render CII and UBL electronic invoices, including Factur-X hybrid PDFs.
officeimo invoice inspect|validate <input.xml> [options]- Read an invoice into the model; validate returns exit code 1 when it has errors.
officeimo invoice convert|render|hybrid <input.xml> --output <path> <target options> [options]- Convert to another syntax or profile, render a presentation PDF, or embed the XML in a hybrid PDF.
officeimo invoice batch inspect|validate <input.xml>... [options]- Inspect or validate many invoices with one result per item.
officeimo invoice batch convert|render|hybrid <input.xml>... --output-directory <path> <target options> [options]- Convert or render many invoices into an output directory.
officeimo invoice edit <input.xml> --output <path> <field replacements> [options]- Replace selected header fields while keeping the rest of the XML.
officeimo invoice batch edit <input.xml>... --output-directory <path> <field replacements> [options]- Apply the same field replacements to many invoices.
Key options
--release En16931_1_3_16|FacturX_1_09_2_Zugferd_2_5_2|XRechnung_3_0_2_2026_08_31|PeppolBis_3_0_21Pinned standards release of the target, such as En16931_1_3_16.--syntax Cii|UblTarget syntax: Cii or Ubl.--profile Minimum|BasicWithoutLines|Basic|En16931|Extended|XRechnung|PeppolBisTarget profile, such as En16931 or XRechnung.--output <path>Destination file for a single invoice.--output-directory <path>Destination folder for a batch.--rule-bundle <pinned-xrechnung.zip>Pinned XRechnung rule bundle for standards validation.--language <en-US,pl-PL,...>Languages of the rendered presentation.--allow-profile-lossAllow documented lower-profile reductions, reported as warnings--columns <Item,Quantity,Unit,NetPrice,Vat,NetAmount>Two to eight distinct columns including Item and NetAmount
Writes pdf, xmlPrints json
Invoice guide →
PDF 13 commands
Extract pages, split, decrypt, flatten, optimize, sanitize, OCR, convert to PDF/A and redact PDFs into separate copies.
officeimo pdf extract <input.pdf> --pages <selection> --output <copy.pdf> [--force]- Copy selected pages into a new PDF.
officeimo pdf split <input.pdf> --output <new-folder> [--pages-per-document <count>] [--force]- Split a PDF into parts of a fixed page count.
officeimo pdf decrypt <input.pdf> --password-env <owner-password-variable> --output <copy.pdf> [--force]- Write an unencrypted copy using the owner password from an environment variable.
officeimo pdf flatten <input.pdf> --output <copy.pdf> --acknowledge-raster-output [--pages <selection>] [--dpi 36..600] [--force]- Replace pages with their rendered appearance.
officeimo pdf ocr <input.pdf> --output <copy.pdf> --ocr-provider <id> --ocr-provider-assembly <provider.dll> [--ocr-language <language>] [--ocr-option <key=value>] [--ocr-min-confidence 0..1] [--pages <selection>] [--dpi 36..600] [--force]- Add searchable text from an OCR provider.
officeimo pdf optimize|sanitize <input.pdf> --output <copy.pdf> [--force]- Write a smaller copy, or a copy without active content.
officeimo pdf convert-to-pdfa <input.pdf> --output <copy.pdf> [--profile 2b|2u|3b|3u|4|4f] [--attachments remove|refuse] [--font <family>[:bold|italic|bold-italic]=<font.ttf>]... [--font-substitution installed-fonts|none] [--output-intent <profile.icc> --output-condition-identifier <id>] [--password-env <name>] [--force]- Write a PDF/A copy, or refuse and report every violation.
officeimo pdf providers [--ocr-provider-assembly <provider.dll>]- List the OCR providers that are loaded.
officeimo pdf redact providers [--ocr-provider-assembly <provider.dll>]- List the OCR providers available to redaction.
officeimo pdf redact batch --request <batch.json> [--force]- Run several redactions from one request file.
officeimo pdf redact plan <input.pdf> --recipe <recipe.json> --evidence <plan.json>- Find redaction candidates and write a reviewable plan.
officeimo pdf redact apply <input.pdf> --recipe <recipe.json> --decisions <decisions.json> --output <output.pdf> --evidence <evidence.json> [--force]- Apply reviewed redaction decisions to a new PDF.
officeimo pdf redact verify <input.pdf> --recipe <recipe.json> --decisions <decisions.json> --output <existing-output.pdf> --evidence <evidence.json> [--expected-output-sha256 <hash>] [--force]- Check that an existing redacted PDF matches the reviewed decisions.
Key options
--output <copy.pdf>Destination file or folder; the source is never changed.--pages <selection>Page selection such as 1-3,last, odd, even or all,!2.--password-env <owner-password-variable>Name of the environment variable that holds the owner password.--recipe <recipe.json>Redaction recipe JSON.--decisions <decisions.json>Reviewed redaction decisions JSON.--evidence <plan.json>Path for the redaction evidence JSON.--ocr-provider <id>OCR provider id.--ocr-provider-assembly <provider.dll>Trusted assembly that contains an OCR provider.--maximum-pages 1..10000Page limit; 100 by default.--forceReplace an existing output.
Writes json, pdfPrints json
PDF guide →
Provenance 9 commands
Inspect, assess and remove Content Credentials (C2PA) and AI-source labels, and audit files for suspicious Unicode in CI.
officeimo provenance doctor --c2patool <trusted-executable> [--format json|text]- Check that a host-supplied c2patool executable runs.
officeimo provenance capabilities [--format json|text]- List the formats and provenance carriers the tool understands.
officeimo provenance inspect <input> [--no-embedded] [--max-input-bytes <bytes>] [--format json|text]- Report the provenance carriers in one file.
officeimo provenance assess <input> [--no-embedded] [--no-text-integrity] [--max-input-bytes <bytes>] [--format json|text] [--c2patool <trusted-executable>] [--trust-anchors <pem>] [--allowed-list <pem>] [--verification-timeout-seconds <1-300>]- Inspect and verify provenance, optionally with c2patool and trust anchors.
officeimo provenance remove <input> [--output <path>] [--force] [--keep-c2pa] [--keep-external-c2pa] [--keep-ai-source] [--remove-invalidated-signatures] [--no-embedded] [--max-input-bytes <bytes>] [--max-output-bytes <bytes>] [--format json|text]- Write a copy without selected provenance carriers.
officeimo provenance audit <file-or-directory>... [--include <wildcard>] [--exclude <wildcard>] [--no-recursive] [--max-items <1-10000>] [--format json|text|ndjson|sarif]- Report provenance and dangerous Unicode across files and folders without changing them.
officeimo provenance check <file-or-directory>... [--fail-on dangerous-text|carriers|any] [audit options]- Audit and return exit code 1 when the selected findings are present.
officeimo provenance batch inspect|assess <input>... [--max-items <1-10000>] [options]- Inspect or assess many files with one result per item.
officeimo provenance batch remove <input>... --output-directory <path> [--max-items <1-10000>] [options]- Remove provenance from many files into an output directory.
Key options
--format json|textResult format; JSON by default.--fail-on dangerous-text|carriers|anyFindings that fail check: dangerous-text, carriers or any.--include <wildcard>Wildcard of files to include in an audit.--exclude <wildcard>Wildcard of files to skip in an audit.--c2patool <trusted-executable>Trusted c2patool executable used for verification.--output <path>Destination file for remove.--forceReplace an existing output.
Prints json, text, ndjson, sarif
Provenance guide →
Hidden data 2 commands
Find and remove metadata, comments, tracked changes, hidden content and active content before sharing a file.
officeimo hidden-data inspect <input> [--format json|text]- List the hidden data a file carries without changing it.
officeimo hidden-data remove <input> [--output <path>] [--force] [--kinds <kind>[,<kind>...]] [--tracked-changes keep|accept|reject] [--keep-provenance c2pa,external,ai-source] [--anonymous-author <name>] [--remove-invalidated-signatures] [--format json|text]- Write a cleaned copy; the input is never changed.
Key options
--kinds <kind>What to remove: default, all, or named kinds such as provenance or tracked-changes.--tracked-changes keep|accept|rejectKeep, accept or reject tracked changes.--keep-provenance c2pa,external,ai-sourceProvenance carriers to keep when provenance is removed.--output <path>Destination file; the default is <input>.cleaned<ext>.--forceReplace an existing output.
Writes docx, epub, gif, jpeg, odp, ods, odt, pdf, png, pptx, tiff, vsdx, webp, xlsxPrints json, text
Hidden data guide →
Agent 7 commands
Inspect, search, fetch and convert documents and mailboxes with compact, bounded JSON results.
officeimo agent inspect <path> [--max-output-characters <512-64000>]- Summarize one document as compact JSON.
officeimo agent inspect-email <path> [--max-output-characters <512-64000>]- Summarize one message or mailbox as compact JSON.
officeimo agent search <path> [--query <text>] [--subject <text>] [--sender <text>] [--folder-id <id>] [--since <ISO-8601>] [--before <ISO-8601>] [--has-attachments <bool>] [--is-read <bool>] [--include-descendants] [--take <1-25>] [--cursor <n>] [--max-output-characters <512-64000>]- Search the messages of a mailbox by metadata.
officeimo agent fetch --source-id <id> --id <result-id> [--path <original-path>] [--cursor <n>] [--max-output-characters <512-64000>]- Fetch one result returned by inspect or search.
officeimo agent search-email <mailbox> --query <text> [--fields <names>] [--checkpoint <value>] [--take <1-25>] [--max-items-scanned <1-10000>] [--max-decoded-bytes <1-67108864>] [--max-searchable-characters <1-2000000>] [--max-output-characters <512-64000>] [mailbox filters as above]- Search the content of a mailbox's messages.
officeimo agent convert <path> --output <file> [--format markdown|json|docx|xlsx|pptx|pdf] [--force]- Convert a document to Markdown, JSON or an Office or PDF file.
officeimo agent capabilities [--extension <.ext>] [--operation create|read|edit|preserve|inspect|validate|remove|search|fetch|convert|export] [--cursor <n>] [--conversion-cursor <n>] [--max-output-characters <512-64000>]- List the operations available for each format.
Key options
--max-output-characters <512-64000>Upper bound on the size of the JSON result.--query <text>Text to search for.--take <1-25>Number of results per page.--cursor <n>Continue from a previous page of results.--source-id <id>Source returned by inspect or search, used by fetch.
Writes docx, json, md, pdf, pptx, xlsxPrints json
Agent guide →
MCP server 1 command
Serve OfficeIMO tools to MCP clients over standard input and output, limited to the folders in OFFICEIMO_MCP_ALLOWED_ROOTS.
officeimo mcp serve --stdio [--ocr-provider-assembly <trusted-provider.dll>] [--ocr-option <key=value>] [--pdf-password-env <admitted-variable>]- Start the MCP server on standard input and output.
Key options
--stdioUse standard input and output as the transport.--pdf-password-env <admitted-variable>Admit an environment variable that PDF tools may read a password from.--ocr-provider-assembly <trusted-provider.dll>Trusted OCR provider assembly loaded at startup.
Prints json
MCP server guide →