urfave/cli

A declarative, simple, fast, and fun package for building command line tools in Go

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 27 minutes ago
Added to GitGenius on September 2nd, 2026
Created on July 13th, 2013
Open Issues & Pull Requests: 71 (+0)
GitHub issues: Enabled
Number of forks: 1,812
Total Stargazers: 24,227 (+1)
Total Subscribers: 284 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 36.6 hours
Mean response time: 33.1 days
90th percentile: 71.0 days
Tracked items: 175

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 88% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "kind/question" is answered fastest, typically in about 6 hours, while "kind/bug" waits about 3 days. Only 9% of issues opened in the past year have been closed. Three people close 87% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 40
New in 7 days: 0
Closed in 7 days: 3
Avg open age: 611 days
Stale 30+ days: 32
Stale 90+ days: 28

Recent activity

Opened in 7 days: 0
Closed in 7 days: 3
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • area/v3 (117)
  • status/triage (102)
  • kind/bug (79)
  • area/v2 (36)
  • kind/question (25)
  • status/waiting-for-response (16)
  • kind/feature (15)
  • help wanted (6)

Detailed Description

urfave/cli is a Go library for building command-line applications with a declarative syntax.

The library addresses the common need to construct CLI tools quickly without external dependencies. It works by letting developers declare commands, subcommands, and flags in a straightforward way, then handling parsing, validation, and help text generation automatically. The approach emphasizes simplicity and speed while remaining flexible enough to support complex command hierarchies.

Developers should choose this tool if they are building command-line applications in Go and want to avoid dependency management overhead, since the library relies only on the Go standard library. It suits projects ranging from simple single-command tools to complex applications with nested subcommands. The library handles common requirements like shell completion for bash, zsh, fish, and powershell, compound short flags, and input from environment variables or configuration files in plain text or structured formats like YAML and TOML.

The project maintains a steady stream of issue responses and accepts pull requests, with maintainers actively engaging in discussions. Development activity shows consistent attention to bug reports and feature requests, though the README notes the project is run by unpaid volunteers.