Git & Commits
Add Husky pre-commit hooks, lint-staged, Commitlint, Commitizen, and standard-version to your project automatically. Enforce conventional commits and run linters on staged files with one command: npx create-devflow.
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 40+ DevFlow modules: Husky, lint-staged, Commitlint, ESLint, Prettier, Biome, Vitest, Jest, Playwright, GitHub Actions, GitLab CI, Docker, Turborepo, Nx, semantic-release, and more. One command to set up any of them.
Code Quality
Automatically set up ESLint, Prettier, or Biome in any JavaScript/TypeScript project. DevFlow generates stack-aware configs for React, Next.js, Vue, NestJS, and plain TypeScript — no manual configuration needed.