brightSay hi
← The whole shelf

KTerminal

2026

A GPU-accelerated terminal core in Rust — one VT implementation, pluggable clients from a GTK4 workspace down to a C ABI for mobile.

Year
2026
Stack
  • Rust
  • GTK4
  • wgpu
KTerminal workspace — projects rail, terminal center, Info / Files / Git / Agent side panel
KTerminal workspace — projects rail, terminal center, Info / Files / Git / Agent side panel

KTerminal is a cross-platform terminal built as a stack of Rust crates: a pure VT/emulator core at the bottom, toolkit-specific clients at the top, and a hard rule between them — clients never fork VT logic, and GUI toolkits never leak into the core.

The crate stack

Crate Responsibility
kterminal-core VT/ANSI, grid, damage, effects, key encode — no I/O, no GPU
kterminal-pty Unix PTY, Windows ConPTY, NullPty for tests
kterminal Session facade (default: core + PTY only)
kterminal-host Shared client kit — paste, fonts, clipboard helpers
kterminal-render Optional wgpu cell renderer
kterminal-gtk GTK4 project workspace → bin kterminal
kterminal-winit winit + wgpu → bin kterminal-winit
kterminal-ffi C ABI with Swift / Kotlin binding stubs for mobile hosts

The runtime loop is the classic one: read bytes from the PTY, advance the grid, take the damage, draw only what changed. Kitty keyboard modes and Kitty graphics are in; scrollback reflows on resize; OSC 52 clipboard goes through explicit host policies.

The GTK4 workspace

The main client is terminal-centered but project-oriented: projects on the left, terminal or editor in the center, Info / Files / Git / Agent on the right. The Agent panel opens coding CLIs — Claude Code, Codex, and friends — as interactive terminal sessions. KTerminal stays a terminal, not an IDE agent host.

Install

curl -fsSL https://raw.githubusercontent.com/SihanTeng/KTerminal/main/scripts/install.sh | sh

Pin a release or prefix:

curl -fsSL https://raw.githubusercontent.com/SihanTeng/KTerminal/main/scripts/install.sh | sh -s -- --version v0.1.0
curl -fsSL https://raw.githubusercontent.com/SihanTeng/KTerminal/main/scripts/install.sh | sh -s -- --prefix ~/.local

From source (GTK4 dev packages required for the GTK client):

cargo test -p kterminal-core
cargo run -p kterminal-gtk
cargo run -p kterminal-winit

Release tarballs for Linux x86_64 and ARM64 ship from CI on version tags. Design language is locked in design.md and applied via GTK tokens in crates/kterminal-gtk/style/.