Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Ruby
  3. dry-cli

dry-cli

MITRubyv1.4.1

A general-purpose Command Line Interface (CLI) framework for Ruby applications.

Visit WebsiteGitHubGitHub
353 stars39 forks0 contributors

What is dry-cli?

dry-cli is a general-purpose Command Line Interface (CLI) framework for Ruby that enables developers to build structured and maintainable command-line applications. It simplifies defining commands, parsing options, and generating help text, making CLI development more efficient and organized.

Target Audience

Ruby developers building command-line tools, scripts, or applications who need a robust and extensible framework for managing CLI interactions.

Value Proposition

Developers choose dry-cli for its clean API, extensibility, and alignment with the dry-rb ecosystem's principles of simplicity and composability, offering a reliable alternative to ad-hoc CLI solutions.

Overview

General purpose Command Line Interface (CLI) framework for Ruby

Use Cases

Best For

  • Building structured command-line tools in Ruby
  • Creating maintainable CLI applications with nested commands
  • Parsing and validating command-line options and arguments
  • Generating automatic help documentation for CLI tools
  • Testing CLI commands with ease
  • Extending CLI functionality with plugins or middleware

Not Ideal For

  • Projects requiring minimal dependencies for very simple, one-off scripts
  • Teams already heavily invested in alternative CLI frameworks like Thor or GLI
  • Applications needing advanced interactive features like TUI or shell completion without additional setup

Pros & Cons

Pros

Structured Command Hierarchy

dry-cli enables clear namespace and hierarchy definitions for commands, making complex CLI applications more organized and maintainable, as highlighted in its command registration feature.

Built-in Option Parsing

It provides robust parsing and validation for command-line options and arguments, ensuring reliable input handling without manual effort, as mentioned in the key features.

Extensible with Plugins

The framework supports plugins and custom middleware, allowing seamless extension of functionality, aligning with the dry-rb philosophy of composability.

Automatic Help Generation

dry-cli automatically generates help text for commands and options, reducing boilerplate code and improving user documentation, a key feature emphasized in the README.

Cons

Learning Curve for Newcomers

Adhering to the dry-rb philosophy of explicitness and composability requires upfront understanding, making it less approachable for developers unfamiliar with the ecosystem.

Limited Third-Party Ecosystem

Compared to more established alternatives like Thor, dry-cli has a smaller community, resulting in fewer plugins, tutorials, and community support resources.

Lacks Advanced Features Out-of-the-Box

Features like interactive prompts, shell completion, or colored output are not included by default, often requiring additional development or integration efforts.

Frequently Asked Questions

Quick Stats

Stars353
Forks39
Contributors0
Open Issues8
Last commit2 days ago
CreatedSince 2017

Tags

#developer-tools#command-line-tools#option-parsing#cli-framework#command-line-tool#ruby-gem#cli#rubygem#command-line#ruby#cli-utilities

Built With

R
Ruby

Links & Resources

Website

Included in

Ruby14.1k
Auto-fetched 1 day ago

Related Projects

TTYTTY

Toolkit for developing sleek command line apps.

Stars2,532
Forks82
Last commit3 years ago
SlopSlop

Simple Lightweight Option Parsing - ✨ new contributors welcome ✨

Stars1,129
Forks71
Last commit7 months ago
CommanderCommander

The complete solution for Ruby command-line executables

Stars823
Forks68
Last commit2 years ago
ClampClamp

a Ruby command-line application framework

Stars446
Forks51
Last commit2 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub