Git hooks made easy
Husky can prevent bad commit, push and more 🐶 woof!
npm install husky --save-dev
// Edit package.json"scripts":"precommit": "npm test""prepush": "npm test""...": "..."
git commit -m "Keep calm and commit"
Existing hooks aren't replaced and you can use any Git hook.
If you're migrating from
ghooks, simply run
npm uninstall ghooks --save-dev && npm install husky --save-dev and edit
package.json. Husky will automatically migrate
npm uninstall husky --save-dev
If you need to debug hooks, simply use
npm run <script-name>. For example:
npm run precommit
In the case of
nvm, husky will try to use the
default installed version or use the project
Git params can be found in
GIT_PARAMS environment variable.
By default, husky will run scripts using
--silent to make the output more readable. If you want to override this, simply pass a different log level to your scripts:
"precommit": "npm run some-script -q"
-q/--quiet is equivalent to
--loglevel warn which is npm default log level.
For Yarn, you currently need to pass
--force to be sure that hooks are going to be installed (
yarn add husky --dev --force). You can also manually install hooks using
MIT - Typicode 🌵