Calibrate Pro

Characterized and Measured Display Calibration

Detect a display, preview an exact plan, explicitly confirm supported changes,
and keep measured observations separate from estimates.

Download View on GitHub

Key Features

58-Panel Database

Nominal characterizations for OLED, QD-OLED, IPS, and VA panels. Sensorless results are estimates, not measurements of the attached unit.

DDC/CI Hardware Control

Supported brightness, contrast, RGB gain, and RGB black-level changes are bounded, previewed, and explicitly confirmed before a write.

3D LUT Generation

Generate correction LUT assets for supported consumers. Applying an asset is a separate capability-checked and confirmed operation.

ICC Profile Export

Export ICC v4 profiles with per-channel TRCs and evidence-labelled characterization or instrument inputs. Installation is never automatic.

Sensorless Mode

Build an estimated plan from panel characterization when no instrument is attached. Sensorless results are labelled estimated and are never presented as measurements of the attached unit.

Measured Mode

With a supported colorimeter attached, read the selected display over four 17-step ramps and generate from that reading. A run is refused while the display is loading a correction, so the numbers describe the panel rather than the panel plus somebody else's calibration.

Read-Only Monitoring

Tray, guard, and startup surfaces monitor or report only. Automatic reapply is disabled; a fresh plan and confirmation are required.

How It Works

1

Detect

Identify connected displays and match them to the panel database. A display the database does not name is calibrated from the primaries it declares about itself, and the result says it came from a declaration rather than a reading.

2

Choose

Select a calibration target. The characterized method is the one 2.0 offers; the measured method is present and disabled, and the window says why.

3

Preview and Confirm

Review the immutable plan and explicitly confirm it before any supported write.

4

Verify and Report

Read the display's distance from the target before and after the correction, so the pair says what changed. Every result carries its evidence: measured, estimated, simulated, replayed, or Not measured.

System Requirements

Quick Start

Install

pip install ".[all]"

Launch GUI

calibrate-pro gui

Read-Only CLI

calibrate-pro doctor        # Installation and capability diagnostics
calibrate-pro doctor --json # Stable machine-readable diagnostics
calibrate-pro profiles out  # Re-check the seal on published bundles

The packaged binary answers these. list-targets, list-panels, info, and hdr-status exist only in the developer wheel, and the binary refuses each with exit code 2.

Headless Session

calibrate-pro detect        # Displays observed, with characterization sources
calibrate-pro status        # Actions this session can run, and why the rest cannot
calibrate-pro verify --target srgb_web
                            # Sealed plan and its predicted accuracy
calibrate-pro diagnostics   # What a support bundle would carry, with digests

The headless session runs the same actions the window runs. It reads, it plans, and it publishes sealed bundles into a directory you name. It does not change display state. Accuracy figures from a sensorless plan are estimated, and the command prints that beneath them.

Legacy action names such as auto, calibrate, and restore are proposal-only in 2.0. They return exit code 2 without changing display state and direct you to the confirmed GUI workflow.