# Cheer v0.1.5 - Table of Contents

A clap-inspired CLI framework for Elixir. Declarative command trees with
typed options, validation, env var fallback, lifecycle hooks, param groups,
shell completion, REPL mode, and in-process testing.

## Pages

- [Changelog](changelog.md)

- Getting Started
  - [Getting Started](getting_started.md)
  - [Concepts](concepts.md)

- Guides
  - [Options](options.md)
  - [Arguments](arguments.md)
  - [Subcommands](subcommands.md)
  - [Validation](validation.md)
  - [Constraints](constraints.md)
  - [Help and output](help_and_output.md)
  - [Lifecycle hooks](lifecycle_hooks.md)
  - [Shell completion](shell_completion.md)
  - [REPL mode](repl.md)
  - [Testing](testing.md)

- Cookbook
  - [Greeter: a single-command CLI](greeter.md)
  - [Devtool: nested subcommands with hooks and groups](devtool.md)

## Modules

- [Cheer](Cheer.md): A clap-inspired CLI argument parsing framework for Elixir.
- [Cheer.Command](Cheer.Command.md): Behaviour and macros for defining CLI commands.
- [Cheer.Command.Compiler](Cheer.Command.Compiler.md): Compile-time hook that materializes command metadata from module attributes
and validates command definitions.

- [Cheer.Command.DSL](Cheer.Command.DSL.md): Macros for declaring commands, arguments, options, subcommands,
lifecycle hooks, param groups, and validation.

- [Cheer.Completion](Cheer.Completion.md): Shell completion script generation for bash, zsh, fish, and PowerShell.
- [Cheer.Help](Cheer.Help.md): Auto-generates help text from command metadata.
- [Cheer.Repl](Cheer.Repl.md): Interactive REPL mode for a command tree.
- [Cheer.Router](Cheer.Router.md): Routes argv through the command tree and dispatches to the matched command.
- [Cheer.Test](Cheer.Test.md): In-process test runner for CLI commands.

