A Ruby toolkit for building beautiful, interactive command line applications with modular components and project scaffolding.
TTY is a Ruby toolkit for developing sleek, interactive command line applications. It provides a collection of modular components and a project scaffolding tool called `teletype` to help developers build CLI tools faster by handling common terminal interactions like input gathering, output formatting, and command parsing.
Ruby developers building command line tools, utilities, or interactive terminal applications who want to avoid reinventing the wheel for common CLI patterns and UI elements.
Developers choose TTY for its comprehensive, modular approach—offering over 20 specialized components that can be used independently or together, along with project scaffolding that jump-starts development following Unix conventions.
Toolkit for developing sleek command line apps.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers over 20 standalone gems like tty-prompt and tty-progressbar, allowing developers to mix and match only what they need for specific CLI tasks without bloat.
The teletype executable generates a complete project structure with commands, subcommands, and testing setup, following Unix conventions to jump-start development.
tty-prompt provides a beautiful, powerful interface for gathering user input with support for yes/no, select, mask, and multi-select questions, enhancing user experience.
Includes components for drawing boxes, tables, progress bars, spinners, and pie charts directly in the terminal, enabling sophisticated data display without external tools.
The README admits that teletype cannot add subcommands to existing commands without crashing, limiting flexibility when evolving CLI structures after initial setup.
Installing the full TTY toolkit pulls in numerous gems, which can bloat small projects and increase maintenance burden compared to lighter alternatives.
Scaffolding defaults to Thor for command parsing, which might not suit teams preferring more minimalist or alternative parsing libraries like OptionParser or Slop.