A fast, extensible progress bar for Python loops, iterables, and command-line pipes.
Shopify/cli-ui
A small Ruby framework for building interactive command-line interfaces with prompts, spinners, progress bars, and nested frames.
- Stars
- 1,130
- Forks
- 57
- Open issues
- 23
- Last commit
- last month
What is it?
CLI UI is a Ruby library for producing structured, visually polished terminal output in command-line tools. It provides building blocks for common interactive needs such as asking users to choose from options or enter free-form text, and for showing the state of long-running work.
The framework includes nested output frames that group related log lines, spinner groups that run several tasks concurrently and hide their output unless something fails, and a progress bar. Text can be colored and decorated with glyphs using a simple markup such as {{red:text}} and {{*}}. Frame appearance can be set globally or per frame, with box and bracket styles.
The library is self-contained with no runtime dependencies, and it includes type stubs so it works with or without Sorbet. Installation is via RubyGems.
Key features
- 01Interactive prompts with arrow keys, vim bindings, numbers, and filtering
- 02Nested frames for grouping output
- 03Spinner groups that run multiple tasks and show titles or status
- 04Progress bar and status widget
- 05Colored text and glyph formatting via markup
- 06Global or per-frame box and bracket styles
Use cases
- Building interactive setup or deployment scripts in Ruby
- Running several parallel build or install steps with clean output
- Prompting users for choices or confirmations in a Ruby CLI
Quick start
- 1
Install the gem from RubyGems
gem install cli-ui - 2
Require the library in your code and enable the stdout router
Topics
FAQ
- What is cli-ui?
- A small Ruby framework for building interactive command-line interfaces with prompts, spinners, progress bars, and nested frames. CLI UI is a Ruby library for producing structured, visually polished terminal output in command-line tools. It provides building blocks for common interactive needs such as asking users to choose from options or enter free-form text, and for showing the state of long-running work.
- Is cli-ui free to use? What license does it have?
- cli-ui is open source under the MIT license. Check the license terms before using it in commercial products.
- Is cli-ui still maintained?
- Updated within 6 months. The last commit to cli-ui was on Sep 15, 2026.
- What can I use cli-ui for?
- Building interactive setup or deployment scripts in Ruby Running several parallel build or install steps with clean output Prompting users for choices or confirmations in a Ruby CLI
- How do I install cli-ui?
- Install the gem from RubyGems: gem install cli-ui Require the library in your code and enable the stdout router
- Where can I get cli-ui?
- The source code and installation instructions are on GitHub: https://github.com/Shopify/cli-ui
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An open-source Go framework that organizes reusable AI prompts (called Patterns) by task and runs them from the command line or a REST API.
A community-driven framework for managing zsh configuration, bundling hundreds of plugins and themes plus an update tool.
A minimal, customizable cross-shell prompt written in Rust that shows relevant project and environment info.
A terminal tool that replays Git commits as animated typing sessions with syntax highlighting and file tree transitions.
Browser-based terminal access that lets you run, monitor and command shell sessions and AI coding agents from any device.