nuǝW pǝuoᴉʇᴉsoԀ ʎlǝʌᴉʇɐƃǝN


    0.1.5 • Public • Published


    Make sure your NPM modules have licenses.

    licenz logo


    Make sure you have Node.js and NPM installed. Then, run the following to use licenz system-wide:

    npm install -g licenz

    Alternatively, install it as a development dependency in your current module:

    npm install licenz --save-dev



    licenz ./path/to/module/

    Run licenz --help for additional help.

    White-listing Licenses

    Does your project’s dependencies have licenses that you know are acceptable? Tell licenz they’re okay by using the --licenses flag:

    licenz --licenses "Apache 2, WTFPL, Public Domain" ./path/to/module

    White-listing Modules

    A are dependencies licenses undetectable by licenz? No problem! Use the --modules flag to make them pass:

    licenz --modules "module-1@1.0.0, module2@^2.1.0" ./path/to/module


    Licenz exports a single function which you can require:

    var licenz = require('licenz');
    licenz(options, function(err, res) {
      if (err) {

    It expects two optional arguments:

    • options (object): Hash of configurations for licenz. The following keys are used:

      • path (string): Path to the directory to scan. Example:

        var options = {
          path: './path/to/module'
      • whitelistLicenses (array): List of licenses to accept. Example:

        var options = {
          whitelistLicenses: ['My Cool License', 'My Other License']
      • whitelistModules (object): List of modules to accept. Use module names as the keys and corresponding semver-compatible versions or ranges as the values:

        var options = {
          whitelistModules: {
            'my-module': '^2.3.0',
            'my-other-module': '0.5.2',
            'my-best-module': '~8.0.0'
    • callback (function): Node-style callback function. The “response” is an array of unlicensed module objects. A possible way of dealing with it:

      licenz(options, function(err, res) {
        if (err) {
          return console.error(err);
        if (res.length) {
          res.forEach(function(module) {
            console.log('Unlicensed: ' + + '@' + module.version);
        } else {
          console.log('All licensed!');

      In this example, res would be populated with these objects:

        licenses: 'UNKNOWN',
        licenseFile: undefined,
        name: 'unlicensed-module'
        repository: '',
        version: '1.0.0'

    licenz also supports a Promise interface:

    licenz(options).then(function(results) {
    }).catch(function(error) {

    Integrating With Pre-Commit

    Integrating licenz with git’s pre-commit hook is easy using pre-commit. Make sure both pre-commit and licenz are installed (npm i pre-commit licenz --save-dev). Then, add a licenz to a script in your package.json:

    "scripts": {
      "validate": "licenz",

    Then, create a precommit key and add the script:

    "precommit": [


    npm i licenz

    DownloadsWeekly Downloads






    Last publish


    • cdaringe
    • dylancwood
    • jwtlake
    • mstone121
    • nidev
    • rsskmr
    • ruwang
    • swashcap