Skip to content

CLI Overview

fialr uses a custom help renderer that bypasses argparse’s default display. Help screens follow gh/cargo/stripe conventions: grouped commands, aligned columns, branded color output using the Bronze/Ash palette.

Run fialr with no arguments to see the main help screen. Run fialr <command> --help for command-specific usage.

Commands are organized into three groups.

CommandDescription
organizeFull pipeline: scan, classify, plan, execute
scanInventory a directory (read-only)
classifyClassify files by sensitivity and category
planGenerate a reorganization plan (dry-run)
executeExecute a reviewed plan
CommandDescription
dedupFind and stage duplicate files
enrichRun enrichment pipeline on files
validateVerify file integrity against database
statusShow database stats and recent jobs
CommandDescription
hashCompute BLAKE3 and SHA256 for files
exportGenerate sidecar metadata files
configShow or validate configuration

These flags apply to every command.

FlagDescription
--config PATHPath to fialr.toml config file
--db PATHPath to SQLite database
-v, --verboseShow debug logs (JSON to stderr)
-q, --quietSuppress status output (errors still shown)
--no-colorDisable colored output
--versionPrint version and exit

All user-facing output goes to stderr via the Output class. Stdout is reserved for machine-readable data: JSON manifests, plan CSVs, hash values.

This separation means you can pipe fialr output to other tools without status messages contaminating the data stream:

Terminal window
fialr hash contract.pdf --json | jq .blake3

When --quiet is set, status and field output is suppressed. Errors and warnings are always shown regardless of quiet mode.

Color output uses ANSI 256-color codes from the brand palette:

  • Bronze (#A89060) — status labels and highlights
  • Ash (#68737F) — paths and secondary information
  • Red — errors
  • Yellow — warnings

Color detection follows this priority:

  1. FORCE_COLOR environment variable — always enable
  2. NO_COLOR environment variable — always disable (per no-color.org)
  3. TERM=dumb — disable
  4. TTY detection — enable if the stream is a terminal

The --no-color flag is equivalent to setting NO_COLOR=1.


CodeMeaning
0Success
1Error (operation failed)
2Usage error (invalid arguments)
130Interrupted (Ctrl-C)

Every error includes context: the file path, the operation attempted, and the job UUID when applicable. An error message without context is considered a bug.

error: Hash mismatch for ~/Documents/contract.pdf: expected a1b2c3..., got d4e5f6..., job=7f8a9b...

Warnings use the same pattern but do not cause a non-zero exit code.