I don't only like using command line tools, I love writing my own too. Python's argparse is a nice built-in way to parse arguments, options and subcommands for custom CLI tools.
https://hamatti.org/posts/parse-command-line-arguments-with-argparse/
@hamatti I strongly recommend click. Every bit of organization I've ever wanted is nicely handled. It is to argparse what requests is to urllib. Not in stdlib, but worth it.
@mudbungie I really like Click too!
@mudbungie I also like the approach docopt has: https://hamatti.org/posts/documentation-driven-command-line-tools-in-python-with-docopt/
You design your interface through writing help documentation and docopt turns it into functionality.
@hamatti I haven't used that! Based on the read, it's a cool implementation, seems like a good idea that pushes developers to good outcomes. A little "magic," though?