For a library for building Rust CLI applications, the strongest matches are clap-rs/clap (Clap is the industry-standard library for building Rust CLI), fdehau/tui-rs (This library provides a comprehensive framework for building complex) and gyscos/cursive (Cursive is a comprehensive framework for building interactive terminal). manrajgrover/halo and chjj/blessed round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best rust cli libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
Clap is a command-line argument parser for Rust that enables developers to define complex interfaces through strongly-typed data structures. It functions as a comprehensive framework for building terminal applications, automating the transformation of raw string inputs into validated, type-safe code representations while simultaneously generating help documentation and usage statements. The library distinguishes itself by offering both a declarative, attribute-based approach and a fluent builder-pattern API, allowing for flexible interface construction. It includes a sophisticated validation
Clap is the industry-standard library for building Rust CLI applications, providing robust argument parsing, validation, and help generation that serves as the foundation for most terminal-based tools.
tui-rs is a Rust framework for building rich terminal user interfaces and dashboards. It provides a terminal layout engine for dividing the screen into flexible rectangular regions and a widget library for rendering data in a terminal. The project includes a cross-platform terminal backend abstraction layer to ensure consistent rendering and compatibility across different operating system terminal drivers. The framework covers a wide range of UI components, including data visualization tools such as charts, progress gauges, and sparklines, as well as structural elements like data tables, ite
This library provides a comprehensive framework for building complex terminal user interfaces, including widgets for progress reporting and console styling, making it a core tool for Rust CLI development.
Cursive is a cross-platform terminal user interface toolkit and framework for building interactive applications in Rust. It provides a modular system for creating text-based graphical interfaces, utilizing a dedicated engine to manage the main display loop and view hierarchies. The toolkit features a backend-agnostic abstraction layer to ensure consistent rendering and input handling across different operating systems. It distinguishes itself through a palette-based theme engine that supports runtime theme loading and true color rendering, as well as the ability to generate user interface hie
Cursive is a comprehensive framework for building interactive terminal user interfaces in Rust, providing the necessary tools for complex console layouts and input handling required for advanced CLI applications.
Halo is a Python library for rendering animated loading indicators and task completion symbols within terminal and notebook environments. It serves as a utility for providing visual feedback in command-line interfaces to signal that background processes are active. The library allows for the customization of loading spinner animations through the use of preset styles or custom character sequences and rotation intervals. It includes functionality to terminate active animations and replace them with specific status symbols and messages to indicate success, failure, or warnings. The project cov
This is a Python library for terminal animations and spinners, which serves as a useful building block for CLI feedback but does not provide the Rust-based framework or argument parsing capabilities required for this category.
This project is a terminal user interface library for Node.js, designed to facilitate the construction of interactive command-line applications. It provides a comprehensive toolkit of high-level widgets that abstract complex terminal escape codes and rendering logic, allowing developers to build functional interfaces using reusable components. The framework distinguishes itself by implementing a box-model-based layout engine and a virtual DOM-style reconciliation system. These mechanisms enable responsive design patterns—such as percentage-based sizing and relative positioning—to function wit
This is a terminal user interface library for Node.js, which does not meet the requirement for a Rust-based development tool.
Rich is a Python terminal formatting library and user interface framework. It provides tools for rendering rich text, colors, and complex layouts within a terminal environment, including specialized formatters for markdown and source code syntax highlighting. The library distinguishes itself through high-level UI components such as tables with unicode borders, hierarchical tree views for nested data structures, and a system for building structured terminal user interfaces. It also includes a debugging visualizer for pretty-printing complex data and formatting error tracebacks. The capability
This is a Python library for terminal formatting and UI, which does not meet the requirement for a Rust-based development tool.
Gum is a toolkit for building interactive, visually styled command-line interfaces and prompts directly within shell scripts. It functions as a library of modular components that allow developers to enhance terminal workflows by adding structured layouts, formatted text, and user-input widgets to standard command-line operations. The project distinguishes itself by providing a suite of specialized utilities for common shell tasks, such as fuzzy-matched selection menus, interactive file system navigation, and confirmation dialogs. It translates high-level styling and layout instructions into t
This tool provides interactive terminal components for shell scripting, but it is written in Go and designed for shell integration rather than as a library for building Rust-based CLI applications.
This project is a thread-safe terminal progress bar and IO progress wrapper for Go applications. It provides a library for rendering updating progress indicators and activity spinners within a command-line interface to visualize task completion and data stream progress. The library includes a stream-wrapping IO interceptor that automatically tracks and displays the volume of bytes processed during read or write operations. It also supports indeterminate activity spinners for processes where the total work volume is unknown. Users can configure the visual appearance of the progress indicators
This is a progress bar library for Go, not Rust, and therefore does not provide the tools needed for building CLI applications in the requested language.
This project is a terminal-based music controller that provides a text-based interface for managing audio streaming, library navigation, and playback device selection. It functions as a client for remote music services, allowing users to browse catalogs, control playback states, and manage their streaming accounts directly from the command line. The application distinguishes itself through a highly customizable interface and automation capabilities. Users can modify the visual layout, adjust themes, and define custom keyboard shortcuts to create a personalized control workflow. Beyond interac
This is a complete terminal-based music application rather than a library or framework intended for developers to build their own command-line tools.
This project is a framework for composing terminal interfaces through declarative styling and a grid-based layout engine. It provides a comprehensive toolkit for building responsive command-line applications by managing ANSI escape sequences, color profiles, and text rendering to ensure consistent visual output across different terminal environments. The library distinguishes itself through its ability to automatically detect terminal capabilities and background themes, allowing it to adjust color schemes and downsample profiles for optimal readability. It utilizes a layered composition model
This is a Go-based library for terminal styling and layout, which serves as a building block for CLI development but does not fit the requested Rust-based category.
Rich is a comprehensive library for building sophisticated command-line interfaces and terminal applications. It provides a robust console formatting engine and a layout framework that enables developers to render rich text, syntax-highlighted code, and complex data structures directly in the terminal. By utilizing a recursive constraint-based layout engine, the library allows for the creation of hierarchical grids, panels, and trees that maintain their structure even as terminal dimensions change. What distinguishes the library is its ability to manage persistent, real-time terminal interfac
This is a comprehensive library for building terminal interfaces, but it is written in Python rather than Rust, making it a tool for a different ecosystem than the one requested.
Helix is a terminal-based modal text editor designed for efficient code manipulation and navigation. It centers on a selection-first editing model, where operations are performed on active ranges rather than individual cursor positions, allowing for precise control over text and code structures. The editor distinguishes itself through deep integration with structural parsing and language intelligence. By utilizing an incremental parsing library, it builds concrete syntax trees that enable advanced features like structural code navigation, intelligent indentation, and syntax-aware text object
Helix is a full-featured terminal text editor rather than a library or framework for building your own command-line applications.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| clap-rs/clap | 16.5K | Rust | Apache-2.0 | |
| fdehau/tui-rs | 10.9K | Rust | MIT | |
| gyscos/cursive | 4.8K | Rust | MIT | |
| manrajgrover/halo | 3.1K | Python | mit | |
| chjj/blessed | 11.9K | JavaScript | NOASSERTION | |
| willmcgugan/rich | 56.6K | Python | MIT | |
| charmbracelet/gum | 22.8K | Go | mit | |
| schollz/progressbar | 4.7K | Go | MIT | |
| rigellute/spotify-tui | 19K | Rust | mit | |
| charmbracelet/lipgloss | 10.6K | Go | mit |