Build Your Own Python CLI Tool with argparse

Passionate Software Developer | Crafting clean code and elegant solutions
Command-line tools are everywhere: git, pip, ls, npm... What if you could build your own?
In this post, you'll learn how to create a custom Python CLI app using argparse. This lets users run your script like a real command:
bashCopyEditpython tool.py greet --name Alice
Let’s build a CLI tool that supports multiple commands like:
greetsomeoneaddnumbersconvertCelsius to Fahrenheitversionoutput
🎯 Step 1: Setup the Script
pythonCopyEditimport argparse
parser = argparse.ArgumentParser(
description="A simple multi-purpose CLI tool in Python"
)
subparsers = parser.add_subparsers(dest="command")
👋 Command: Greet
pythonCopyEditgreet_parser = subparsers.add_parser("greet", help="Say hello to someone")
greet_parser.add_argument("--name", type=str, required=True, help="Name of the person")
➕ Command: Add
pythonCopyEditadd_parser = subparsers.add_parser("add", help="Add two numbers")
add_parser.add_argument("x", type=int)
add_parser.add_argument("y", type=int)
🌡️ Command: Convert Celsius to Fahrenheit
pythonCopyEditconvert_parser = subparsers.add_parser("convert", help="Convert Celsius to Fahrenheit")
convert_parser.add_argument("celsius", type=float)
🧪 Command: Version
pythonCopyEditsubparsers.add_parser("version", help="Show version info")
🧠 Step 2: Handle Commands
pythonCopyEditargs = parser.parse_args()
if args.command == "greet":
print(f"Hello, {args.name}!")
elif args.command == "add":
print(f"Sum: {args.x + args.y}")
elif args.command == "convert":
fahrenheit = (args.celsius * 9/5) + 32
print(f"{args.celsius}°C = {fahrenheit}°F")
elif args.command == "version":
print("MyCLI Tool v1.0.0")
else:
parser.print_help()
🚀 Usage Examples
bashCopyEditpython tool.py greet --name Alice
python tool.py add 5 7
python tool.py convert 30
python tool.py version
💡 Bonus Tips
Add
choicesto restrict inputAdd
defaultvaluesUse
argparse.FileType()to load filesWrap this in
if __name__ == "__main__":for reusability
🧵 Wrapping Up
The argparse library turns your Python scripts into professional-looking CLI apps — no need for external dependencies.
✅ It’s ideal for automation, dev tools, data pipelines, or just leveling up your script UX.
Want to make this installable via pip, or upgrade to Typer/Click later? Let me know and we’ll build version 2.0!




