node package manager
Orgs are free. Discover, share, and reuse code in your team. Create a free org »



Give it the name of an npm module and get tons of up-to-date details about it. Useful for things like building static documentation sites that reference npm modules.

Turns out, getting JSON about a package from npm is super simple, for example just open this in a browser:

So, this module returns everything you can see there. Plus a few more goodies...

You'll notice that JSON includes the readme, which is awesome! But, if you actually want to render it into a template for a site somewhere you likely want to do a bit more with that readme.

So, what it does it this:

  • Optionally, removes the first header an attaches it to that module data as a title property (npm modules have a name, but no pretty, properly capitalized titles)
  • Hides anything in your readme between <!-- starthide --> and <!-- endhide --> comments you include in your markdown.
    • This is useful for, say, adding a link to the readme saying where the full docs site is.
    • Or hiding other stuff
  • You can also tell it to always hide sections with a certain title. For example, you may be doing this for lots of repos, to merge into a single site and you always want to hide a section in those readmes if they start with license.
  • Creates a property called toc that it built from the headings in your readme. it includes their text content, heading-level, as well as a link text that can be used to embed an anchor to that corresponding heading.
  • Turns all your headings into github-style headings where you hover and they're links to themselves.


npm install module-details


var getModuleDetails = require('module-details');
// you don't have to send it anything other than a callback 
getModuleDetails('slugger', function (err, moduleInfo) {
    // error or moduleInfo 
// available options and their default settings 
var options = {
    sectionsToRemove: [],
    hideFirstHeading: true
// you pass options as a second argument 
getModuleDetails('slugger', options, function (err, moduleInfo) {
    // error or moduleInfo 


If you like this follow @HenrikJoreteg on twitter.