Skip to content

JorgeRosbel/gitzen

Repository files navigation

cli version Downloads/week Build Status License

Gitzen: AI-powered CLI Tool for Automatic Git Commit Message Generation

Gitzen is a command-line tool that uses AI to automatically generate concise and well-formatted git commit messages. It integrates with popular AI providers like Google Gemini and supports customizable templates and languages.

gitzen

CLI Git Latest Release GitHub stars GitHub open issues GitHub open pull requests


πŸ“š Table of Contents


πŸ“¦ Installation

You can install Gitzen globally using your preferred package manager:

npm install -g gitzen
# or
pnpm add -g gitzen
# or
yarn global add gitzen

Once installed globally, the gitzen command will be available anywhere in your system.

🧾 Gitzen Command Summary

Command Description Notes Requires Staging
gitzen start πŸš€ Initialize Gitzen setup and config Run once to configure the CLI ❌
gitzen commit πŸ’Ύ Generate commit message with AI from staged changes Requires staged files. Optional: -y to auto-accept, -e to edit βœ…
gitzen summarize 🧠 Summarize changes in staging/working dir Optional: -l <language> ❌
gitzen batch πŸ“‚ Group unstaged changes and commit in logical order Optional: -i to ignore gitzen.config.json ❌
gitzen review πŸ” Gives you a review of the code in the staging area Requires staged files. Optional: -l <language> βœ…

Love Gitzen? Support the project by buying me a coffee! β˜•οΈ
Ko‑fi

πŸ“ Project Structure

The following is the folder and file structure of the project:

gitzen/
β”œβ”€β”€ __tests__/
β”‚   β”œβ”€β”€ commitFlow.test.ts
β”‚   └── summarizerFlow.test.ts
β”‚
β”œβ”€β”€ .github/
β”‚   └── workflows/
β”‚       β”œβ”€β”€ lint_format.yaml
β”‚       β”œβ”€β”€ publish.yaml
β”‚       └── test.yaml
β”‚
β”œβ”€β”€ .husky/
β”œβ”€β”€ dist/
β”œβ”€β”€ docs/
β”œβ”€β”€ node_modules/
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ commands/
β”‚   β”œβ”€β”€ providers/
β”‚   β”œβ”€β”€ templates/
β”‚   β”œβ”€β”€ utils/
β”‚   └── index.ts
β”‚
β”œβ”€β”€ types.d.ts
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .npmignore
β”œβ”€β”€ .npmrc
β”œβ”€β”€ .prettierignore
β”œβ”€β”€ .eslintrc.json
β”œβ”€β”€ gitzen.config.json
β”œβ”€β”€ LICENSE
β”œβ”€β”€ package.json
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ prettier.config.mjs
β”œβ”€β”€ README.md
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ tsup.config.ts
└── vitest.config.ts