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.
You can install Gitzen globally using your preferred package manager:
npm install -g gitzen
# or
pnpm add -g gitzen
# or
yarn global add gitzenOnce installed globally, the gitzen command will be available anywhere in your system.
| 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! βοΈ
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