AI Tools·
Creating my own CLI Tool - Towles Tool
Info about creating my own CLI tool and best practices

Starting this post as the kick off of again re-creating towles-tool
, my public best practices or DIY repo. I've had private repos for years with my alias or helper scripts and notes but never made them public. After a few conversations with my brother Patrick and my wife, I decided to make this one public.
Why Python?
I wanted to use Python instead of Typescript for this project for a few reasons:
- At work, I am the Principal Architect on the Cloud AI services team at GE Aerospace and we use Python for most of our AI/ML work. And while i'm a super fan of Typescript and Anthony Fu, Daniel Roe, Evan you and Boshen have done an amazing job with the ecosystem, Python has a few advantages for AI/ML work:
- More popular in the AI/ML community - Python is the most popular language for AI/ML and has a large community of developers and researchers.
- Better support for scientific computing - Python has a number of libraries for scientific computing that are not available in other languages.
- uv An extremely fast Python package and project manager, written in Rust.
- Its like Poetry but faster. It has a number of features that make it a great choice for managing Python projects.
- previously i tried poetry and pyenv virtualenv but uv is way easier to use and faster.
- the number of peers that have python as their primary language means getting them to install node and npm is a barrier to entry.
- While i should likely use rust like my brother patrick would perfer, python still has the edge when it comes to AI/ML work.
Why a CLI tool?
I wanted to create a CLI tool for a few reasons:
- I use the command line a lot and wanted to create a tool that would make my life easier.
- I already have a number of alias and helper scripts that I use on a regular basis but in typescript or bash.
- I already use python for a number of tasks,
- i'll find a fzf or fzf equivalent for python cli list like i'm use in my typescript cli tools.
First Steps
After pushing this repo the first steps are the following:
- create github issues
- create pypi project
- publish first version
- setup github actions for ci/cd
- test and document usage
- create version cli commands
- publish first version
Release
The repo is now public:
https://github.com/ChrisTowles/towles-tool
Excited to get started on this journey and share my best practices with the world. Stay tuned for more updates!