Open Source CLI Tool
Open Source CLI Tool
A Go CLI that solves a real pain: batch renaming + file organization in one binary. It sorts the mess in your download folder by type and date, and supports templated rename rules.
Why Go for a CLI
The choice was purely pragmatic:
- Single binary distribution — users don't install any runtime
- Fast compilation — pleasant iteration loop
- Enough in the stdlib —
flag,path/filepath,osout of the box
Core Usage
# Group files by extension
organize --mode classify ~/Downloads
# Template rename: {date}_{name}.{ext}
organize --rename '{date}_{name}.{ext}' --dry-run ~/Downloads
--dry-run is the golden habit of CLI tools: show what will happen before it happens. This one flag turns the tool from a "dangerous script" into a "trusted assistant".
Design Notes
- Error handling: each failing file is reported individually, the run continues
- Safety: existing files are never overwritten by default; conflicts get a suffix
- Testability: core logic decoupled from I/O; unit test coverage at 90%
What Open Source Gave Back
The project briefly hit the front page of Hacker News, earning a few hundred stars and a stream of high-quality issues. The real takeaway wasn't the numbers — it was learning how to maintain a tool used by strangers: clear changelogs, backward compatibility, and taking every bug report seriously.
Open source is the best business card an indie developer can have — it speaks for you.