CLI Applications
Alternatives: std/parseopt, argparse, docopt, therapist, confutils (Status).
Terminal: std/terminal (colors, styles, cursor, getch), std/colors, illwill (TUI), nimwave, nancy (tables), suru (progress bars), termstyle.
Configuration: std/parsecfg (INI), parsetoml, YAML (NimYAML), JSON, env vars.
Logging: std/logging (ConsoleLogger, FileLogger, RollingFileLogger), chronicles (structured logging, compile-time filtering).
Distribution: single static binaries, nimble install, GitHub Releases via CI cross-builds.
# cligen: generate a full CLI from a proc signature
import cligen
proc greet(name: string, times = 1, loud = false): int =
## Greet someone.
for _ in 1..times:
echo (if loud: name.toUpperAscii else: name)
0
dispatch greet, help = {"name": "who to greet", "times": "repetitions"}
# ./greet --name=Ana -t=3 --loud