# Guide

This guide walks through CLI11 chapter by chapter, from a first simple program
to subcommands, configuration files, and the library internals. Read it in
order, or jump to the chapter you need:

- [Installation](chapters/installation.md)
- [The Basics](chapters/basics.md)
- [Adding Flags](chapters/flags.md)
- [Options](chapters/options.md)
- [Validators](chapters/validators.md)
- [Subcommands and the App](chapters/subcommands.md)
- [Option groups](chapters/option-groups.md)
- [Accepting configure files](chapters/config.md)
- [Formatting help output](chapters/formatting.md)
- [Unicode support](chapters/unicode.md)
- [Using CLI11 in a Toolkit](chapters/toolkits.md)
- [Advanced topics](chapters/advanced-topics.md)
- [CLI11 Internals](chapters/internals.md)

## Examples

- [Making a git clone](chapters/an-advanced-example.md) — a walkthrough of a
  larger program
- [Using CLI11 as a C++20 module](chapters/modules-example.md) — complete
  `import cli11;` programs, with an `import std;` variant
- [Example programs](../examples) — small, complete programs you can copy

A rendered version is part of the
[CLI11 documentation](https://cliutils.github.io/CLI11/).

> Feel free to contribute to [this documentation here][cli11guide] if something
> can be improved!

[cli11guide]: https://github.com/CLIUtils/CLI11/tree/main/book
