jarro2783/cxxopts

Lightweight C++ command line option parser

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 36 minutes ago
Added to GitGenius on September 14th, 2026
Created on October 3rd, 2014
Open Issues & Pull Requests: 71 (+0)
GitHub issues: Enabled
Number of forks: 659
Total Stargazers: 4,811 (+0)
Total Subscribers: 57 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 37.1 hours
Mean response time: 88.8 days
90th percentile: 63.0 days
Tracked items: 69

Most active contributors

Sign in to see contributor activity.

How this project is maintained

100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 90% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 21
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,111 days
Stale 30+ days: 21
Stale 90+ days: 20

Recent activity

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

Top labels

  • Pending on author (4)
  • enhancement (3)
  • bug (1)
  • wontfix (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

cxxopts is a lightweight C++ command line option parser library that supports standard GNU-style syntax for options.

The tool solves the problem of parsing command line arguments in C++ programs. It handles long options, short options, combined short options, and positional arguments following the `--` separator. The parser accepts options in forms like `--long`, `--long=argument`, `-a`, or `-abc argument`, and allows any type that supports the `>>` operator to be used as an option value.

Developers should choose this tool for straightforward command line parsing in C++ applications where a lightweight dependency is preferred over heavier frameworks. It suits projects that need GNU-style option syntax without extensive configuration overhead. The library provides help message generation with support for grouping options, exception-based error handling with distinct exception types for specification and parsing errors, and the ability to skip unrecognized arguments. Version 3 introduced a breaking change where the parser no longer modifies its input arguments, allowing const argc and argv to be passed safely, and the ParseResult object can now be returned from outside the parser's scope.

The project maintains a clear separation between master branch development work and stable tagged release versions. The codebase demonstrates active refinement of its core parsing logic, with deliberate design decisions around immutability of input and lifetime management of parse results. Development shows attention to exception hierarchy design and the ability to extend the parser with custom types through operator overloading.