Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Documentation Search all OfficeIMO/

Install and Pin the OfficeIMO CLI

Edit on GitHub

Install officeimo as a global .NET tool or pin it per repository with a tool manifest, so scripts and CI jobs run the same version.

OfficeIMO.Tool is a .NET tool on NuGet. Installing it needs the .NET SDK; Microsoft Office is not required. The command it installs is officeimo.

Install globally

Use a global installation when officeimo should be available from any directory on your machine:

dotnet tool install --global OfficeIMO.Tool
officeimo --version
officeimo help

Update or remove it with the standard .NET tool commands:

dotnet tool update --global OfficeIMO.Tool
dotnet tool uninstall --global OfficeIMO.Tool

Add --version to install one exact release, for example dotnet tool install --global OfficeIMO.Tool --version 3.6.1. A build agent that should not change its global tools can install into a folder instead and run the tool from there:

dotnet tool install OfficeIMO.Tool --version 3.6.1 --tool-path .tools
.tools/officeimo --version

Pin it to a repository

For scripts and CI, I recommend a local tool manifest. The manifest records the exact package version, so every clone and build agent runs the same officeimo:

dotnet new tool-manifest
dotnet tool install OfficeIMO.Tool --version 3.6.1

Commit the manifest: dotnet-tools.json at the repository root with the .NET 10 SDK, or .config/dotnet-tools.json with earlier SDKs. On a fresh clone or build agent, restore the pinned version and run it through the SDK:

dotnet tool restore
dotnet tool run officeimo --version
dotnet officeimo help

dotnet officeimo is the SDK shorthand for dotnet tool run officeimo. Move the pin forward deliberately with dotnet tool update OfficeIMO.Tool, and commit the changed manifest with the scripts that depend on it.

A GitHub Actions step looks like this:

- uses: actions/setup-dotnet@v4
  with:
    dotnet-version: '10.0.x'
- run: dotnet tool restore
- run: dotnet officeimo convert docs/report.docx artifacts/report.pdf

Check what your version supports

The commands print their contracts from the installed version, which is the source to trust when scripts move between versions:

officeimo --version
officeimo convert --help
officeimo reader capabilities --format json
officeimo html capabilities --format json
officeimo provenance capabilities
officeimo help --format json

officeimo convert --help ends with the list of conversion routes the installed tool runs. officeimo help --format json describes every command, option and exit code as JSON. reader capabilities lists the extraction handlers and their extensions.

Optional components

The tool does not include an OCR engine or model. OCR commands load a provider assembly you supply with --ocr-provider-assembly; see PDF workflows. Invoice standards validation needs pinned rule artifacts and a Saxon runner you provide; see Invoices. Printing on macOS and Linux uses the system CUPS tools.

Next steps

Example source