Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.feral.sh/llms.txt

Use this file to discover all available pages before exploring further.

Gen-UI in FERAL

Gen-UI is server-driven UI (SDUI): the brain emits structured UI payloads and the client renders known component contracts.

Stable today

  • SDUI payload rendering in the web client (SduiRenderer).
  • Incremental updates via sdui_patch.
  • Third-party app install/open/dispatch API surface (/api/apps/...).
  • Manifest signing + AppSurface sandbox + strict postMessage schema.
  • Per-surface schema-version cache invalidation.

Stable contract strategy for publishers

Use explicit contract versions in your app manifest:
  • manifest.contract.manifest_schema_version
  • manifest.contract.a2ui_version
  • surfaces[*].schema_version
  • surfaces[*].action_contract
Full policy (what to bump and when):

Headless vs UI

You can ship headless-first today:
  • install: POST /api/apps/install
  • render: POST /api/apps/{app_id}/surfaces/{surface_id}/render
  • dispatch: POST /api/apps/{app_id}/dispatch
UI is still first-class for users, but agent integrations can run directly on the headless API contract without building bespoke frontends.

Deterministic traces

Hybrid surface renders emit replay/audit traces under the hybrid cache tree (_render_traces/*.jsonl) with source, schema versions, and action contract context. This is the debugging path for render drift and failure analysis.

What this is not

  • Not arbitrary HTML generation.
  • Not “any component works everywhere instantly.”
  • Not a guarantee of parity across every client surface yet.