Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

lux

A lightweigth, consistent, full colorized framework for modern console apps, in full Pascal (FPC).

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

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

  1. Free Pascal first — portable, native and lightweight.
  2. Terminal-native — designed for modern terminals, not emulated DOS screens.
  3. Composable — small controls and services that can be combined into larger applications.
  4. Pragmatic — useful software before theoretical perfection.
  5. Accessible API — familiar to Delphi and Object Pascal developers.
  6. Open source by default — transparent development and community participation.

Tentative package structure

text
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
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.exe

Quick start (Linux):

bash
./tools/build.sh all
./tools/test.sh
./tools/test_unix.sh
./bin/hello_lux
./bin/unix_demo
./bin/controls_demo_unix

Expected 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.