What is Guaka?

Guaka – Smart and beautiful POSIX compliant CLI framework for Swift.

It helps you create modern and familiar CLI apps in the vein of widely used projects such as: Docker, Kubernetes, OpenShift, Hugo and more!.

Guaka is both a swift library and a command line application that help generate Guaka projects. Inspired by the amazing Cobra package from the Golang’s ecosystem.

Features:

  •  Easy to use API: Create a modern command line app in 2 lines.
  •  Super customizable Commands and Flags; customize the usage, the short message, long message, example and others
  •  POSIX-Compliant flags: Handles short and long flags (-f, –flag)
  •  Commands can have code sub-commands. Allowing you to create CLI apps similar to git git remote show
  •  Inheritable and non-inheritable flags. Create root flags that are inherited from all the command’s sub-commands
  •  Batteries included: With our Args, Colorizer, Env, FileUtils, Process, Prompt, Regex and Run cross-platform libraries you can be productive instantaneously.
  •  Automatically generates help message for your commands, sub-commands and flags
  •  Handles user input errors with useful help messages
  •  Customizable help and error messages
  •  Type safe flags: specify the type of the flag when defining it and Guaka will make sure the user inputs the correct flag type
  •  Custom flag support; you can define your own flag types
  •  Command and Flag deprecation; guaka will the user know that they are using deprecated command/flags
  •  Command and Flag aliasing; you can alias a command or a flag to different names
  •  Define code that runs before the command and after the command is executed
  •  Aptly documented: lots of documentation in code (we tried)
  •  Levenshtein distance for subcommand names

Overview