erza

terminal ui language

.erza for terminal apps now, domains later

This documentation site is authored in .erza and compiled into static HTML for GitHub Pages. It doubles as a small testbed for the idea that websites could be authored with erza files instead of raw HTML.

Current reality

The repo ships a Python v0 runtime that renders terminal-native screens, supports backend calls, and moves focus with hjkl.

Future direction

A remote mode like erza example.com can treat domains as transport endpoints for terminal apps over HTTPS without inheriting browser scope.

run

Start here

Terminal app

python -m erza run examples/greetings

Docs build

./update_docs.sh

Future remote app

erza example.com

principles

Why erza is shaped this way

`.erza` is the authoring surface

The project stays centered on component files and readable templates instead of hand-rolled terminal paint loops.

Terminal-native first

The current runtime is for TUIs, with transparent defaults, keyboard-first focus movement, and `hjkl` as the primary navigation model.

Remote transport can come later

The website direction is best treated as domains serving terminal apps over HTTPS, not as a browser-compatibility project.

examples

What is already running

Tasks

Backend-fed task list with focused buttons and stateful rerendering.

examples/tasks/app.erza

Greetings

A directory-based entrypoint with `index.erza` and live backend state changes.

examples/greetings/index.erza

next hop

Remote apps over HTTPS

1

Resolve a domain

`erza example.com` assumes HTTPS and asks the server for an erza app, not HTML.

2

Fetch a screen tree

The server returns a safe terminal-focused document or compiled UI tree the client can render locally.

3

Send actions back

Button presses and navigation-triggered actions post structured events to the server.

4

Rerender in place

The client receives the next screen or a diff and updates the local terminal session.