NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #891 most downloaded on pub.dev
A Flutter-like framework for building rich terminal user interfaces with components, state management, animations, and more.
Last release 1 months ago
10 Aug 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 20 of 20 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
20 releases · first in 2025
One column per month.
feat: Merge box-drawing lines into junctions where they meet by @FXschwartz in #94
Full Changelog: v0.8.0...v0.9.0
├ ┤ ┬ ┴ ┼) instead of leaving gaps. Every line character is modeled as four arms (up/right/down/left) with light/heavy/double weights; drawing one on another combines the arms and emits the matching glyph. New mergeBoxCharacters/mergeArmsIntoCharacter utilities, TerminalCanvas.drawText(blendBoxLines:), and TerminalCanvas.drawJunctionindent/endIndent reaches the divider outside its own bounds; those cells contribute only the arm pointing back into the rule, so an end landing on a border forms a tee (├), not a cross. An end with nothing to join paints nothing┏ ━ ┓)example/box_line_blending_demo.dart shows dividers, crossings, all weights, and an overlaid panelDivider, VerticalDivider, and border corners (the ascii divider style never merges). When both characters carry an arm in the same direction, the newly drawn character wins (z-order), so drawing ╭ over ┌ rounds the corner and vice versa┄ ┆) instead of heavy (┅ ┇) to match their light cornersportFilePath), so multiple servers in one process no longer race on the pid-keyed global fileDirectory.currentrefactor(width): delegate CJK classification to xterm wcwidth table by @KoalaHao in #76
Full Changelog: v0.7.0...v0.8.0
ENABLE_PROCESSED_INPUT so Ctrl+C generates SIGINTKEY_EVENT_RECORD.uChar as UTF-8 for correct IME inputgetProjectDirectory walk at Windows drive rootsInputDecoration instead of BoxDecorationfix: element child slot by @jolexxa in #61
Full Changelog: v0.6.0...v0.7.0
The layout-skip check now uses value equality on constraints instead of
identical(), and every core mutation path marks layout explicitly. Apps
get strictly fewer redundant relayouts than 0.6.0 (which effectively
re-laid out the full tree every frame), while content updates render
reliably.
==/hashCode), matching Flutter semanticsrelayout_fixes_demo.dart exercising the layout-mark paths, with an e2e smoke testAdd Windows platform support by @peterven in #32
Full Changelog: v0.5.1...v0.6.0
operator== instead of identical (matching Flutter)fix: render object attach by @jolexxa in #46
Full Changelog: v0.5.0...v0.5.1
fix: scrollbar position by @jolexxa in #41
Full Changelog: v0.4.4...v0.5.0
Full Changelog : v0.4.3...v0.4.4
Full Changelog: v0.4.3...v0.4.4
runApp for custom terminal backendsfix: quantize colors in environments without true color support by @jolexxa in #36
Full Changelog: v0.4.2...v0.4.3
getElementForInheritedComponentOfExactType for cleaner codeFull Changelog : v0.4.1...v0.4.2
Full Changelog: v0.4.1...v0.4.2
getElementForInheritedComponentOfExactType for cleaner codeFull Changelog : v0.4.0...v0.4.1
Full Changelog: v0.4.0...v0.4.1
DebugOverlay: New debug overlay toggled with Ctrl+G showing real-time FPS, build/layout/paint timings, memory usage, and CPU usage
Ctrl+G showing real-time FPS, build/layout/paint timings, memory usage, and CPU usageFrameRate class with common presets (fps30, fps60, fps120, unlimited)ListView and SingleChildScrollView to enable built-in arrow key scrollingcacheExtent property on ListView for smoother scrolling with pre-rendered items== operator for constraint comparisonGestureDetector: Fixed tap not working in ListView and with centered content
Frame rate: Respect frame rate limiting in TerminalBinding
BorderTitle rich text: Added rich text support to border titles
RenderStack and ContainerClipRect, OverflowBox, and SizedOverflowBoxPackage publishing: Include lib/src/third_party in published package
lib/src/third_party in published packageMulti-child containers: Pass slot through ProxyElement to maintain child order
invokeLayoutCallback to fix Stack repaint bugFlutter-like animations: Complete animation system with AnimationController, Animation, Tween, Curves
AnimationController, Animation, Tween, CurvesTicker and TickerProvider for frame-based animationsstandard, banner, block, slimAsciiFont extensionThis is a major release with 100+ commits introducing foundational changes for theming, performance, web support, and developer experience.
This is a major release with 100+ commits introducing foundational changes for theming, performance, web support, and developer experience.
TuiThemeData, TuiColors, and TuiTheme InheritedComponentonSuccess and onWarning colors for complete status color pairsWebBackend abstraction for running in browsersprovider package for state managementnested package for organization>=3.5.0ValueListenableBoxDecoration now supports title propertylog.txtonChange text mutation issuesBREAKING: Removed automatic keyboard navigation from ListView. Applications must now manually wrap ListView in Focusable for keyboard support: ```dart
// Before (0.0.1)
ListView(children: [...])
// After (0.1.0)
Focusable(
onKeyEvent: (event) { /* handle navigation */ },
child: ListView(children: [...]),
)
- Initial version.
Your coding agent can read these notes before it upgrades. Set up the MCP server →