Releases
Each release page has the release notes and the API changes of the published type declarations. Release notes start at 0.5.0. The API history starts at 0.3.0.
0.8#
- 0.8.0A small change repaints only the rows around it, animations share one clock, and ScrollBox scrolls in native code.
0.7#
- 0.7.0Edits in Textarea, Input, and text views lay out only the lines that they change, and the native scene work budget and reflected hooks are removed.
0.6#
- 0.6.8Sideways wheel steps no longer shift truncated text with `wrapMode` set to `"none"` by one column.
- 0.6.7Bidirectional marks and other default-ignorable code points take no cell, so rows that contain them stay aligned with the terminal.
- 0.6.6Assigning `null` or `undefined` to a layout property restores its default, also when React or Solid removes a style prop.
- 0.6.5Renderables add the Yoga style getters, such as `getMaxWidth()` and `getPadding(edge)`, that replace `getLayoutNode()` style reads.
- 0.6.4Kitty images in iTerm2 no longer go black or blank when they move, scroll, or change position in the layout.
- 0.6.3The renderer sends OSC 7501 program status reports, so a terminal can show if a program is working, blocked, done, or failed.
- 0.6.2The renderer resets text attributes at the end of a row, so bold or underlined text at the right edge no longer leaks into later cells.
- 0.6.1Editors keep control characters and show them as notation, such as `^L`, instead of throwing `NativeError`.
- 0.6.0Layout, hit testing, and painting move into a native scene, and native rendering resources now belong to an owner Context.
0.5#
- 0.5.17OpenTUI now enables OSC 8 hyperlinks in xterm.js, VS Code, Zed, mintty, and VTE 0.52.2 or newer.
- 0.5.16Updates the pinned @babel/core in @opentui/solid to 7.29.7, which fixes GHSA-4x5r-pxfx-6jf8.
- 0.5.15Adds a `preserve` option to runtime plugin support so host-provided modules keep their bare specifiers.
- 0.5.14Fixes a missing repaint after a terminal resize that returns to its original size.
- 0.5.13Fixes a text buffer memory leak, a layout rerender loop, and tmux capability replies reaching the wrong pane.
- 0.5.12Adds `textAlign` for text renderables and more mouse pointer styles, and fixes several rendering and cleanup issues.
- 0.5.11Core plays raw PCM audio streams, and markdown links stay clickable in terminals that support OSC 8.
- 0.5.10Kitty image streaming uses less CPU, and native libraries now ship stripped with separate debug symbols.
- 0.5.9Wrapped text layout is faster and splits CJK and emoji correctly, and `EditBuffer` gains tab width methods.
- 0.5.8Adds the `"unicode-wide"` width method to match Ghostty 1.3 wide grapheme widths.
- 0.5.7Double-click selects a word, triple-click selects a line, and selection gains configurable cell or boundary occupancy.
- 0.5.6Adds `EmbeddedTerminalRenderable`, which renders a Ghostty-backed terminal inside an OpenTUI layout.
- 0.5.4Fixes stale mouse input after shutdown, GNU Screen clipboard copies, and forced Sixel images on Kitty.
- 0.5.3Fixes a crash in core when text with a transparent background is drawn one column to the left of the buffer.
- 0.5.2Adds a cross-platform clipboard API for the host and the terminal, and lets ImageRenderable accept a NativeImage.
- 0.5.1Core converts PNG images with embedded ICC profiles to sRGB and accepts trailing whitespace after PNG data.
- 0.5.0Adds native image rendering with `ImageRenderable` and `NativeImage`, plus audio input capture and renderer error events.
0.4#
- 0.4.5API: 5 added, 1 removed.
- 0.4.4API: 146 added, 0 removed.
- 0.4.3API: 23 added, 13 removed.
- 0.4.2API: 13 added, 1 removed.
- 0.4.1API: 726 added, 1 removed.
- 0.4.0API: 26 added, 17 removed.