# LPM CLI developer resources (/docs/developer-resources)



Use this page to find developer and agent entry points for LPM CLI and `cli.lpm.dev`.

LPM CLI is a local executable, not an HTTP API. The OpenAPI file on this site describes only the public documentation search API. It does not describe the LPM.dev Registry API.

```bash
curl -sS https://cli.lpm.dev/openapi.json
curl -sS https://cli.lpm.dev/.well-known/api-catalog
curl -sS https://cli.lpm.dev/llms.txt
```

## Machine-readable entry points [#machine-readable-entry-points]

| Resource           | URL                                                                            | Use                                                                                                     |
| ------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |
| OpenAPI 3.1        | [`/openapi.json`](/openapi.json)                                               | Discover the public `cli.lpm.dev` documentation search API.                                             |
| API catalog        | [`/.well-known/api-catalog`](/.well-known/api-catalog)                         | Discover APIs through an RFC 9727 linkset.                                                              |
| Agent index        | [`/llms.txt`](/llms.txt)                                                       | Find documentation pages and primary machine-readable resources.                                        |
| Full documentation | [`/llms-full.txt`](/llms-full.txt)                                             | Load the complete LPM CLI documentation corpus as markdown.                                             |
| Markdown page      | Append `.mdx` to a documentation URL                                           | Load one page as markdown. For example, use [`/docs/packages/install.mdx`](/docs/packages/install.mdx). |
| Agent Skills       | [`/.well-known/agent-skills/index.json`](/.well-known/agent-skills/index.json) | Discover installable LPM CLI instructions for agents.                                                   |
| Sitemap            | [`/sitemap.xml`](/sitemap.xml)                                                 | Find canonical HTML documentation pages.                                                                |

HTML documentation pages also support content negotiation. Send `Accept: text/markdown` to receive the markdown version.

```bash
curl -sS -H 'Accept: text/markdown' https://cli.lpm.dev/docs/packages/install
```

## LPM CLI documentation search API [#lpm-cli-documentation-search-api]

The search endpoint returns public documentation pages, headings, and text fragments. It does not require authentication.

```bash
curl -sS --get https://cli.lpm.dev/api/v1/search \
  --data-urlencode 'query=install' \
  --data-urlencode 'limit=10'
```

Each result contains an `id`, `url`, `type`, and `content` value. A result can also contain `breadcrumbs`. The `type` value is `page`, `heading`, or `text`.

Use [`/openapi.json`](/openapi.json) as the authoritative HTTP contract for this endpoint.

## Versioning and deprecation [#versioning-and-deprecation]

The API version is part of each stable URL. The current stable version is `v1`.

Compatible changes can add response fields or optional parameters to `v1`. An incompatible change uses a new `/api/vN` path.

The unversioned `/api/search` alias was deprecated on August 24, 2026. Use `/api/v1/search` for new integrations.

The alias returns the [RFC 9745](https://www.rfc-editor.org/rfc/rfc9745) deprecation date and a link to this policy.

```http
Deprecation: @1787529600
Link: <https://cli.lpm.dev/docs/developer-resources#versioning-and-deprecation>; rel="deprecation"; type="text/html"
```

A deprecated version remains available for at least 12 months after its `Deprecation` date.

If removal is scheduled, responses include an [RFC 8594](https://www.rfc-editor.org/rfc/rfc8594) `Sunset` header at least six months before removal. This page will include migration steps.

## Rate limits [#rate-limits]

The search API uses a fixed quota of 60 `GET` requests per 60 seconds. The quota applies to each client network source.

The versioned route and the deprecated alias share the same quota. Each accepted `GET` request consumes one quota unit.

Each running site process tracks its own quota. Use the fields on each response as the current throttling guidance.

Responses include the current `RateLimit` and `RateLimit-Policy` fields from `draft-ietf-httpapi-ratelimit-headers-11`. The IETF document is an active Internet-Draft.

```http
RateLimit-Policy: "docs-search";q=60;w=60
RateLimit: "docs-search";r=42;t=30
```

The `r` parameter is the available quota. The `t` parameter is the effective window in seconds.

Responses also include `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` for clients that use the legacy fields.

If the quota is exhausted, the API returns HTTP `429` with an RFC 9457 response. The response includes `Retry-After` and recovery details.

```json
{
  "type": "https://iana.org/assignments/http-problem-types#quota-exceeded",
  "title": "Too many requests",
  "status": 429,
  "detail": "The documentation search quota is exhausted.",
  "instance": "/api/v1/search",
  "code": "RATE_LIMIT_EXCEEDED",
  "message": "The documentation search quota is exhausted.",
  "resolution": "Wait 30 seconds, then retry the request.",
  "documentation_url": "https://cli.lpm.dev/docs/developer-resources",
  "violated-policies": ["docs-search"]
}
```

## JSON errors [#json-errors]

API errors use [RFC 9457 Problem Details](https://www.rfc-editor.org/rfc/rfc9457). Each error also contains a stable `code`, a `message`, a `resolution`, and a `documentation_url`.

```json
{
  "type": "about:blank",
  "title": "API route not found",
  "status": 404,
  "detail": "No API route exists at /api/not-a-route.",
  "instance": "/api/not-a-route",
  "code": "API_ROUTE_NOT_FOUND",
  "message": "No API route exists at /api/not-a-route.",
  "resolution": "Read https://cli.lpm.dev/openapi.json and use a documented path.",
  "documentation_url": "https://cli.lpm.dev/docs/developer-resources"
}
```

## Authentication [#authentication]

The documentation search API is public. It does not accept an LPM CLI token.

For package and registry authentication, read [LPM CLI authentication](/docs/infra/authentication). For local credentials and token rotation, read [`lpm login`](/docs/infra/login) and [`lpm token-rotate`](/docs/infra/token-rotate).

## MCP and Agent Skills [#mcp-and-agent-skills]

Use [`lpm mcp`](/docs/reference/mcp-servers) to connect supported editors to the LPM.dev Registry MCP server. This MCP server gives an agent registry search, package details, install hints, and audit tools.

Use [LPM CLI Agent Skills](/docs/reference/ai-agent-skills) for reusable instructions. LPM CLI can install skills from packages, Git repositories, URLs, and local files.

## Webhook development [#webhook-development]

Use [`lpm tunnel`](/docs/infra/tunnel#receive-webhooks-on-localhost) to expose a local callback URL. The tunnel can capture and replay webhook requests during development.

The `cli.lpm.dev` documentation site does not receive product webhooks.

## See also [#see-also]

* [LPM CLI command index](/docs/commands)
* [LPM CLI configuration reference](/docs/reference)
* [LPM.dev Registry and Pro](/docs/lpm-dev-and-pro)
