Lumen Protocol v0, revision 25 (frozen snapshot). © Moonbase 2090 LLC. Licensed under CC-BY-4.0. Report security issues privately via GitHub private vulnerability reporting or [email protected].
Lumen Protocol v0
Lumen Protocol v0, revision 25 (frozen snapshot)
- Copyright © Moonbase 2090 LLC. Moonbase 2090 LLC is the publisher.
- This specification is licensed under CC-BY-4.0. Reference code is licensed MIT OR Apache-2.0.
- Security issues: report them privately through GitHub private vulnerability reporting on this repository, or by email to [email protected]. Do not open public issues for vulnerabilities.
Revision 25 takes in-place edits until it is published. After publication, later changes will be made as new revisions or versions, and this text will not be edited.
Summary
A Lumen session is a document made of blocks, not one character grid. Rich blocks use proportional fonts and browser-style layout. Grid blocks host legacy VT applications on a PTY sized to the block, so old and new applications share one document. Lumen is deliberately not backwards compatible, but grid blocks give legacy applications a built-in middle path.
The core idea is that the terminal becomes a typeset document. The VT grid stays as one element type in it, much like an embedded pre element in a web page.
Bright Term is the reference terminal. Lunatui is the first native client library.
Conformance language
The key words MUST, MUST NOT, SHOULD, SHOULD NOT and MAY are to be read as described in RFC 2119 and RFC 8174 when they appear in capitals. Sections marked informative are not normative. Numeric limits are normative for v0 unless they are marked as proposed starting values.
Goals
- Secure by default (prime directive). Untrusted output never gains authority, meaning protocol powers. Rendering inert content inside an unverified output container is not authority. Every power is off until it has been negotiated and authenticated.
- Structured content as a protocol: blocks, text runs, layout and events.
- Proportional text, real tables, images, links and collapsible sections.
- Legacy VT applications run unchanged inside grid blocks.
- Each command and its output is a block, not grid scrollback.
- GPU rendering without a web engine.
- Predictable copy and paste, and hit testing down to character offsets.
- An open specification with a reference terminal and a conformance suite.
Non-goals
- Byte-for-byte backwards compatibility with xterm outside grid blocks.
- Embedding HTML, CSS or JavaScript.
- Multiplexer integration in v0 beyond a Lumen-aware multiplexer that implements the sealed multiplexer layer. tmux and screen are post-v0.
- Remote GUI or general application streaming.
- Running in a browser in v0.
Contents
- Prior art (informative)
- Document model
- Block types
- Text runs and styling
- Layout model
- Events and input
- Grid blocks and PTY sizing
- Transport and framing
- Unverified output (Track 0) and the trust margin
- Sealed layers and keys
- Capability negotiation and versioning
- Images and the decoder
- Links, clipboard, copy and paste
- Multiplexers
- Security considerations and resource limits
- Threat model and accepted residual risks
- Optional hardened mode
- Platform support
- Conformance gates
- References (informative)
Review
This specification went through repeated independent adversarial security reviews before it was frozen. At freeze, no Critical, High or Medium findings remained open. The remaining Low and Informational items that the maintainers accepted are summarised in Accepted residual risks.