Native terminal. Explicit data flows.

The stable macOS app and the upcoming Rust/GPUI app have different UI architectures. Here is what is verified today.

Stable and candidate

Download links serve stable v0.5.1 for macOS. The Rust/GPUI 0.6.0-rc.1 candidate is unreleased. Release status and migration plan.

Stable v0.5.1 uses SwiftUI/AppKit for the application and includes Swift and Rust terminal components plus Go helpers. Its package declares macOS 14 as the minimum. The candidate moves application logic and UI to Rust/GPUI; cross-platform CI does not announce Linux or Windows releases.

Stable package manifest

Terminal processing and rendering

The stable ANSI parsing path tries a Rust parser and falls back to Swift. The terminal uses a custom Metal renderer and render-state handoff code. A separate Swift SIMD scanning helper has no production caller in the audited tag; the earlier SPSC ring-buffer implementation was removed. These should not be advertised as active parser or PTY optimizations.

Queue, buffer and GPU choices are implementation details rather than proof of a fixed latency or zero contention. The site makes no universal input-to-display benchmark claim. Rendering · Parsing · PTY queue

Local records and external connections

Session, usage and diagnostic records are stored locally. Shell commands and external AI clients can contact their own services. Optional error explanations send selected context to the configured model provider; proxy routing forwards configured API traffic. Remote control uses a network relay, and configured notification actions or a submitted bug report can send data externally.

Local storage is not a promise that all application features work offline or that no data can leave the machine. Review the destination and content of each integration you enable.

Safety has a scope

Protected input, paste checks and MCP approval policies can help review actions. They are not a shell sandbox or a proof that arbitrary commands are safe. A subprocess or a separately connected tool may execute outside the protected input path.

Command protection · MCP permissions

Rust/GPUI performance diagnostics

The unreleased candidate records local input dispatch, PTY queue and output-to-CPU-paint timings separately from provider request latency. CPU paint time is not physical display scanout time. Its delayed splash appears only when no terminal frame has painted after 200 ms, and closes on the first terminal paint.

Candidate details and release gates