Files
endorphin-tessera-gui/README.md
T

1.8 KiB

Tessera

Tessera is a clean desktop rendering host. It starts with an empty page. Coding agents submit source code to a namespace through a local CRUD API; Tessera parses that code, builds its architecture tree, compiles it to drawing commands, and renders the result.

Start

cargo run --release

Tessera listens only on 127.0.0.1:4737.

Start every agent integration by reading the live Markdown guide:

curl http://127.0.0.1:4737/agent

Namespace code API

The initial active namespace is app.main. Tessera has no file concept.

GET    /v1/namespaces/app.main/code
PUT    /v1/namespaces/app.main/code
DELETE /v1/namespaces/app.main/code

Submit code as plain text:

curl \
  --request PUT \
  --header 'Content-Type: text/plain; charset=utf-8' \
  --data-binary @- \
  http://127.0.0.1:4737/v1/namespaces/app.main/code <<'TESSERA'
namespace app.main

use tessera.ui::{Column, Text}

export scene Main {
    render {
        Column(gap: 12, padding: 24) {
            Text("Hello", role: .title)
            Text("Rendered by Tessera")
        }
    }
}
TESSERA

Updates are atomic. Invalid code returns diagnostics with HTTP 422 and preserves the last successfully rendered revision.

Developer tools

The developer sidebar is closed by default.

  • macOS: Command-Option-I or F12
  • Windows/Linux: Control-Shift-I or F12

The upper section displays the compiler-produced architecture tree. Selecting a node shows the corresponding source range below it.

Current syntax experiment

The first parser intentionally supports only enough syntax to test the architecture:

  • namespace
  • namespace-only use
  • one export scene
  • one render root
  • Column, Row, Spacer, and Text
  • gap, padding, and .title

There are no files, HTML, CSS, JavaScript, DOM, or resource-network concepts in the runtime.