https://github.com/Textualize/rich-cli Skip to content Sign up * Why GitHub? + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} Textualize / rich-cli Public * Notifications * Fork 3 * Star 188 * Rich-cli is a command line toolbox for fancy output in the terminal www.textualize.io MIT License 188 stars 3 forks Star Notifications * Code * Issues 1 * Pull requests 0 * Discussions * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Wiki * Security * Insights main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 4 branches 0 tags Code Latest commit @willmcgugan willmcgugan Update README.md ... d9b3405 Jan 31, 2022 Update README.md d9b3405 Git stats * 47 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time imgs src/rich_cli .gitignore LICENSE README.md poetry.lock pyproject.toml View code [ ] Rich CLI Installation Syntax highlighting Markdown JSON Rules Network Exporting Rich Printing Soft wrapping Reading from Stdin General Options Style Alignment Width Text Justify Padding Panel README.md Rich CLI Rich-cli is a command line toolbox for fancy output in the terminal, built with Rich. Use the rich command to highlight a variety of file types in the terminal, with specialized rendering for Markdown and JSON files. Additionally you can markup and format text from the command line. splash image Installation Rich-cli is distributed as a Python application, which you can install with Pip: python -m pip install rich-cli Alternatively, you can use pipx to install it globally: pipx install rich-cli Once installed, you should have the rich command on your path. rich --help [?] More information methods coming soon. Syntax highlighting To syntax highlight a file enter rich followed by a path. Many file formats are supported. rich loop.py syntax1 Add the --line-number or -n switch to enable line numbers. Add --guides or -g to enable indentation guides. rich loop.py -n -g syntax2 You can specify a theme with --theme or -t. rich loop.py --theme dracula syntax3 By default, rich will wrap lines if they don't fit within the available width. You can disable this behavior with --no-wrap. Rich will try to deduce the format of the via from the filename. If you want to override the auto-detected lexer you can explicitly set it with the --lexer or -x switch. Markdown You can request markdown rendering by adding the --markdown switch or -m. rich README.md -m markdown1 If your terminal supports hyperlinks, you can add --hyperlinks or -y which will output hyperlinks rather than full URLs. rich README.md --hyperlinks JSON You can request JSON pretty formatting and highlighting with the --json or -j switches. rich cats.json --json json1 Rules You can render a horizontal rule with --rule or -u. Specify a rule style with --rule-style. Set the character(s) to render the line with --rule-char. rich "Hello [b]World[b]!" --rule rich "Hello [b]World[b]!" --rule --rule-style "red" rich "Hello [b]World[b]!" --rule --rule-style "red" --rule-char "=" syntax1 Network The rich command can read files from the internet you give it a URL starting with http:// or https://. rich https://raw.githubusercontent.com/Textualize/rich-cli/main/README.md --markdown network Exporting In addition to rendering to the console, rich can write an HTML file. This works with any command. Add --export-html or -o followed by the output path. rich README.md -o readme.html After running this command you should find a "readme.html" in your current working directory. Rich Printing If you add the --print or --p option then Rich will treat the first argument as console markup which allows you to insert styles with a markup similar in design to bbcode. rich "Hello, [bold magenta]World[/]!" --print printing1 Soft wrapping Rich will word wrap your text by default by inserting newlines where appropriate. If you don't want this behavior you can enable soft wrapping with --soft. Reading from Stdin Where rich accepts a path, you can enter - which reads the content from stdin. You may want this if you are piping output from another process. Note that when rich isn't writing directly to the terminal it will disable ansi color codes, so you may want to add --force-terminal or -F to tell rich you want to keep ansi codes in the output. cat README.md | rich - --markdown --force-terminal General Options There are a number of additional switches you may add to modify the content rendered to the terminal. These options are universal and apply to all of the above features. Style You can set a style to apply to the output with --style or -s. The styles are specified with this syntax. rich "Hello, [b]World[/b]!" --print --style "on blue" style1 Alignment You can align output to the left, center, or right with the --left, --center, or --right options, or their single letter counterparts: -l, -c, or -r. rich "Hello [b]World[/b]!" --print --center alignment1 Width You can set the width of the output with --width or -w and the desired width. Note that the default behavior is to wrap text. rich "I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration." -p -w 40 width Text Justify You can set how rich will justify text with --text-left, --text-right, --text-center, and --text-full; or the single letter equivalents: -L, -R, -C, and -F. The difference between --left and --text-left may not be obvious unless you specify the width of the output. The --left, --center, and --right options will center the block of text within the terminal dimensions. Whereas, the --text-left, --text-center, and --text-right options define how text is rendered within that block. In the following examples, we specify a width of 40 (-w 40) which is center aligned with the -c switch. Note how the -R, -C and -F apply the text justification within the 40 character block: rich "I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration." -p -w 40 -c -L rich "I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration." -p -w 40 -c -R rich "I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration." -p -w 40 -c -C rich "I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration." -p -w 40 -c -F Padding You can apply padding around the output with --padding or -d. rich "Hello [b]World[/b]!" -p -c --padding 3 --style "on blue" padding1 Panel You can draw a panel around content with --panel or -a, which takes one of a number of styles. rich "Hello, [b]World[/b]!" -p -a heavy panel1 About Rich-cli is a command line toolbox for fancy output in the terminal www.textualize.io Topics syntax-highlighting markdown terminal rich terminal-colors Resources Readme License MIT License Stars 188 stars Watchers 3 watching Forks 3 forks Releases No releases published Packages 0 No packages published Contributors 3 * @willmcgugan willmcgugan Will McGugan * @darrenburns darrenburns Darren Burns * @henryiii henryiii Henry Schreiner Languages * Python 100.0% * (c) 2022 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.