There should be some way of creating an ArgumentParser object from a function signature, annotations and/or docstring.
Something like that you can call autoargs on a function (eventually as a decorator) and you should be able to get a correct CLI for a given function in a few lines.