Most of my projects come from something simple: I want a tool I can run instantly without thinking about it. There are dozens of password generators out there, but they all seem to come with something I do not actually want. Ads, web dependencies, browser plugins, sync features, cloud integrations, or huge interfaces that do far more than generate a string of random characters.
So I built my own: a tiny desktop password generator written in Python with Tkinter.
Below is a screenshot of the tool:

I wanted a password generator that was:
Basically, I wanted the old-school utility feel. A tiny box. A few checkboxes. A button that spits out a password. Done.
Modern tools tend to bury the simple case under a lot of features. I wanted the opposite, something that could have existed twenty years ago and would still do the job.
The interface is simple:
The character sets include:
Everything is built on standard library modules. No external GUIs, no dependencies beyond basic Python and Tkinter. If you can run a simple .pyw file, you can run this app.
I deliberately kept the layout simple. A single small window, a single generate button, and a copy-to-clipboard button. The window does not resize. The widget count is tiny. The code is written for clarity, not cleverness.
Tkinter was perfect for this. Lightweight, dependable, and available everywhere. Python was even better. Most of the time spent on this project was trimming things out so the program stayed small.
Honestly, mostly for me. But it is the kind of tool other developers tend to appreciate:
Small code invites modification.
Maybe:
Or maybe I will leave it exactly as it is.
gen-password is the kind of project I like to do between bigger ones. A tiny tool that solves a small need, teaches nothing dramatic, but reminds me why building software can be fun.
And sometimes that is enough.