Skip to main content
The CLI is one binary that generates, validates, and de-identifies test messages from a terminal. It follows the Unix convention (0 success, non-zero failure), so every command below drops into a CI pipeline as-is.
The free CLI (the community NuGet build) ships 12 commands: generate, validate, deident, data, artifacts, lookup, find, path, run, session, completions, and capabilities. conform, flock, loft, migrate, ai, diff, and config are delivered through the desktop apps. If you run only dotnet tool install and then type pidgeon conform, it won’t be there; run those from the CLI bundled with the desktop apps, or from the matching app panel.

Prerequisites

  • .NET 8 runtime or SDK for the dotnet tool install below
  • The public NuGet package is the cross-platform beta install path. The current GitHub release also includes a signed Windows ZIP.
1

Install the CLI

Verify the installation:
2

Generate your first message

Generate a synthetic HL7 ADT admission message:
Example output:
The standard is inferred from the message type: ADT^A01 is HL7 v2, Patient is FHIR R4. Generate multiple messages to a folder:
3

Validate a message

Example output:
Each issue includes expected/actual values, a fix suggestion, and a pidgeon lookup tip that opens the built-in standards reference. --mode strict checks against the published spec; --mode compatibility tolerates common real-world deviations.
4

De-identify real messages

If you have real messages to work with, de-identify them first:
All processing happens on your machine; nothing is uploaded.
5

Discover the rest

Help is built in at every level:

Running a conformance check

pidgeon conform probes a live FHIR endpoint against a published Implementation Guide (US Core and Da Vinci PAS 2.1 today) and returns a pass/fail with a non-zero CI exit code. It’s delivered through the desktop apps, not the free dotnet tool package, so run it from the CLI bundled with an app or from Post’s Conformance panel. See Get started with Conform.

Exit codes

The free CLI emits exactly two exit codes, suitable for CI gates and shell scripting: A minimal CI gate:

Next steps