---
section: cli-commands 
title: npm-search
description: Search for packages
---

# npm-search(1)

## Search for packages

### Synopsis

```bash
npm search [-l|--long] [--json] [--parseable] [--no-description] [search terms ...]

aliases: s, se, find
```

### Description

Search the registry for packages matching the search terms.  `npm search`
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. 

Additionally, using the `--searchopts` and `--searchexclude` options paired with
more search terms will respectively include and exclude further patterns.  The
main difference between `--searchopts` 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 `.npmrc` for
default search filtering behavior. 

Search also allows targeting of maintainers in search results, by prefixing
their npm username with `=`. 

If a term starts with `/`, then it's interpreted as a regular expression and
supports standard JavaScript RegExp syntax.  A trailing `/` will be ignored in
this case. ( Note that many regular expression characters must be escaped or
quoted in most shells.) 

### A Note on caching

### Configuration

#### description

* Default: true
* Type: Boolean

Used as `--no-description`, disables search matching in package descriptions and
suppresses display of that field in results. 

#### json

* Default: false
* Type: Boolean

Output search results as a JSON array. 

#### parseable

* Default: false
* Type: Boolean

Output search results as lines with tab-separated columns. 

#### long

* Default: false
* Type: Boolean

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. 

#### searchopts

* Default: ""
* Type: String

Space-separated options that are always passed to search. 

#### searchexclude

* Default: ""
* Type: String

Space-separated options that limit the results from search. 

#### searchstaleness

* Default: 900 (15 minutes)
* Type: Number

The age of the cache, in seconds, before another registry request is made. 

#### registry

 * Default: https://registry.npmjs.org/
 * Type: url

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, `npm search` will default to that registry when searching.  Pass a
different registry url such as the default above in order to override this
setting. 

### See Also

* [npm registry](/using-npm/registry)
* [npm config](/cli-commands/npm-config)
* [npmrc](/configuring-npm/npmrc)
* [npm view](/cli-commands/npm-view)
