Skip to content



  • Fixes to some formatting issues
  • Fixed issue with some types being considered collections when they shouldn't be
  • Decorators now get inherited at execution, rather than declaration time


  • Rewirte of core components: Context, Command, Param, ParamBuilder, etc...
  • Removed the CLI() object. @arc.command() can now handle subcommands.
  • Renamed arc callbacks to arc decorators
  • Using argparse to perform parsing instead of a custom (and limited) solution
  • Added Type Middleware


  • Shell Completions now enabled with arc.configure()
  • Callbacks are no longer required to yield to be valid
  • Improved some error messages
  • Fixed a bug to do with callback error handling
  • Added error handlers as syntatic sugar for callback error handling
  • Add User and Group type


  • Added the ability to gather input from environment variables or by prompting the user directly.
  • Added for a more elegant selection menu
  • Implemented Shell Completions for Bash, Zsh, and Fish. CURRENTLY EXPERIMENTAL
  • Fixed bug where specifying the version for the CLI would cause the application to crash


  • Fixed bug with IoWrapper


  • Fixed command debug utilites


  • Added global cli options
  • Changed the implementation for gathering State so now it's consistent across commands, cli.options and callbacks



  • typing.Optional[T] and default value of None now work identically, and have the expected behavior.


First Version where I decided to keep better track of changes version-to-version. So there's no history before this :(