# Elide Developer Resources

> Read the Elide documentation from code and AI agents: llms.txt, Markdown pages, a search API with OpenAPI, and an MCP server that also takes bug and performance reports.

Every surface on this page is public and needs no API key. Responses allow any origin. Only the MCP server's
`submit_report` tool writes anything, and only after the developer agrees.

| Resource | URL |
| --- | --- |
| Documentation index for LLMs | [/llms.txt](https://elide.help/llms.txt) |
| Every page in one file | [/llms-full.txt](https://elide.help/llms-full.txt) |
| Docs API (OpenAPI 3.1) | [/openapi.json](https://elide.help/openapi.json) |
| API catalog (RFC 9727) | [/.well-known/api-catalog](https://elide.help/.well-known/api-catalog) |
| MCP server (Streamable HTTP) | `https://elide.help/mcp` |
| MCP server card | [/mcp/server-card](https://elide.help/mcp/server-card) |
| AI catalog | [/.well-known/ai-catalog.json](https://elide.help/.well-known/ai-catalog.json) |
| Sitemap | [/sitemap-index.xml](https://elide.help/sitemap-index.xml) |

## Markdown pages

Append `.md` to any page URL, or request the page with `Accept: text/markdown`:

```bash
curl https://elide.help/docs/installation.md
curl -H 'Accept: text/markdown' https://elide.help/docs/installation
```

HTML pages link to their Markdown version with `<link rel="alternate" type="text/markdown">` and a `Link` response
header. A missing page requested as Markdown returns a Markdown 404 that links to `/llms.txt`.

## Docs API

Base URL `https://elide.help`. Every operation is a `GET`.

| Operation | Request | Returns |
| --- | --- | --- |
| `getApiIndex` | `/api/v1` | Version, status, every operation, the rate limit and the versioning policy |
| `listPages` | `/api/v1/pages?section=toolchain` | Every page (or one section) with slug, URLs, title and description |
| `getPage` | `/api/v1/pages/{slug}` | One page with its headings and Markdown |
| `searchDocs` | `/api/v1/search?q=…&limit=…` | Ranked pages with a snippet and the best-matching heading |
| `getReportStatus` | `/api/v1/reports/{id}` | The status of a report sent with `submit_report`, and its issue URL once filed |

```bash
curl 'https://elide.help/api/v1/search?q=kotlin%20compiler&limit=3'
curl https://elide.help/api/v1/pages/installation
curl 'https://elide.help/api/v1/pages?section=api'
```

### Errors

Errors use `application/problem+json` (RFC 9457). Each has a stable `code` and a `resolution` that says what to
change.

| Status | `code` | When |
| --- | --- | --- |
| 400 | <span id="error-invalid-parameter">`invalid_parameter`</span> | `q` is missing or too long, `limit` is out of range, or `section` is unknown |
| 404 | <span id="error-page-not-found">`page_not_found`</span> | No page has the requested slug |
| 404 | <span id="error-report-not-found">`report_not_found`</span> | No report has the requested id |
| 404 | <span id="error-api-route-not-found">`api_route_not_found`</span> | No operation exists at the path |
| 405 | <span id="error-method-not-allowed">`method_not_allowed`</span> | The method is not `GET` or `HEAD`; see the `Allow` header |
| 429 | <span id="error-rate-limited">`rate_limited`</span> | More than 120 requests in 60 seconds; wait for `Retry-After` |

```json
{
  "type": "https://elide.help/developers#error-page-not-found",
  "title": "Page not found",
  "status": 404,
  "detail": "No documentation page has the slug \"instalation\".",
  "instance": "https://elide.help/api/v1/pages/instalation",
  "code": "page_not_found",
  "resolution": "List slugs with GET /api/v1/pages, or find a page with GET /api/v1/search?q=<terms>.",
  "documentation_url": "https://elide.help/developers#errors"
}
```

### Rate limits

The API and the MCP server allow 120 requests per 60 seconds per client IP. Every response carries
`RateLimit-Policy: "docs";q=120;w=60`. Over the limit, the response is a `429` with `Retry-After` and
`RateLimit: "docs";r=0;t=60`. For bulk reads, fetch [/llms-full.txt](https://elide.help/llms-full.txt) once.

### Versioning

The version is in the path: `/api/v1`. Changes within `v1` only add fields and operations. A breaking change ships as
`/api/v2`; `v1` then sends `Deprecation` and `Sunset` headers (RFC 9745, RFC 8594) for at least 180 days before it is
removed.

## MCP server

`https://elide.help/mcp` serves the docs over the Model Context Protocol with the Streamable HTTP transport and needs no
authentication. It is stateless, except that a `2025-06-18` or `2025-11-25` client that declares elicitation gets an
`Mcp-Session-Id` so `submit_report` can ask the developer for consent. Supported protocol versions: `2026-07-28`,
`2025-11-25`, `2025-06-18` and `2025-03-26`.

| Tool | Does |
| --- | --- |
| `search_docs` | Search pages, sections, code samples, release notes and documented gaps; returns slugs, headings, anchors and 0–1 scores. |
| `get_page` | Return one page as Markdown, by slug, path or URL. |
| `list_pages` | List pages with slugs and descriptions, optionally for one section. |
| `find_samples` | Find runnable code samples by query, language, tag or level, with their command and output. |
| `compare_runtimes` | Compare Elide with Node, Bun, Deno, CPython, Java or Kotlin; every claim cites its source and measurement. |
| `get_benchmarks` | Every published benchmark number with its command, machine, date and recording. |
| `check_known_issue` | Find open Elide issues and earlier reports that match a problem. |
| `preview_report` | Validate and redact an `elide.report/1` report, find duplicates, list missing evidence, and show the issue it would become. Stores nothing. |
| `submit_report` | Send a report after the developer agrees; it becomes a public issue in `elide-dev/elide`. |
| `report_status` | The status of a sent report: queued, filed, duplicate, declined or needs_human. |

Every page is also a resource with a `text/markdown` body, and the benchmark, comparison and compatibility data are
JSON resources under `https://elide.help/_agent/`. The `compare` and `migrate` prompts wrap the comparison and
migration workflows. Client config:

```json
{
  "mcpServers": {
    "elide-docs": { "type": "http", "url": "https://elide.help/mcp" }
  }
}
```

Claude Code:

```bash
claude mcp add --transport http elide-docs https://elide.help/mcp
```

### Reporting problems

Agents report Elide bugs, slow runs, unexpected behavior and missing features with the developer's consent:

1. `elide agent bug --kind <bug|perf|expectation|feature> --json` prints an `elide.report/1` skeleton with the Elide
   version and platform filled in. For a slow run, `elide agent perf --json [--baseline "<cmd>"] -- <cmd>` prints the
   measured `perf` block.
2. `check_known_issue` finds an existing issue; `submit_report` with `duplicate_of` adds a +1 to it.
3. `preview_report` redacts home paths, tokens, keys, emails and IP addresses, shows the issue body, and returns a
   `confirm_token` for an accepted report.
4. `submit_report` with that `confirm_token`, once the developer agrees, stores the report; headless runs such as
   `claude -p` and `codex exec` must use it, because they answer consent prompts themselves. Without a token,
   `submit_report` asks the developer through elicitation when the client supports it, or returns a `confirm_token` to
   pass on a second call.

Reports become public issues in `elide-dev/elide`, usually within the hour; `report_status` and
`GET /api/v1/reports/{id}` track them. Each client IP can send 10 report calls a minute and 20 reports an hour.

[Docs MCP server](https://elide.help/docs/mcp-docs) lists every tool, including the reporting tools, with prompts, resources and rate
limits; [Report a problem](https://elide.help/docs/agentic-reporting) covers report kinds and consent.

This server answers questions about Elide and takes reports. To give an agent Elide's build and run tools inside a
project, run `elide mcp`; see [Project MCP server](https://elide.help/docs/mcp).

## Elide in agents and scripts

Install the CLI:

```bash
curl -sSL --tlsv1.2 elide.sh | bash -s -     # Linux and macOS
brew install elide-dev/elide/elide           # Homebrew
```

[Installation](https://elide.help/docs/installation) covers Windows, packages and containers.

- [Elide for AI Agents](https://elide.help/docs/agents): non-interactive flags, commands that need a terminal, and exit codes.
- `elide help <topic> --format=markdown` prints any page of these docs from an installed `elide`.
- [CLI Reference](https://elide.help/docs/cli-references) lists every command.

Report problems with the MCP server's `submit_report` tool or on
[GitHub issues](https://github.com/elide-dev/elide/issues). For immediate help, join the
[Elide Discord](https://elide.dev/discord).
