Git & Commits
Set up Husky pre-commit hooks, lint-staged, Commitlint and Commitizen in a Node.js or TypeScript project with one command.
Husky
Git hooks made easy — manages pre-commit, commit-msg, and pre-push hooks.
- ID:
husky - Category: Git
- Conflicts with: Lefthook
What it does
- Installs
huskyas a dev dependency - Adds a
preparescript (husky) - Creates
.husky/pre-commit— runsnpx lint-staged(ornpm run lint) - Creates
.husky/commit-msg— runsnpx commitlint --edit "$1"
Options
| Option | Type | Default | Description |
|---|---|---|---|
hooks | string[] | ["pre-commit", "commit-msg"] | Which hooks to configure |
withLintStaged | boolean | false | Use lint-staged in pre-commit |
Detection
Detected as already configured if .husky/pre-commit or .husky/_/husky.sh exists.
lint-staged
Run linters on staged files only — ensures only changed files are linted before commit.
- ID:
lint-staged - Category: Git
- Depends on: Husky
What it does
- Installs
lint-stagedas a dev dependency - Adds lint-staged configuration to
package.json - Configures glob patterns based on your stack (e.g.,
*.{ts,tsx}for TypeScript)
Commitlint
Enforce conventional commit messages — rejects commits that don't follow the Conventional Commits spec.
- ID:
commitlint - Category: Git
What it does
- Installs
@commitlint/cliand@commitlint/config-conventional - Creates
commitlint.config.mjs
Options
| Option | Type | Default | Description |
|---|---|---|---|
mode | "strict" | "loose" | "strict" | Strict adds extra rules for type-enum, subject-case, header-max-length |
Strict Mode Config
export default {
extends: ["@commitlint/config-conventional"],
rules: {
"type-enum": [
2,
"always",
[
"feat",
"fix",
"docs",
"style",
"refactor",
"perf",
"test",
"build",
"ci",
"chore",
"revert",
],
],
"subject-case": [2, "never", ["start-case", "pascal-case", "upper-case"]],
"header-max-length": [2, "always", 100],
},
};Commitizen
Interactive commit CLI — guides you through writing a conventional commit message.
- ID:
commitizen - Category: Git
What it does
- Installs
commitizenandcz-conventional-changelog - Adds
config.commitizentopackage.json - Adds a
commitscript
Lefthook
Fast Git hooks manager — a Rust-based alternative to Husky.
- ID:
lefthook - Category: Git
- Conflicts with: Husky
What it does
- Installs
lefthook - Creates
lefthook.ymlwith pre-commit and commit-msg hook configurations
git-cliff
Changelog generator — generates changelogs from Git history using conventional commits.
- ID:
git-cliff - Category: Git
What it does
- Installs
git-cliff - Creates
cliff.tomlconfiguration - Adds a
changelogscript
standard-version
Versioning + changelog — automates version bumps and CHANGELOG.md generation.
- ID:
standard-version - Category: Git
What it does
- Installs
standard-version - Adds
releaseandrelease:firstscripts
Module Catalogue
Browse all 50 DevFlow modules: Git hooks, ESLint, Prettier, Vitest, Playwright, GitHub Actions, Docker, Turborepo, Nx and semantic-release.
Code Quality
Set up ESLint, Prettier or Biome in a JavaScript or TypeScript project. DevFlow generates stack-aware flat configs for React, Vue and NestJS.