rs-rich-cli
The rs-rich-cli package is a Rust port of the
rich-cli terminal toolbox — rich
output for files, data and URLs, from the command line. Install it from
crates.io with Cargo; the executable it installs is named rich:
The source package targets 0.0.8 (release preparation) and follows independent
SemVer; its version does not mirror Python rich-cli. The tracked upstream
release is rich-cli 1.8.1, recorded in
../../UPSTREAM.toml.
Render modes
| Flag | Renders |
|---|---|
-p, --print |
the argument as console markup |
-m, --markdown |
Markdown (headings, lists, quotes, code, links, tables) |
-j, --json |
pretty-printed, highlighted JSON |
-x, --syntax |
syntax-highlighted source |
--csv |
a CSV/TSV table, with numeric columns right-aligned |
--ipynb |
a Jupyter notebook |
--jsonl |
streaming JSON Lines / NDJSON |
--log |
streaming structured-log JSONL |
--gif |
animated GIFs, several at once |
--image |
a still image as ASCII, Braille, half-blocks, or Sixel |
--rule |
a horizontal rule |
With no flag the mode is picked from the file extension; a bare - reads stdin.
Preferred subcommands such as rich json, rich markdown, rich csv,
rich jsonl and rich log are aliases over the same renderers. Existing flat
flags remain supported.
Options
Layout
: -w/--width, --left/--center/--right, --panel BOX with
--title/--caption/--style, --padding, --pager, --sanitize,
--report json, --no-color. --auto-pager pages terminal output only when
it exceeds the viewport height; --no-pager disables configured paging.
Redirected stdout is never paged.
Export
: --export-html and --export-svg emit a self-contained document instead of
writing to the terminal — any render mode can be captured this way.
Watch
: --watch polls a local file or URL and re-renders changes. Use
--watch-interval SEC to change the polling interval. --watch-cache
avoids re-rendering unchanged URL responses. Watch mode is intentionally
finite when stdout is redirected: it renders one snapshot and exits, making
pipelines deterministic. Builds without the fetch feature reject URL
watches with the same stable URL-support error as one-shot URL input.
Watch cannot be combined with batch or explicit/automatic paging.
Batch
: --batch plans local files, directories and globs. --dry-run reports the
plan and planning errors without writing outputs. --jobs N bounds subprocess
workers for file exports; disk-spooled output is replayed in input order.
Terminal-only batches remain serial. Fail-fast stops new scheduling while
in-flight workers finish; --continue-on-error permits later scheduling.
Configuration
: --config PATH and --profile NAME select strict TOML defaults and profiles.
Precedence is defaults, selected profile, then explicit CLI settings; profile
false and inverse flags can disable inherited booleans. Unknown keys and
invalid values fail even in inactive profiles. rich config show and
rich config validate return JSON; settings includes configured values and
explicit overrides, not every built-in default. --no-config disables config.
Still-image crop
: --image-fit contain|cover fits the image into an explicit height and bounded
width. --image-background '#RRGGBB' composites transparency. With cover,
--image-anchor selects center (default), top, bottom, left, right or a corner
such as top-left. Contain stays centered.
See the workflow recipes and 0.0.8 preparation notes for examples and pending release gates. Source versions do not imply publication.
Features
Both are on by default and can be dropped for a smaller binary:
fetch— URL support (rich <url>), viaureqwith bundled TLS roots.art—--gifplayback and--diff/--imagepicture rendering, viarich-art.
Licence
MIT.
Optional syntax cache
For repetitive source files, build the CLI with
cargo build -p rs-rich-cli --release --features syntax-cache. This feature is
off by default and changes no CLI flags. It reuses parsing work within one
render; varied source files may see no speedup. See the
measurements.