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.
Command groups
Section titled “Command groups”Commands are organized into three groups.
Workflow commands
Section titled “Workflow commands”| Command | Description |
|---|---|
organize | Full pipeline: scan, classify, plan, execute |
scan | Inventory a directory (read-only) |
classify | Classify files by sensitivity and category |
plan | Generate a reorganization plan (dry-run) |
execute | Execute a reviewed plan |
Utilities
Section titled “Utilities”| Command | Description |
|---|---|
dedup | Find and stage duplicate files |
enrich | Run enrichment pipeline on files |
validate | Verify file integrity against database |
status | Show database stats and recent jobs |
| Command | Description |
|---|---|
hash | Compute BLAKE3 and SHA256 for files |
export | Generate sidecar metadata files |
config | Show or validate configuration |
Global flags
Section titled “Global flags”These flags apply to every command.
| Flag | Description |
|---|---|
--config PATH | Path to fialr.toml config file |
--db PATH | Path to SQLite database |
-v, --verbose | Show debug logs (JSON to stderr) |
-q, --quiet | Suppress status output (errors still shown) |
--no-color | Disable colored output |
--version | Print version and exit |
Output conventions
Section titled “Output conventions”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:
fialr hash contract.pdf --json | jq .blake3When --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:
FORCE_COLORenvironment variable — always enableNO_COLORenvironment variable — always disable (per no-color.org)TERM=dumb— disable- TTY detection — enable if the stream is a terminal
The --no-color flag is equivalent to setting NO_COLOR=1.
Exit codes
Section titled “Exit codes”| Code | Meaning |
|---|---|
0 | Success |
1 | Error (operation failed) |
2 | Usage error (invalid arguments) |
130 | Interrupted (Ctrl-C) |
Error reporting
Section titled “Error reporting”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.
See also
Section titled “See also”- scan — the starting point for most workflows
- organize — the full pipeline in one command
- Architecture Overview — system design and configuration