# 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 ```bash cargo run --release ``` Tessera listens only on `127.0.0.1:4737`. Start every agent integration by reading the live Markdown guide: ```bash curl http://127.0.0.1:4737/agent ``` ## Namespace code API The initial active namespace is `app.main`. Tessera has no file concept. ```text GET /v1/namespaces/app.main/code PUT /v1/namespaces/app.main/code DELETE /v1/namespaces/app.main/code ``` Submit code as plain text: ```bash 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.