Member-only story
Building Custom Shell Commands in Python: How I Automated My Workflow with argparse and subprocess
My journey into creating developer-friendly CLI tools using Python’s argparse and subprocess — and why it changed the way I script everything from system automation to DevOps tasks.
Custom shell commands don’t just make you feel like a wizard in the terminal — they are often the difference between clunky workflows and automation bliss. In this article, I’ll walk you through how I created a suite of custom shell tools using Python, powered by the combination of argparse for parsing input and subprocess for executing commands.
We’ll go deep — 9 sections, real-world examples, lots of code. Let’s do this.
1. Why Custom CLI Tools in Python?
When I found myself typing the same commands over and over — git, docker, rsync, you name it — I figured there had to be a better way. Instead of creating messy Bash scripts, I turned to Python. Why?
- Readable and maintainable
- Easier error handling
- Cross-platform
- Extensible with Python libraries
And with argparse, I could make the CLI interface feel native.
2. Setting Up the Basic CLI with argparse
Let’s start with the skeleton of a CLI tool:
import argparse
def main():
parser =…






