Paneflow 0.8.1: libghostty-vt replaces Alacritty on Windows
Paneflow 0.8.1 brings libghostty-vt to the native Windows build. On the official x64 MSI, every new terminal session now selects Ghostty when terminal.backend is omitted or left on auto.
This extends the terminal-engine migration that shipped on Linux in Paneflow 0.8.0. Paneflow now uses the same Ghostty VT core by default on Linux x86_64, Linux ARM64, and Windows x64 MSVC. Alacritty remains available on every platform as the explicit recovery backend, and stays the default on macOS and unsupported targets.

The Ghostty engine now runs on ConPTY
Paneflow integrates Ghostty at the VT engine layer. libghostty-vt parses terminal sequences, maintains the grid and cursor state, handles graphemes, wrapping and reflow, and encodes keyboard and mouse input. Paneflow continues to own the window, panes, sessions, process lifecycle, persistence, and GPUI rendering.
The Windows port adds a native host around that engine. Paneflow opens the pseudoterminal through portable-pty, which uses ConPTY on Windows, then feeds its UTF-8 output into libghostty-vt. Ghostty state is copied into owned Rust snapshots before GPUI paints it. The Ghostty application, its interface, and its renderer are not embedded in Paneflow.
Keeping these boundaries separate matters on Windows. ConPTY owns the shell connection and operating-system process contract. Ghostty owns terminal interpretation. Paneflow owns the product and the pixels. The same backend-neutral renderer can therefore display Alacritty or Ghostty sessions without a Windows-specific rendering path.
Porting the engine required a Windows lifecycle, not just a new library
A static library that compiles on Windows is only the first step. Terminal sessions also need deterministic startup, resize, output draining, shutdown, and descendant cleanup across PowerShell, command prompts, TUIs, and coding agents.
The Windows Ghostty host coalesces ConPTY resizes, drains the final output before closing a session, joins its reader before exit, and keeps backpressure bounded when several panes produce output at once. Paneflow 0.8.1 also batches Windows Ghostty redraws to avoid unnecessary paint work.
Input crosses the same boundary. The integration covers Ghostty keyboard encoding, AltGr, dead keys, IME commits, paste, clipboard, mouse, focus, and hyperlinks. Two final 0.8.1 fixes preserve multiline Shift+Enter input through ConPTY, including coding-agent prompts that use the shortcut to insert a newline.
A pinned static MSVC artifact ships inside Paneflow
The official Windows x64 build contains a pinned ghostty-vt-static.lib archive. Its source commit, Zig toolchain, headers, generated Rust bindings, symbols, build metadata, licenses, and checksums are tracked with the repository.
Users do not need to install Ghostty, Zig, a DLL, or another runtime. The standard MSI consumes the verified archive during the Paneflow build, and the resulting executable links the engine statically. The native rebuild and the consuming Windows build remain separate so CI can detect source, ABI, or artifact drift before a release.
Paneflow keeps the raw C ABI inside its -sys crate and exposes safe Rust ownership above it. Native handles are released through the matching Ghostty allocator, callback panics stay behind the FFI boundary, and borrowed Ghostty rows or cells never survive the terminal lock or cross a frame boundary.
Ghostty is automatic, Alacritty remains one setting away
terminal.backend accepts three values on Windows: auto, ghostty, and alacritty. In the official Paneflow 0.8.1 x64 build, both auto and ghostty select the Ghostty engine. Set alacritty in paneflow.json to force the previous backend for newly created sessions:
{
"terminal": {
"backend": "alacritty"
}
}The setting applies only to new sessions. Paneflow may fall back to Alacritty once if Ghostty fails before a shell process exists. After the process has started, the session never changes backend and Paneflow never launches a second shell behind it.
This recovery path keeps terminal failures local and reversible. You can return to Alacritty without reinstalling Paneflow or changing workspace data, then switch back to auto when the issue is understood.
One terminal core across Linux and Windows
Paneflow 0.8.0 established the engine boundary on Linux. Version 0.8.1 proves that the boundary can cross a very different PTY and process model without moving platform details into the renderer or the workspace model.
Windows ARM64 is outside this release and continues to use Alacritty. macOS also stays on Alacritty while its Ghostty path is evaluated separately. On supported Linux and Windows builds, auto now means the same thing: Ghostty for the terminal core, GPUI for rendering, and Paneflow for the multi-agent workspace around it.
Install Paneflow 0.8.1, open a new pane, and run the PowerShell, WSL shell, TUI, or coding agent you normally use. If a terminal behavior regresses, set terminal.backend to alacritty for new sessions and report the shell, Windows version, command, and shortest reproducible sequence.