Search Results

Posts containing rich

I get a kick out of being creative within the limitation of the terminal. I may even have come up with with an entirely new way of drawing boxes in the terminal. As bizarre as that sounds.

Boxes in the terminal are not new. Rich is full of them, but they predate Rich by a long time.

CLI apps will typically use box drawing characters to build boxes out of unicode characters. There are characters for vertical lines, horizontal lines, corners, and cross pieces. With a mixture of regular, heavy, and double lines. Even rounded corners. They work like lego: throw them together in the right order and you can display exotic things such as panels and tables at the command prompt.

But there is a problem. Look what happens when you set a background color:

A Rich panel. continue reading…

Rich recently added two interesting new features.

The first feature is SVG support. Anything printed to the terminal with Rich can be captured and exported to an SVG file. The output is somewhat like a screenshot but generated within Rich itself (it doesn't peek at your desktop).

A SVG generated from Rich (converted to a PNG).

I think these SVGs will be useful for sharing terminal output, particularly for documentation.

The API to save SVGs works in the same way as the methods to save / export text and HTML. Here's the code that generated the above image: continue reading…

Reposting this from blog.textualize.io.

My name is Will McGugan. I am the creator of Rich and Textual, and the founder and CEO of Textualize. At the end of last year I took a year off to work on my Open-source projects and develop an idea that I believe will allow the terminal to eat some of the browser’s lunch. Turns out this idea was compelling enough to attract some sweet sweet VC cash and I am now hiring a third Python developer to join the company.

At Textualize we offer a competitive salary, 33 days holiday a year, a health plan, and standard benefits. But more importantly, a friendly and supportive workplace that values work-life balance. continue reading…

I've published a number of Open Source Python libraries, but none have seen as much buzz as Rich. Released in 2020, the Rich repo has 35,000 stars on Github. Since then I've released Textual (a work in progress) and Rich-CLI, both of which are on a similar trajectory as far as GitHub stars go.

In this post I'd like to lay out what I think contributed to the popularity of Rich, which you can hopefully apply to your own open source project(s).

Too the moon! You may start to see more Richified apps soon. Including Pip, which recently adopted Rich progress bars and more. continue reading…

I'm trialing the idea of Weeknotes, a weekly summary of what I've done / learned in the prior week. Inspired by Simon Willison who has an uncanny ability to respond to a tweet with a link to a weeknote of his containing just the information you needed. These will be a little rougher, a little less edited, than my usual content. But the point is to get something out there and to develop the habit of writing.

The investment for Textualize landed at the end of last year, just before Christmas. Naturally I was on a bit of a high. This last week-and-a-half I've come down to earth and settled in to a routine of going in to the office every day (something I swore I'd never do again). And it's not so bad. continue reading…

I recently posted about my plans to take a "year off" to work full time on open source. The TL and DR of it was that I would live on savings while working on Rich and Textual, both of which where generating a bit of buzz in the Python community.

Additionally, I would work on a cloud service using both those projects which at some point would become a business.

Now this was a good plan. The money from GitHub sponsors which I had previously been donating to charity would take the sting out of not having an income for a while. While far from a salary (where I live), at around $1000 a month it would help pay a few bills. continue reading…

I recently came to a decision which will have a big impact on my open source work. In particular Rich and Textual, but also pyfilesystem and lomond. For the foreseeable future, possibly up to a year, I'll be working on them essentially full time.

Rich is a very popular project now, with over 29K stars on Github. It has near 100% coverage and a stable API, but no codebase is ever really finished so there will be on-going work. Textual is Rich's sister project which is brand new and under active development, but already has 4.8K stars. It is also a much larger project than Rich. To do Textual justice I'm going to need to put in some serious time over and above what I could realistically do for a hobby project.

Some of the applications in the Textual examples directory continue reading…

If you work with JSON regularly (90% of Python developers I suspect) you might appreciate the print_json function just landed in Rich v10.9.0

If you call this function with a string, Rich will decode the string, reformat it, and print it to the console with nice syntax highlighting. Here's an example:

Here's the output:

Calling print_json with a string will decode the JSON and pretty print it.

Note that the atomic values false, true, and null have their own color. I find this helpful when scanning a JSON blob.

If you call print_json with a data keyword argument it will encode that data and pretty print it in the same way.

Here's the output:

Calling the print_json function with a data keyword argument. continue reading…

I've started work on a new project called Textual.

Textual is (or will be) a TUI framework using Rich as a renderer. It's still very early days, but ultimately the goal is to have something which you can uses to build a Text User Interface with little to no boiler-plate.

It is async powered. Each "widget" runs in an async task and communicates via a message queue. This should allow the UI to remain responsive even when the app is doing work.

Running a Textual app in Vscode.

An example Textual app (currently the only one) with a default layout. Title bar with working clock. Side panel that can be toggled with a key. And a scrolling window containing Markdown. continue reading…

Rich has become a popular (20K stars on GH) way of beautifying CLIs, and I'm pleased to see a number of projects using it.

Since Rich is mature and battle-tested now, I had considered winding-down development. Until, I saw this tweet:

Do you want to see something really cool you can do with @willmcgugan 's rich library?

Checkout ghtop https://t.co/mn7oLbpw8e. It's a really fun CLI tool that demonstrates the power of rich (and other things).

Examples below 🧵👇 (1/8)

— Hamel Husain (@HamelHusain)

@HamelHusain and @jeremyphoward used Rich to enhance ghtop (a repo owned by the CEO of Github, no less). Ghtop shows a realtime a stream of events from the Github platform. And it looks good! So good that I realised how much potential Rich has for these type of htop-like applications. continue reading…