open-standards/wai/examples/remote-desktop
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science c86b75ac52 The service binaries are wai-relay, wai-room and wai-ingest; the crates keep their names
WAI toolchain decision 11: joule-moq-relay builds wai-relay, joule-moq-room wai-room, and
joule-moq-ingest wai-ingest. wai dev finds them by those names (WAI_RELAY_BIN, WAI_ROOM_BIN),
and the quickstart archive, the release workflow, the examples' workflow, the browser
tests, the interop scripts, the example host script, the Scoop manifest and the crates'
READMEs and example configurations name them so. Wire and record identifiers that carry a
crate's name (joule-moq-relay/session-summary/2, joule-moq-ingest/session/1, the relay's
MOQT implementation string) and the log variables (JOULE_MOQ_*_LOG) are unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 04:52:31 -04:00
..
test The service binaries are wai-relay, wai-room and wai-ingest; the crates keep their names 2026-10-27 04:52:31 -04:00
.gitignore wai: the developer's path, hello, create, dev and verify, a floor build with no system library, and nine examples 2026-10-26 22:58:39 -04:00
host.sh The service binaries are wai-relay, wai-room and wai-ingest; the crates keep their names 2026-10-27 04:52:31 -04:00
LICENSE wai/examples: every template Apache-2.0, its LICENSE carried into the project 2026-10-27 04:52:31 -04:00
README.md wai/examples: every template Apache-2.0, its LICENSE carried into the project 2026-10-27 04:52:31 -04:00
wai.json wai: the developer's path, hello, create, dev and verify, a floor build with no system library, and nine examples 2026-10-26 22:58:39 -04:00

Remote desktop in a room

What it shows. One machine's screen shared into a room. The host enters with an invitation the room's authority signed; viewers make their own keys in their browsers and watch; one viewer at a time may be handed control. Every screen statement, every input and every handover is a signed record in the room's log, and a verifier checks the session from those records alone. Keys and text a controller types go sealed to the host: the room never holds them in the clear.

Run it.

wai create my-desk --template remote-desktop
cd my-desk
wai dev                  # the room, in remote desktop mode
sh host.sh --pattern     # in a second terminal: the host, sharing a test pattern

Open http://127.0.0.1:8080/ and press Join. sh host.sh without --pattern shares the display itself.

What you see. The host's screen in the page, each frame checked against its receipt before it is drawn. Press Ask for control: this host script hands control to whoever asks, and your pointer and keys then reach the host, the page showing what each did.

Check a session. sh host.sh --pattern --seconds 20 --record session.json writes the session's records; the independent verifier in the WAI repository checks them: python3 -I wai/live-conformance/remote_desktop_verify.py --room session.json.

With a coding assistant. Run wai setup-agent in this directory: it writes the instructions an assistant reads and connects it to WAI's tools.

License. Apache-2.0: the text is in LICENSE, and a project wai create makes from this example carries it.