Project

go-te

active

VT100/VT520 terminal library for Go — pyte-faithful, ESCTest2, SVG export.

Overview

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, go-rdp, and ghostty-web.

How it works

Follows pyte's Stream + Screen architecture. The port reproduces pyte's exact semantics in Go — edge cases handled identically. DiffScreen tracks dirty cells for efficient WebSocket updates. SVG export snapshots any screen state for screenshots or test reports.

Features
🔣
Pyte-faithful, VT100–VT520

1:1 pyte semantics. ESCTest2 conformance.

🖼
SVG export

Snapshot screen state as SVG.

📦
Pure Go

go get github.com/rcarmo/go-te. Any GOARCH.

🔗
Shared engine

Powers webterm, go-rdp, ghostty-web.

Architecture
Byte stream PTY / SSH / pipe Escape parser CSI · OSC · DCS Screen model cells · cursor · attrs History scroll buffer Modes DEC private Consumer renderer / diff / snapshot Go terminal emulator library — VT100/VT220/VT520 screen model