Logo

Small, cross-platform CLI for builders.

CozyUtils

CozyUtils is a utility package designed to streamline the tedious and repetitive tasks I find myself doing on almost every project. It streamlines asset workflows and helps generate Git commit and PR messages.

SVG to TSX

Convert SVGs into React components, normalize attributes, and generate a clean export index.

Image Export Index

Scan a directory and emit named exports for image assets in a single index file.

Commit & PR Messages

Generate commit and PR messages from git diffs using Gemini models, with clipboard support.

Cross-platform Builds

Target macOS (Intel/Apple Silicon), Linux, and Windows with size-focused release builds.

Quick install

./install.sh

cargo build --release
# binary: target/release/cozyutils

Usage

./cozyutils -svg2tsx ./icons --dry-run
./cozyutils -img2export ./icons ./index.ts
./cozyutils -prmsg --base=origin/dev --clipboard

Commands

-svg2tsx <directory> [--ext=.svg] [--dry-run] [--force] [--no-move]
-img2export <directory> <output_file> [--ext=.svg,.png] [--dry-run]
-cmsg [--out=path] [--model=gemini-3-flash-preview] [--clipboard] [--clipboard-only] [--commit]
-prmsg [--base=origin/dev] [--out=path] [--model=gemini-3-flash-preview] [--clipboard] [--clipboard-only] [--setup]

Gemini API key setup

The PR and commit message commands read the API key from the `GEMINI_API_KEY` environment variable, or from `~/.cozyutils/config.json`. You can create the config with:

./cozyutils -prmsg --setup --key=YOUR_KEY