Skip to content

Roadmap

cl-tty-kit is intentionally scoped to terminal primitives. This page records what is intentionally deferred so the project stays honest about its boundaries.

Deferred on purpose

  • full terminal emulation
  • window manager or multiplexer behavior
  • editor UI
  • shell application logic
  • CLI framework behavior
  • event bus or general application runtime
  • broad utility helpers unrelated to TTY work

See Compatibility for the parallel, narrower deferral of multi-implementation (non-SBCL) support.

Possible future improvements

  • richer diff rendering strategies for large screens
  • more examples for embedding the library in real terminal tools

Deferred capabilities from the feature audit

Feature Audit is the comprehensive enumeration of the terminal-toolkit capability space, marking each item DONE / GAP / DEFERRED across three research passes (domain knowledge, a diff against crossterm/ratatui, notcurses, tcell/termbox2, and Python's rich/prompt_toolkit/blessed, plus a pass closing the feasible deferrals). Every in-scope gap it found was implemented; what remains deliberately deferred, with rationale:

  • Wide-cell skip flag — a design alternative to the spacer-cell model already used for double-width glyphs, not a capability gap.
  • Kitty graphics protocolformat-sixel (see Widgets) already covers bitmap output on the widely supported format; a second image mechanism would duplicate it.
  • Non-SBCL portability — would require shipping the Unicode tables the library borrows from sb-unicode, against the intentionally-small ethos.

Every decodable/feasible item from the audit has been implemented — across nine waves and five enumeration passes — including grapheme-cluster segmentation, constraint-based layout-split, the full kitty input surface (event kinds, associated text, shifted/base-layout alternates), the CSI in-place editing escapes, and format-sixel graphics. What remains above is deferred on principle, not effort.

Principle

Every new feature should stay small, testable, and aligned with terminal primitives rather than application framework behavior.