Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including ghooks with all npm packages installed. Try it out:

var ghooks = require("ghooks")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

ghooks v2.0.2

Simple git hooks


version travis build AppVeyor codecov coverage Dependencies status Dev Dependencies status

MIT License downloads semantic-release Commitizen friendly

Simple git hooks


npm install ghooks --save-dev

It is not advised to install ghooks as a production dependency, as it will install git hooks in your production environment as well. Please install it under the devDependencies section of your package.json.

Please also note, that it is absolutely not advised to install ghooks globally. To work as expected, make it a development dependency of your project(s).


Add a config.ghooks entry in your package.json and simply specify which git hooks you want and their corresponding commands, like the following:

  "config": {
    "ghooks": {
      "pre-commit": "gulp lint",
      "commit-msg": "validate-commit-msg",
      "pre-push": "make test",
      "post-merge": "npm install",
      "post-rewrite": "npm install",

Note: The hooks' working directory is relative to the git root (where you have your .git directory). This means that if your package.json is in a subdirectory of your git repo, you'll need to cd into the directory before running any npm scripts. E.g.:

"pre-commit": "cd path/to/folder && npm run test"


One of the last things you want is to raise the barrier to contributing to your open source project. So Andreas Windt developed the opt-cli package to allow you to turn your hooks into opt-in/out scripts. See this project's package.json for an example of how to do that.

All documented hooks are available:

  • applypatch-msg
  • pre-applypatch
  • post-applypatch
  • pre-commit
  • prepare-commit-msg
  • commit-msg
  • post-commit
  • pre-rebase
  • post-checkout
  • post-merge
  • pre-push
  • pre-receive
  • update
  • post-receive
  • post-update
  • pre-auto-gc
  • post-rewrite

Common Issues


This module is heavily inspired by __@nlf__'s precommit-hook


Huge thanks to everyone listed here!


This software is licensed under the MIT license

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free