Hermes ddd3950e49 v0.13.0: Rendering pipeline with framebuffer backend
New module: src/rendering/framebuffer.lisp (tangled from org/framebuffer.org)

- framebuffer-backend class: implements backend protocol by writing to
  2D cell array instead of emitting escape sequences
- cell struct: per-cell state (char, fg, bg, bold, italic, underline, link-url)
- make-framebuffer / framebuffer-width / framebuffer-height
- draw-text, draw-rect, draw-border, draw-link, draw-ellipsis methods
- diff-framebuffers: compares two framebuffers, returns changed cells
- flush-framebuffer: diff + output changes to real backend
- with-scissor macro: clip drawing operations to rectangle
- cursor-move: added default no-op method for all backends
- 20 new tests, all passing (372 total)

Version bumped from 0.11.0 to 0.13.0.
License field set to GPL-3.0 in ASDF.
2026-05-11 22:34:58 +00:00

Pure CL terminal UI framework. No ncurses, no FFI, no external dependencies.

```lisp (ql:quickload :cl-tty) ```

## Quick start

```lisp ;; Create a modern terminal backend (let ((backend (make-instance 'cl-tty.backend:modern-backend))) (cl-tty.backend:initialize-backend backend) ;; Backend is ready — write text, draw boxes, handle input (cl-tty.backend:shutdown-backend backend)) ```

## Architecture

Two backends, one protocol:

  • modern-backend — truecolor 24-bit, OSC 8 hyperlinks, DECICM sync, SGR mouse, kitty keyboard, bold/italic/underline, box-drawing chars
  • simple-backend — ASCII art, no color, universal compatibility

Everything is pure escape sequences (no curses, no terminfo, no FFI).

## Components

Component What it does Version
Box Bordered container with background, title v0.2.0
Text Styled text with word-wrap, spans v0.2.0
ScrollBox Scrollable viewport with scrollbars v0.6.0
TabBar Horizontal tab navigation v0.6.0
Select Dropdown with fuzzy filter, category headers v0.7.0
TextInput Single-line text input with readline keybindings v0.5.0
TextArea Multi-line input with undo/redo, selection v0.5.0
Markdown Renders markdown with syntax highlighting + diffs v0.8.0
Dialog Modal overlays with stack management v0.9.0
Toast Transient notifications (info/success/warning/error) v0.9.0
Mouse Event handlers, hit-testing, text selection v0.10.0
Slot Plugin system — named slots for extensible UI v0.11.0

## Backend features

Feature modern simple
Truecolor (24-bit) Yes No
Bold/italic Yes No
OSC 8 hyperlinks Yes No
DECICM sync Yes No
SGR mouse Yes No
Kitty keyboard Yes No
Box drawing chars Unicode ASCII
Pipe-safe No Yes

## Development

```bash

sbcl script run-all-tests.lisp

emacs batch eval "(progn (require 'org) (find-file \"org/FILE.org\") (org-babel-tangle) (kill-buffer))" ```

Literate programming: `.org` files in `org/` are the source of truth. `.lisp` files are generated by tangling.

## License

GNU General Public License v3.0

Description
Reusable Common Lisp Terminal UI Framework
Readme GPL-3.0 1.8 MiB
Languages
Common Lisp 58.5%
Python 36.2%
Shell 5.3%