Git hooks made easy
Husky can prevent bad commit, push and more 🐶 woof!
This is a fork of the original husky, which enables interactive git hooks, at the cost of compatibility with gui clients.
npm install husky-interactive --save-dev
yarn add husky-interactive --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-interactive --save-dev and edit
package.json. Husky-interactive will automatically migrate
npm uninstall husky-interactive
yarn remove husky-interactive
Debug hooks easily
If you need to debug hooks, simply use
npm run <script-name>. For example:
npm run precommit
Git GUI clients support
Working with multiple version of Node
nvm is installed, husky-interactive will try to use the
current installed Node version or use the project
Tip to use the system-installed version of node,
nvm provides a
Accessing Git params
Git params can be found in
GIT_PARAMS environment variable.
accessing the initiating Git command
The command that initiated the execution of the hook can be found in the
GIT_COMMAND environment variable.
Setting a different log level
By default, husky-interactive 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.
Git submodule and subtree support
- pkg-ok - Prevents publishing modules with bad paths
- please-upgrade-node - Show a message to upgrade Node instead of a stacktrace in your CLIs
- react-fake-props - Fake props for your React tests