Check if a namespace on npm is being hogged.

Usage no npm install needed!

<script type="module">
  import squatter from 'https://cdn.skypack.dev/squatter';


squatter Build status for Squatter Build status for Squatter on Windows

Check if a namespace on npm is being hogged.


  • Find out if a package name is worth disputing.
  • Filter out low quality packages in tools (e.g. search).
  • Check the quality of your own packages.


npm install squatter --save


Get it into your program.

const squatter = require('squatter');

Check whether a given package name is being squatted.

squatter('foo').then((isSquatted) => {
    console.log(isSquatted);  // true
squatter('build-path').then((isSquatted) => {
    console.log(isSquatted);  // false


A heuristic is used to determine if a package is a squatter.

A squatter is a package that is not either exempt, useful, or high quality.

Packages are guilty until proven innocent.


A package is exempt (aka not a squatter) if it has at least one of:

  • A new version was published within the last 30 days
  • Significant download activity


A package is useful (aka not a squatter) if it has all of:

  • A README that is at least 100 characters long
  • Has a binary or is depended on by another package
  • Its version is 1.0.0 or higher


A package is high quality (aka not a squatter) if it has at least 80% of:



Returns a Promise for a boolean of whether the name is being hogged on npm, as determined by the algorithm.


Type: string
Example: build-path

Any valid npm package name.


See squatter-cli to use this on the command line.


See our contributing guidelines for more details.

  1. Fork it.
  2. Make a feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request.


MPL-2.0 © Seth Holladay

Go make something, dang it.