598450d9e24dcd480e3cebb422e7e7ec2298e6b8
rp
Rich print files — markdown, JSON, code, and more — beautifully in your terminal.
Features
- Syntax highlighting for 500+ languages via Pygments
- Markdown rendering with headings, code blocks, tables, and links
- JSON formatting with syntax highlighting
- Pager integration with mouse scrolling support
- Stdin support for piping content
- Watch mode for live file redraws
Installation
Install globally with uv
uv tool install .
Run directly with uv
uv run rp <file>
Usage
Basic file input
rp README.md
rp config.json
rp script.py
Read from stdin
cat data.json | rp
echo '{"status": "ok"}' | rp
curl -s https://api.example.com | rp
Force file type
rp --type python script.txt
rp -t json data.txt
Guess from content
cat patch.txt | rp --guess-content
rp --guess-content snippet.txt
Pager control
rp --pager README.md # Force pager
rp --no-pager file.py # Disable pager
The pager prefers less -R --mouse for mouse scrolling when available, otherwise falls back to the system pager.
Watch a file
rp --watch README.md
rp --watch --type json data.txt
--watch is file-only. It does not support stdin or -, disables the pager, redraws the screen when the file changes, and keeps retrying if the file becomes missing or temporarily unreadable.
Show version
rp --version
Development
Setup
uv sync
Testing
uv run pytest # Run all tests
uv run pytest -v # Verbose output
uv run pytest tests/test_detect.py # Single file
Linting & Type Checking
uv run ruff check src/
uv run ruff format src/
uv run mypy src/
Build
uv build
Workflow
main— stable release branchdev— integration branch for day-to-day work- Short-lived branches:
feature/<topic>,fix/<topic>,docs/<topic> - Open PRs into
dev(squash merge); mergedevtomainfor releases
License
MIT