<!doctype html> <html> <title>npm-search</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="../../static/style.css"> <link rel="canonical" href="https://www.npmjs.org/doc/cli/npm-search.html"> <script async=true src="../../static/toc.js"></script> <body> <div id="wrapper"> <h1><a href="../cli/npm-search.html">npm-search</a></h1> <p>Search for packages</p> <h2 id="synopsis">SYNOPSIS</h2> <pre><code>npm search [-l|--long] [--json] [--parseable] [--no-description] [search terms ...] aliases: s, se, find</code></pre><h2 id="description">DESCRIPTION</h2> <p>Search the registry for packages matching the search terms. <code>npm search</code> performs a linear, incremental, lexically-ordered search through package metadata for all files in the registry. If color is enabled, it will further highlight the matches in the results.</p> <p>Additionally, using the <code>--searchopts</code> and <code>--searchexclude</code> options paired with more search terms will respectively include and exclude further patterns. The main difference between <code>--searchopts</code> and the standard search terms is that the former does not highlight results in the output and can be used for more fine-grained filtering. Additionally, both of these can be added to <code>.npmrc</code> for default search filtering behavior.</p> <p>Search also allows targeting of maintainers in search results, by prefixing their npm username with <code>=</code>.</p> <p>If a term starts with <code>/</code>, then it's interpreted as a regular expression and supports standard JavaScript RegExp syntax. A trailing <code>/</code> will be ignored in this case. (Note that many regular expression characters must be escaped or quoted in most shells.)</p> <h3 id="a-note-on-caching">A Note on caching</h3> <h2 id="configuration">CONFIGURATION</h2> <h3 id="description">description</h3> <ul> <li>Default: true</li> <li>Type: Boolean</li> </ul> <p>Used as <code>--no-description</code>, disables search matching in package descriptions and suppresses display of that field in results.</p> <h3 id="json">json</h3> <ul> <li>Default: false</li> <li>Type: Boolean</li> </ul> <p>Output search results as a JSON array.</p> <h3 id="parseable">parseable</h3> <ul> <li>Default: false</li> <li>Type: Boolean</li> </ul> <p>Output search results as lines with tab-separated columns.</p> <h3 id="long">long</h3> <ul> <li>Default: false</li> <li>Type: Boolean</li> </ul> <p>Display full package descriptions and other long text across multiple lines. When disabled (default) search results are truncated to fit neatly on a single line. Modules with extremely long names will fall on multiple lines.</p> <h3 id="searchopts">searchopts</h3> <ul> <li>Default: ""</li> <li>Type: String</li> </ul> <p>Space-separated options that are always passed to search.</p> <h3 id="searchexclude">searchexclude</h3> <ul> <li>Default: ""</li> <li>Type: String</li> </ul> <p>Space-separated options that limit the results from search.</p> <h3 id="searchstaleness">searchstaleness</h3> <ul> <li>Default: 900 (15 minutes)</li> <li>Type: Number</li> </ul> <p>The age of the cache, in seconds, before another registry request is made.</p> <h3 id="registry">registry</h3> <ul> <li>Default: <a href="https://registry.npmjs.org/">https://registry.npmjs.org/</a></li> <li>Type: url</li> </ul> <p>Search the specified registry for modules. If you have configured npm to point to a different default registry, such as your internal private module repository, <code>npm search</code> will default to that registry when searching. Pass a different registry url such as the default above in order to override this setting.</p> <h2 id="see-also">SEE ALSO</h2> <ul> <li><a href="../misc/npm-registry.html">npm-registry(7)</a></li> <li><a href="../cli/npm-config.html">npm-config(1)</a></li> <li><a href="../misc/npm-config.html">npm-config(7)</a></li> <li><a href="../files/npmrc.html">npmrc(5)</a></li> <li><a href="../cli/npm-view.html">npm-view(1)</a></li> </ul> </div> <table border=0 cellspacing=0 cellpadding=0 id=npmlogo> <tr><td style="width:180px;height:10px;background:rgb(237,127,127)" colspan=18> </td></tr> <tr><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)"> </td><td style="width:40px;height:10px;background:#fff" colspan=4> </td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4> </td><td style="width:40px;height:10px;background:#fff" colspan=4> </td><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)"> </td><td colspan=6 style="width:60px;height:10px;background:#fff"> </td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4> </td></tr> <tr><td colspan=2 style="width:20px;height:30px;background:#fff" rowspan=3> </td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3> </td><td style="width:10px;height:10px;background:#fff" rowspan=3> </td><td style="width:20px;height:10px;background:#fff" rowspan=4 colspan=2> </td><td style="width:10px;height:20px;background:rgb(237,127,127)" rowspan=2> </td><td style="width:10px;height:10px;background:#fff" rowspan=3> </td><td style="width:20px;height:10px;background:#fff" rowspan=3 colspan=2> </td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3> </td><td style="width:10px;height:10px;background:#fff" rowspan=3> </td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3> </td></tr> <tr><td style="width:10px;height:10px;background:#fff" rowspan=2> </td></tr> <tr><td style="width:10px;height:10px;background:#fff"> </td></tr> <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr> <tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr> </table> <p id="footer">npm-search — npm@6.5.0</p>