DEV Community

Nguyen Hoang Long
Nguyen Hoang Long

Posted on

I built two CLI tools that save me time on every project

Every project I start hits the same two friction points:

  1. I stage my changes and stare at the terminal thinking "how do I word this commit?"
  2. I clone a repo, copy .env.example to .env, run the app, and get a cryptic error because three keys are missing from .env.example.

So I spent a weekend building two small tools to fix them permanently.

gitmage — Stop writing commit messages

gitmage demo

npm install -g gitmage
git add .
gitmage
Enter fullscreen mode Exit fullscreen mode

It reads your staged diff, sends it to AI (Groq for free, Claude Haiku for ~$0.0001),
and presents 3 commit options you navigate with arrow keys.

Hit enter to commit. Hit R to regenerate. That's it.

Flags worth knowing:

  • --push — commit and push in one command
  • --lang=ja — commit message in Japanese (or vi, zh, ko, es...)
  • --dry-run — preview suggestions without committing
  • --provider=claude — force Claude even if Groq key is set

https://github.com/long260398/gitmage


envpatch — Never deploy with a broken .env again

envpatch demo
The workflow I used to do:

cp .env.example .env

manually compare files

hope I didn't miss anything

deploy

production error: "DATABASE_URL is not defined"

The workflow now:

envpatch init # creates .env from .env.example

fill in your values

envpatch check # confirms nothing is missing

And when a teammate adds a new key to .env.example:

envpatch sync # adds the missing keys to your .env automatically

Also works great in CI:

  • run: npx envpatch check # fail the build if .env is incomplete

https://github.com/long260398/envpatch


Both tools are TypeScript, published on npm, MIT licensed.
Would love feedback if you try them.

Top comments (0)