small medium large xlarge

Build Awesome Command-Line Applications in Ruby 2: Control Your Computer, Simplify Your Life


Cover image for Build Awesome Command-Line Applications in Ruby 2

Build Awesome Command-Line Applications in Ruby 2

Control Your Computer, Simplify Your Life


Speak directly to your system. With its simple commands, flags, and parameters, a well-formed command-line application is the quickest way to automate a backup, a build, or a deployment and simplify your life. With this book, you’ll learn specific ways to write command-line applications that are easy to use, deploy, and maintain, using a set of clear best practices and the Ruby programming language. This book is designed to make any programmer or system administrator more productive in their job. This is updated for Ruby 2.

Build Awesome Command-Line Applications for Ruby 1.9 is available here

Customer Reviews

Some command-line applications save time and are a joy to use. Others just make
you want to tear your hair out. David Copeland has written a guide to writing the
kind of command-line apps that will make your users want to hug you. From
providing a humane command-line interface, to being self-documenting, to integrating
seamlessly with the rest of the command-line universe—this book will
show you how to take your scripts from adequate to awesome.

- Avdi Grimm

Ruby developer, author, Exceptional Ruby, and blogger, Virtuous Code

This book proves that text mode is not the just the domain of batch scripts and
glue code. Beyond the extensive survey of current Ruby CLI tools, David brings
an unmatched focus on user experience and testing. Every full-stack developer
should learn how to build the kinds of apps covered in this book.

- Wynn Netherland

CTO, Pure Charity

I know of no other Ruby book that covers the content in this useful work, especially
with its eye toward making Ruby command-line applications better citizens.

- Noel Rappin

Senior engineer at Groupon and author, Rails Test Prescriptions

This well-written book teaches ideas that are really important: that Ruby is a
powerful language for writing command-line tools; that CLI tools, unlike GUI tools,
can be combined in an infinite number of ways; that the effort required to automate
small recurrent tasks pays off; and that there are time-tested best practices for
succeeding with command-line tool development. Not only are the scripts in this
volume awesome, so is the book.

- Staffan Nöteberg

Author, Pomodoro Technique Illustrated

I want a few people on my team to have this book now. I especially can’t wait to
get this in the hands of our software lead, who’s a whiz at shell scripts and would
be delighted to see how much easier and more reliable option parsing is in Ruby.

- Ian Dees

Ruby developer and coauthor, Using JRuby

This book teaches you how to write command-line tools your mother would be
proud of.

- Matt Wynne

Independent consultant, programmer, coach, and author, The Cucumber Book

See All Reviews

What You Need

An installation of Ruby 2, along with a few open-source Rubygems.

Contents & Extracts

Full Table of Contents


  • Have a Clear and Concise Purpose
  • Be Easy To Use excerpt
  • Be Helpful
  • Play Well with Others excerpt
  • Delight Casual Users excerpt
  • Make Configuration Easy
  • Distribute Painlessly
  • Test, Test, Test
  • Be Easy To Maintain
  • Add Color, Formatting, and Interactivity
  • Common Command-Line Gems and Libraries


David Bryant Copeland is a veteran professional software developer who spends most of his time on the command line. He speaks frequently at national and regional Ruby conferences and has built many command-line and web applications.