docs: def add_func(self, callback, names, *args):
          """Adds a command to the CLI - specify args as you would to
          argparse.ArgumentParser.add_argument()
          """
  
          if isinstance(names, list):
              for name in names:
                  self.add_func(callback, name, *args)
                  self.aliases[name] = names
          elif isinstance(names, str):
              if names in self.cmds or names in self.clis:
                  raise ValueError('Attempting to overwrite cmd or extern CLI: %s' % names)
              parser = argparse.ArgumentParser(prog=names)
              for cmd, spec in args:
                  parser.add_argument(cmd, **spec)
              self.cmds[names] = (callback, parser)
          else:
              raise TypeError("Command must be specified by str name or list of names")