Production hub

Docs, evidence snapshot, and release history.

A public operations hub for the compiler pipeline, current evidence, API contracts, and shipped release history.

Docs

Developer API guide

Issue a key in the editor, call the HTTP API, or connect your agent over MCP — one key, one shared quota, the same honest implementation-versus-semantic-evidence contract everywhere.

One key, two surfaces: the HTTP API and the MCP server expose the same registered direct-adapter conversion, with the same shared daily quota. Each fragment reports implementation separately from admissible semantic verification; exact-text regression establishes implementation only, and missing implementation is an honest gap.

Step 1

Get an API key

Keys are issued in the editor and shown exactly once — store yours in a secret manager. Rotating or revoking a key takes effect immediately on both the HTTP API and the MCP server.

  1. Sign in with GitHub or Google in the editor.
  2. Open the API & Usage panel and issue a key (format: lena_sk_…).
  3. Copy it immediately — only a short display prefix is ever shown again.
Open the editor

Step 2

REST quickstart

POST your source to /api/v1/convert with the key in the x-lena-api-key header. The response separates registered implementation from semantic verification: read each fragment, status, and gaps before using text.

The full request/response contract — every status value, error shape, and field — is pinned in the OpenAPI document below. The response carries schemaVersion so future envelope changes are explicit, never silent.

/api/openapi.json
Request
curl -X POST https://www.lenacode.com/api/v1/convert \
  -H "x-lena-api-key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceLanguage": "python",
    "targetLanguage": "javascript",
    "code": "def add(a, b):\n    return a + b"
  }'
Response shape
{
  "schemaVersion": "1.1",
  "ok": true,                   // true only for complete conversion
  "status": "converted",        // or: partial | no-implemented-route | ...
  "sourceLanguage": "python",
  "targetLanguage": "javascript",
  "text": "...",                // complete or honest partial assembly
  "fragments": [ { "facetKey": "...", "text": "...", "implemented": true,
                   "semanticVerified": false, "verified": false } ], // verified is a deprecated semantic alias
  "gaps": [ { "facetKey": "...", "reason": "...", "message": "..." } ],
  "verification": { "inputLaw": "pass", "outputAdapters": "registered-direct-only", ... },
  "requestId": "..."
}

Read fragments and gaps for assembly completeness: fragments without gaps are complete, fragments with gaps are partial, and no fragments is none. These states do not establish semantic support. Each fragment exposes implemented and semanticVerified separately; the deprecated verified alias mirrors semanticVerified. Current transform receipts have no per-invocation semantic oracle, so both semantic fields fail closed to false. A partial result may have text null when no ordered assembly is available. Partial text keeps ok false, preserves each gap form in place as a target-language comment around its original source, and may not compile or run.

Step 3

Connect over MCP

The MCP server (streamable HTTP) gives agents the same conversion plus discovery tools. It is read/transform only: no tool edits files, applies patches, or executes code — applying results is always the caller’s decision.

Recommended call order: lena_list_languages → lena_check_route → lena_transform. Discovery tools are free; only submitting source code consumes the shared daily quota.

Claude Code
claude mcp add --transport http lena-code https://www.lenacode.com/api/mcp \
  --header "Authorization: Bearer YOUR_KEY"
Cursor / generic MCP client (mcp.json)
{
  "mcpServers": {
    "lena-code": {
      "url": "https://www.lenacode.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_KEY" }
    }
  }
}
ToolQuotaWhat it does
lena_list_languagesFreeCanonical language ids, accepted aliases, input verified counts, output implemented counts, and output semantic-verified counts. Call this first — never guess ids.
lena_check_routeFreePre-flight for a source/target pair: implemented and semantic-verified atomic intersections without spending quota or source tokens.
lena_transformCountsThe conversion itself. Read domain ok, status, each fragment's implemented and semanticVerified fields, gaps, and guidance. Current receipts have no per-invocation semantic oracle, so semanticVerified and verified fail closed to false. Partial text may preserve gap forms as comments and may not compile or run. An unassembled partial can keep text null.
lena_transform_batchCountsMultiple conversions in one call. Each item consumes quota individually, and any partial item may not compile or run.
lena_get_coverageFreeAggregate input verified coverage, legacy-inclusive output allocation, and separated output evidence indicators.
lena_get_language_coverageFreeInput verified, output implemented, and output semantic-verified numbers for one language.

Metering

Quotas & plans

API and MCP conversions draw from one shared daily pool per key. Editor conversions are metered separately. Quotas reset at UTC midnight.

Plans & pricing
PlanAPI + MCP / day (shared)Price
free25$0/mo
pro1,000$5/mo
max5,000$15/mo

Per-request input limit: 256 KB UTF-8; binary content is rejected. Rate limiting applies on top of daily quotas — exceeded requests return 429 with a retry-after header.

Contract

Errors & limits

Errors are JSON with a stable code and a requestId you can quote to support. The same key and quota semantics apply on MCP — tool errors carry the equivalent reason.

