# Introduction

Every program should have autocompletion in the shell to enhance user experience and productivity. crazy-complete solves this task by generating robust and reliable autocompletion scripts.

## Key Features

- Generates Robust Scripts – Ensures that the autocompletion scripts are reliable and efficient.

- Multi-Shell Support – Works seamlessly with Bash, Fish, and Zsh, providing flexibility across different environments.

- Minimal Dependencies – The only external dependency is `PyYAML`.

- Configurable and Extendable – The generated autocompletion scripts are highly configurable and can be easily extended to suit your specific needs.

- Standalone Scripts – The generated scripts are standalone and do not depend on modified environments, unlike some alternatives such as `argcomplete`.

- Easy to Use – Simple and intuitive to set up, allowing you to quickly add autocompletion functionality to your programs.

With crazy-complete, adding autocompletion to your programs has never been easier. Try it out and see the difference it makes in your command-line applications!

Contents:

- Synopsis
- Options
- Crazy-Complete Documentation
  - Command Definition
  - Option Definition
  - Positional Arguments
  - Subcommands
  - Best Practices
- Completion Commands
  - none
  - integer
  - float
  - combine
  - file
  - directory
  - choices
  - value_list
  - exec
  - exec_fast
  - exec_internal
  - range
  - signal
  - hostname
  - process
  - pid
  - command
  - user
  - group
  - service
  - variable
  - environment