Faithful Go port of the Python pyte library, validated against pyte's full test suite and ESCTest2 conformance tests. Multiple screen variants: base, diff (dirty tracking), history, debug. Powers webterm and a few other of my projects.
It all started because I wanted to show "live" screenshots in webterm when I ported it to Go, and sort of escalated from there because I realized that there was _nothing_ out there that came close to pyte for Go.
Follows pyte's architecture where feasible, aiming for a very close match to pyte exact semantics in Go — edge cases handled identically. The notable addition isDiffScreen, which tracks dirty cells for efficient WebSocket updates because I needed that, and the SVG export feature snapshots any screen state for screenshots or test reports.
1:1 pyte semantics. ESCTest2 conformance.
Snapshot screen state as SVG.
go get github.com/rcarmo/go-te. Any GOARCH.
Powers webterm, go-rdp, ghostty-web.