v0.2.31
Termy 0.2.31
Command palette
- Fuzzy search with ranking. The palette now matches subsequences (
gsw→ "Git: Switch Branch") and ranks results by match quality instead of listing them in static order. - Recently used commands rank higher. Commands you run often surface first; unavailable commands sink to the bottom in ranked modes.
- Better scannability. Matched characters are highlighted inline, rows show category labels, icons are tinted per category, and keyboard shortcuts render as keycap chips.
- Inline reasons for unavailable commands. Disabled rows explain why instead of just looking dead.
- Navigation and hover fixes. Arrow/Home/End navigation and viewport scrolling behave correctly, and selection no longer jumps under a stationary mouse.
Plugins
- Context-menu commands. Commands can declare
placements: ["commandPalette", "terminalContextMenu", "tabContextMenu"]. Context-menu placements are available on Linux and Windows;placements: []makes a command keybinding-only. - Native views inside the palette.
view.openacceptstarget: "commandPalette"to render a plugin's native view in the palette results area, keeping palette search and footer, instead of a centered modal. - Stale-revision safety. Actions and native-view updates returned by a request whose plugin changed, was disabled, or was removed are now rejected.
Fixes
- ANSI text attributes preserved across renderers. Bold, italic, underline and friends now survive the GPUI grid, FFI frame snapshots, and the macOS SwiftUI renderer consistently.
- Windows new tab button placement. Corrected tab strip layout and titlebar drag regions on Windows.
Docs
- Termy agent skills published:
build-termy-plugins(plugin authoring for coding agents) andghostty-to-termy(Ghostty config conversion), with docs on the website. - Plugin docs updated for placements, palette-targeted views, and lifecycle guarantees.
Full Changelog: https://github.com/lassejlv/termy/compare/v0.2.30...v0.2.31