lux
A lightweigth, consistent, full colorized framework for modern console apps, in full Pascal (FPC).
- Active · last change 7-29-2026
- ★ 1 on GitHub
README
LUX
A modern TUI application framework for Free Pascal.
LUX aims to bring a Delphi/VCL-inspired development experience to modern terminal applications: structured, reusable, event-driven and pleasant to use.
The project is written in Free Pascal, is open source, and treats the terminal as a first-class user interface rather than a compatibility fallback.
Let there be light in the terminal.
Naming
| Name | Role |
|---|---|
| LUX | Technical name of the framework and this codebase |
| Lighthouse | Provisional commercial / public-facing name for the same LUX product |
| Lantern | Provisional name of a possible future application built on LUX — not part of the framework and not a synonym for Lighthouse |
Lantern-specific models, panels, commands and workflows must not enter the LUX core.
Vision
LUX will provide the foundations needed to build rich console applications with:
- ANSI/VT terminal rendering
- Unicode and UTF-8 support
- Keyboard and mouse input
- Windows, controls and dialogs
- Flexible layouts
- Themes and 24-bit colour
- Event-driven application architecture
- Cross-platform support
- A clean, Pascal-friendly API
A possible future consumer application is Lantern (provisional name): a Git-oriented terminal editor and developer workbench. It does not exist yet and remains architecturally separate from LUX/Lighthouse.
Early design principles
- Free Pascal first — portable, native and lightweight.
- Terminal-native — designed for modern terminals, not emulated DOS screens.
- Composable — small controls and services that can be combined into larger applications.
- Pragmatic — useful software before theoretical perfection.
- Accessible API — familiar to Delphi and Object Pascal developers.
- Open source by default — transparent development and community participation.
Tentative package structure
src/
lux.core/
lux.terminal/
lux.rendering/
lux.events/
lux.layout/
lux.controls/
lux.dialogs/
lux.themes/
examples/
docs/
tests/This structure is provisional and will evolve as the architecture becomes clearer.
Status
Phases 0–5 / 5.1 complete (foundation through control layer + Windows keyboard verification). Phase 6 not started. See STATUS.md, ROADMAP.md and docs/ARCHITECTURE.md.
Building
See docs/BUILDING.md.
Quick start (Windows):
powershell -ExecutionPolicy Bypass -File tools\build.ps1 -Target all
powershell -ExecutionPolicy Bypass -File tools\test.ps1
powershell -ExecutionPolicy Bypass -File tools\test_windows.ps1
.\bin\hello_lux.exe
.\bin\windows_demo.exe
.\bin\controls_demo_windows.exeQuick start (Linux):
./tools/build.sh all
./tools/test.sh
./tools/test_unix.sh
./bin/hello_lux
./bin/unix_demo
./bin/controls_demo_unixExpected toolchain:
- Free Pascal Compiler 3.2.2 or later
- Lazarus tools where useful, without requiring the Lazarus IDE at runtime
- Git
License
LUX is released under the MIT License.
Created in 2026 during project number 7156 of the Txema era.

