CLI

@intactfile/cli repairs files locally from your terminal. Diagnosis is free and needs no sign-in; repair and batch need an active Business subscription. Requires Node ≥ 22.

npm install -g @intactfile/cli

Commands

CommandWhat it does
intactfile loginSign in with email + password (--link / --magic for email links).
intactfile statusShow your subscription plan and sign-in status.
intactfile licenseFetch or refresh the offline license and print its expiry (--refresh forces a refresh).
intactfile logoutForget the stored token on this machine.
intactfile diagnose <file>Free. Identify the file and what's wrong. Fully local.
intactfile repair <file>Business. Repair locally and write the result.
intactfile batch <files...>Business. Repair up to 100 files locally.

repair options

FlagPurpose
-o, --out <path>Output path (or directory, for archives).
-r, --reference <clip>Healthy reference clip/photo (missing-moov video, JPEG donor).
-p, --password <pw>Archive password (RAR/7z).

License

Repairs need an active Business subscription, enforced by a short-lived, signed license kept on your machine. Afterintactfile login, the CLI fetches and applies the license automatically the first time you repair — there's no extra step for normal use.

The license is valid for 30 days and works fullyoffline within that window. It re-fetches on its own as it nears expiry, and lapses naturally if your subscription ends. Runintactfile license to fetch or refresh it and print its expiry;intactfile license --refresh forces a refresh.

Examples

# diagnose (free)
intactfile diagnose corrupt.zip

# repair a truncated GoPro clip using a healthy reference
intactfile repair GX010042.mp4 --reference GX010041.mp4 --out fixed.mp4

# recover files from a broken archive into ./out
intactfile repair archive.rar --out ./out

# batch a folder of PDFs into ./repaired
intactfile batch invoices/*.pdf --outdir ./repaired

Honest results

Every repair prints an honest outcome — success,partial, or failed — with the damage class and byte counts. A repair that can't produce a usable result writes nothing.