# lpm search (/docs/packages/search)



```bash
lpm search <query> [--limit <N>]
```

Searches the registry that matches your query:

* `@lpm.dev/...` queries the LPM.dev Registry catalogue.
* `@scope/...` queries follow the current project's `.npmrc` `@scope:registry=...` mapping when one exists.
* Everything else searches the current project's default `.npmrc` registry, or npmjs.org when no override is present.

`lpm search` still returns a single normalized JSON envelope, but the backing search API depends on where the query routes.

Human output is compact: each result prints the package name, an indented description when one exists, and a metadata line such as `latest 1.2.3 · quality 91 · ecosystem js`. Use `--json` when you need the full routed search envelope, including fields such as `downloadCount` and distribution mode.

## Examples [#examples]

```bash
lpm search react                    # npmjs.org (or project .npmrc default registry)
lpm search @my-co/internal          # project .npmrc scoped registry
lpm search @lpm.dev/highlight       # force LPM.dev Registry catalogue search
lpm search "react hooks" --json     # structured output
```

## Flags [#flags]

| Flag          | Effect                                         |
| ------------- | ---------------------------------------------- |
| `--limit <N>` | Maximum results to return (1–20, default `20`) |

Plus the [global flags](/docs/commands#global-flags) — `--json` is useful for piping into other tools.

## See also [#see-also]

* [`lpm info`](/docs/packages/info) — full metadata for a single package through the same routing rules
* [`lpm quality`](/docs/packages/quality) — quality report
