Skip to content

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.

On this page

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.

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

Markdown pages

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

Terminal
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.

OperationRequestReturns
getApiIndex/api/v1Version, status, every operation, the rate limit and the versioning policy
listPages/api/v1/pages?section=toolchainEvery 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
Terminal
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'

The default search remains local structural search over current English documentation. Hosted search is opt-in on deployments with a published search manifest and a configured provider. It never silently substitutes local results for hosted results.

modeMatches
localCurrent English pages and sections using the shared local ranking
bm25Full text, with titles and headings weighted above body text
vectorSemantic similarity using the snapshot’s embedding model
hybridBM25 and vector candidates combined by reciprocal rank fusion
phraseConsecutive indexed tokens, ranked with BM25
regexRust regular expressions within indexed text chunks
globCase-sensitive glob patterns within indexed text chunks

Use version=latest or an exact published documentation version and locale=en. The manifest identifies the immutable namespace and revision behind each version; unavailable versions and locales return 404. The API path version (/api/v1) is separate from the documentation version. Only published snapshots are available.

section=api or kind=page|section|sample|release|gap narrows results. limit is 1–50 and q is at most 200 characters. Regex does not support look-around or backreferences; regex, glob and phrase matches cannot span chunk boundaries. Regex and glob return matches in stable ID order. Other modes rank by relevance. Scores are normalized within each response and should not be compared across queries or modes. Optional rerank=true uses model reranking for BM25, vector or hybrid candidates, adding provider work and latency.

Terminal
bash
curl 'https://elide.help/api/v1/search?mode=hybrid&q=call%20Python%20from%20JavaScript&version=latest'
curl -H 'Accept: text/markdown' 'https://elide.help/api/v1/search?mode=bm25&q=compiler&section=toolchain'
curl 'https://elide.help/api/v1/search?mode=regex&q=elide%20%28run%7Cbuild%29&format=text'

format=json|markdown|text overrides the Accept header. All formats represent the same result set; JSON includes the resolved docsVersion, locale, mode, backend and hosted revision. Explicit search responses support HEAD, ETag, If-None-Match and Vary: Accept. Successful hosted responses are cached for five minutes per immutable snapshot, complete query options and format. X-Search-Cache reports HIT, MISS or BYPASS; provider errors are never cached. X-Search-Backend-Cache reports the regional cache status, or BYPASS on an edge cache hit. A regional private Worker can share provider results across formats and edge locations without exposing the database credential. Requests remain subject to the public API rate limit.

The experimental service accepts WebSocket connections at wss://elide-docs-search.elidecloud.workers.dev/search/ws with subprotocol elide-search.v1. It needs no cookies or authentication. Each JSON text message is a search with a fresh UUID id and string-valued params, or a cancellation for that ID:

json
{"type":"search","id":"953f081d-b824-4a2a-8b82-e4dc533ee738","params":{"q":"call Java libraries","mode":"vector","version":"latest","locale":"en","limit":"8","telemetry":"off"}}
{"type":"cancel","id":"953f081d-b824-4a2a-8b82-e4dc533ee738"}
utf-8 · json · Lines: 2

The server sends ready with the protocol, then accepted with the search ID. Results carry {type:"results",id,phase,complete,status,headers,body}. The body follows the JSON search response, and headers include its request ID, count, version, locale and revision. The ID is also the search request ID; an optional request_id parameter must match it. Messages with invalid envelopes receive type:"error" with code and message. Search validation failures retain the HTTP status and problem body in a terminal results message.

phase:"preview" is an early shortlist of at most three matches from the same snapshot’s compact structural index at the edge, with mode:"local" and backend:"local". It is available for relevance modes when a matching English preview is bundled. Streaming vector cache misses also start one parallel BM25 search for at most three results. If it completes first, another preview arrives with mode:"bm25" and backend:"turbopuffer"; its results can be merged with the structural shortlist. Each retrieval leg uses the existing shared cache. Preview frames have complete:false. Optional phase:"retrieval" is reserved for cumulative provider results when a provider transport can deliver them incrementally; the current transport returns completed result sets. phase:"complete" with complete:true is the canonical result, or terminal HTTP error. A cache hit can go directly to completion. The structural shortlist does not wait for provider work. Completion or cancellation suppresses late lexical frames; cancellation also suppresses pending telemetry. Already issued events cannot be recalled.

The channel supports JSON only; use HTTP for Markdown or plain text. Search parameters, five-minute result caching, and per-IP rate limits match HTTP. Each handshake and search consumes admission. Only completed results enter the shared cache. telemetry=off in search parameters or the connection URL disables analytics; DNT and GPC from the handshake also apply to every search. Headers and cookies cannot be supplied through message parameters. Sessions allow two concurrent searches, 120 unique searches, 256 messages, and 4 KiB per text message. Cancelled work retains its concurrency slot until it settles. Sessions close after 60 seconds idle or five minutes total; reconnect when needed. Stop using partial results after their search is cancelled, superseded, or fails snapshot or response integrity validation. Validated previews may remain usable when the provider fails transiently.

Errors

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

StatuscodeWhen
400invalid_parameterq is missing or too long, limit is out of range, or section is unknown
404page_not_foundNo page has the requested slug
404report_not_foundNo report has the requested id
404api_route_not_foundNo operation exists at the path
404search_version_not_foundNo search snapshot exists for the requested documentation version and locale
405method_not_allowedThe method is not GET or HEAD; see the Allow header
406not_acceptableSearch cannot provide a representation allowed by Accept
429rate_limitedMore than 120 requests in 60 seconds; wait for Retry-After
502search_upstream_failureThe search provider returned an invalid response
503search_unavailableHosted search is unconfigured, has no published snapshot, is unavailable or timed out
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"
}
utf-8 · json · Lines: 10

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 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.

ToolDoes
search_docsSearch pages, sections, code samples, release notes and documented gaps; returns slugs, headings, anchors and 0–1 scores.
get_pageReturn one page as Markdown, by slug, path or URL.
list_pagesList pages with slugs and descriptions, optionally for one section.
find_samplesFind runnable code samples by query, language, tag or level, with their command and output.
compare_runtimesCompare Elide with Node, Bun, Deno, CPython, Java or Kotlin; every claim cites its source and measurement.
get_benchmarksEvery published benchmark number with its command, machine, date and recording.
check_known_issueFind open Elide issues and earlier reports that match a problem.
preview_reportValidate and redact an elide.report/1 report, find duplicates, list missing evidence, and show the issue it would become. Stores nothing.
submit_reportSend a report after the developer agrees; it becomes a public issue in elide-dev/elide.
report_statusThe 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" }
  }
}
utf-8 · json · Lines: 5

Claude Code:

Terminal
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 lists every tool, including the reporting tools, with prompts, resources and rate limits; Report a problem 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.

Elide in agents and scripts

Install the CLI:

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

Installation covers Windows, packages and containers.

  • Elide for AI 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 lists every command.

Report problems with the MCP server’s submit_report tool or on GitHub issues. For immediate help, join the Elide Discord.

Was this page helpful?