TTY components let you solve command line problems in the same way Unix philosophy of focused tools does. You can mix and match components as you please.
Each component is an independent piece and can be combined in many ways with other libraries outside of tty ecosystem.
All tty components are well tested to work on all major operating systems and terminal emulators, allowing you to create platform agnostic tools.
Each tty component is a focused package of straightforward api calls. The source is small and easy to understand, so you can spend time creating and not learning how to use.
You are one step away from generating your terminal application. To create a terminal app all you need is to install tty gem. Once tty gem is installed you gain access to a powerful teletype executable. By running teletype with a name of your tool, you will generate your command line application. What's left to do is to add your commands which again can be genereted using teletype.
Mix & match what you need to create your command line tool
A beautiful and powerful interactive command line prompt.Learn more
A flexible progress bars drawing in terminal emulators.Learn more
A terminal spinner for tasks with non-deterministic time.Learn more
Execute shell commands with pretty logging.Learn more
A flexible and intuitive table output generator.Learn more
Convert a markdown document or text into a terminal friendly output.Learn more
A set of methods for processing keyboard input in character, line and multiline modes.Learn more
File and directory manipulation utility methods.Learn more
Define, read and write any Ruby app configurations with a penchant for terminal clients.Learn more
Nice Things People Have Said
The TTY gem-suite has helped me automate a ton of stuff I was doing manually. Writing the scripts in Ruby instead of pure Bash script has motivated me a lot, too. The api design for prompts, spinners and commands made it so intuitive to use, such a joy.
I was always surprised by the amount of problems that the TTY family of gems solves. I remember when I first started looking for solutions for the command line gems I was developing, more often than not I landed on one of the TTY gems.
The tty-progressbar really helped us in a complex database migration that we had at work recently, it was so incredibly convenient to have all of these features available: ETA display, rate display, logging frequency option, interval option. It worked great for us, and thank you for all your awesome work!
I came across the TTY gem suite in 2018 when I attended a talk at Ruby Kaigi. Since then it's been my default gem suite when I need to write my tools both for work as well as open source (story_branch gem relies heavily on TTY). Intuitive API, clean UX. Definitely on my awesome gems list.