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

The end-goal with Textual is to make it the best way to create applications in the terminal (with Python or any other language). I want to do this by borrowing the best techniques from the web world which have been the intense focus of development for over a decade, but have rarely been applied to the terminal. I would also like to push the boundaries of what you would typically imagine a terminal application to be capable of. Terminals these days use video-game technology to support 16.7 million colors and can push updates at 60 frames per second or higher. I want to see what we can build if we allow ourselves to dip in to that power.

As much as I love flashy effects in the terminal, my main motivation with Textual is to make it easier to build Text User Interfaces (TUIs). The lowest common denominator for a (human) interface would be a command line interface. Python is not short of ways of adding a CLI (I like Typer), but what if it was at least as easy (or easier) to build a TUI? Maybe apps would be TUI first, or have --tui switch if you want a more discoverable way of working with an application.

In addition to working on Rich and Textual, I would also like to contribute to open source in other ways. One way is to offer code reviews to open source projects, with a particular focus on API design. Additionally, since my time will be my own I can contribute PRs to other projects, which I am looking forward to doing!

While I'm doing this I will have no income. Now I'm too old and too risk averse to do this without having put some savings aside, but I am hoping to delay the inevitable return to a day job with Github Sponsors. I signed up a while ago and had been donating it to Bowel Cancer UK, but now it could help me pay some bills. If any of my work has made your life easier, or you want to support development of Rich and Textual, consider sponsoring me.

Full disclosure though, my motivation for this is more mutual than selfless. I think that there are commercial applications of Textual down the line, which may become a business. Textual itself will of course always be free and open source forever.

If you would like to follow my progress on Textual (I post regular updates), follow @willmcgugan on Twitter.

Before I go, here are a couple of recent updates to Textual:

Update 9

This examples demonstrates the easing functions borrowed from CSS.

Update 8

This example shows a tree control linked to a scroll view containing syntax highlighted code.

Use Markdown for formatting
*Italic* **Bold** `inline code` Links to [Google](http://www.google.com) > This is a quote > ```python import this ```
your comment will be previewed here

You might set up a patreon or liberapay to make it easier to pull in monetary contributions from willing contributors.


+1 about setting up a liberapay or patreon account


Very nice! I have been thinking about a text user interface for a long time. This looks awesome and very advanced. I plan to check it out and if you set up some donation platform I'd also donate some money toward you project. I think it's very worthwhile and has many use cases.


Interesting project. Here's the best TUI I used: glow (written in go). Hope it's interesting to you.


+1 on patreon or any other way to support your work. I love lomond, sadly not much updates for 3.6+