401
Missing, malformed, revoked, or rotated key.
429
Rate limit or daily quota exceeded — the body says which, and retry-after says when.
400 / 413
Invalid body, binary content, or input over the 256 KB limit.
503
Entitlement state temporarily unavailable — the API refuses rather than guessing your plan. Retry shortly.

Submitted source is processed in memory for the request only; generated results may use a short-window hash-keyed cache. Privacy details

For agents

Machine-readable resources

Agents can learn this surface without scraping HTML: the OpenAPI contract over HTTP, and MCP resources served by the server itself.

  • /api/openapi.jsonfull HTTP contract (also served as the MCP resource lena://openapi)
  • lena://usage-guideagent-directed guide served by the MCP server
  • lena://health-publicpublic health snapshot
  • /api/coverage/exposureseparated input verification, output implementation, and output semantic evidence; append /{languageId} for one language
  • /llms.txtthis guide’s entry points, in plain text

RELEASE LOG

Changelog

Slice-level release history derived from git log and curated public titles.

Changelog generated at 2026-08-18

Featured updates

30/50

  1. Update

    Develop to main, honest execution coverage (E3 1,382 / 2,249), landing measurement redesign, hub changelog details

    Update · 2026-08-18

    6cb9b3637
  2. verification

    Verification system update

    Sync committed derived public artifacts to a fresh deploy:derive-public

    Update · 2026-08-18

    72a1dbba0
  3. landing

    Landing surface

    Paint measurements per section, not per axis

    Update · 2026-08-18

    1464606d5
  4. hub

    Hub surface

    Show a sanitized commit subject under each changelog entry

    Update · 2026-08-18

    fffe758d5

Recent changes

  1. landing

    Landing surface

    2026-08-18a4ab1d356

    Axis color policy and a flat momentum input bar

  2. landing

    Landing surface

    2026-08-18eb14ccafe

    Unify measurement number hierarchy and add the input bar to the evidence strip

  3. landing

    Landing surface

    2026-08-18df7e4fa82

    Balance hero cards with an input verification bar and legend

  4. landing

    Landing surface

    2026-08-183dfec4524

    Hero measurement cards, publishable-scope checkpoint

  5. Update

    2026-08-18755a77867

    Full-width copy with two symmetric measurement cards

  6. landing

    Landing surface

    2026-08-18fb33013b9

    Plain-language measurement labels, Reads correctly / Runs correctly

  7. verification

    Verification system update

    2026-08-188bf148b9e

    Hold elixir assignment out of the public output-depth denominator (owner option A)

  8. verification

    Verification system update

    2026-08-1851a0a3fde

    Keep shared runtime renderers off the legacy IR note format, interpreter tsc

Earlier trail

  1. verification

    Verification system update

    Update · 2026-08-1801419b3a8

    Align semantic-admissibility authorities with the shipped adapters (audit RED 25 to 0)

  2. verification

    Verification system update

    Update · 2026-08-17ca8729f8f

    Checkpoint phase B tail after grace-run cutoff (E3 1,354 to 1,382)

  3. verification

    Verification system update

    Update · 2026-08-179b3eb836b

    Execute typed catches and finally across targets

  4. verification

    Verification system update

    Update · 2026-08-1757e662793

    Execute empty-body while loops across targets

  5. verification

    Verification system update

    Update · 2026-08-17be0b12e60

    Execute iteration and named imports across targets

  6. verification

    Verification system update

    Update · 2026-08-16f9e4ef8a5

    Execute anonymous function bodies across targets

  7. verification

    Verification system update

    Update · 2026-08-16a08cabe06

    Execute ordered blocks across targets

  8. verification

    Verification system update

    Update · 2026-08-163994b994d

    Execute literal bindings across targets

  9. verification

    Verification system update

    Update · 2026-08-16d98fc7c35

    Execute control-transfer returns across targets

  10. verification

    Verification system update

    Update · 2026-08-16c326dceb5

    Execute compound assignment across targets

  11. verification

    Verification system update

    Update · 2026-08-16726008e65

    Execute simple calls across targets

  12. verification

    Verification system update

    Update · 2026-08-1694beda5cd

    Execute binary call arguments across targets

  13. verification

    Verification system update

    Update · 2026-08-1667eba23ac

    Execute scalar lexical scopes across targets

  14. verification

    Verification system update

    Update · 2026-08-164493e6e2f

    Execute template and lexical scope evidence

  15. verification

    Verification system update

    Update · 2026-08-168f0cd2dcd

    Execute empty branch bodies

  16. verification

    Verification system update

    Update · 2026-08-166af827bd6

    Execute empty lists across all targets

  17. verification

    Verification system update

    Update · 2026-08-16eef4a9ddd

    Promote execution-verified receipts to public E3 by same-case semantic join (8 to 644)

  18. Documentation update

    Update · 2026-08-16a07c2a9a0

    Pin §0.5 goal, raise public numbers to the theoretical maximum, do not stop earlier

Lena Code · Hub