Why teru
Built for a workflow that didn't exist yet — AI agents running in parallel, coordinating through the terminal.
What only teru has
AI agent protocol
The only terminal with native Claude Code integration. CustomPaneBackend receives spawn commands directly — no tmux adapter. OSC 9999 lets any process self-declare as an agent with name, group, status, and progress.
Process graph
Every process tracked in a DAG with parent-child relationships and agent metadata. Query it via MCP, watch status in pane borders, correlate tool calls to output lines. Millisecond lookups.
Unique to teruCross-agent messaging
Multiple Claude Code instances connect to teru's MCP server and query each other's terminal state — read output, send input, broadcast to workspaces. Zero configuration.
Unique to teru1.6MB binary
No FreeType, no fontconfig, no OpenGL, no GTK. Three runtime dependencies and two vendored C files. Most terminals are 6–80MB. teru is 1.6MB.
No GPU required
CPU SIMD rendering via @Vector. Works in VMs, containers, SSH sessions, cheap VPS instances with no GPU. Same binary, same performance everywhere. Frame times under 50μs.
20–50x scrollback compression
Command-stream compression (keyframe/delta encoding). A 50,000-line scrollback costs ~5MB instead of ~150MB. Never lose terminal history to memory limits.
Architecture decisions
One binary, one process
Terminal emulator + multiplexer + tiling manager in the same event loop. No separate tmux server, no IPC overhead, no config translation layer. The renderer and multiplexer share state directly.
CPU over GPU
For terminal rendering — text on a character grid — the GPU is idle 99.9% of the time. SIMD blitting on CPU is faster for this workload and eliminates an entire class of driver compatibility issues.
Zig over Rust
Comptime for platform selection (-Dx11=false). Inline tests adjacent to implementation. @Vector for portable SIMD. Simple build system without a separate DSL.
Compressed scrollback over ring buffers
Traditional terminals store expanded character cells. teru stores the raw VT byte stream with keyframe/delta compression — 20–50x better memory efficiency for the same history depth.
Current limitations
teru is v0.1.x — it works as a daily driver but has gaps:
- No full Unicode: emoji and CJK characters not yet supported (planned v0.3.0)
- No detach/attach daemon mode: sessions don't survive terminal restarts (planned v0.2.0)
- Linux only: macOS and Windows platform stubs compile but are not functional
- Wayland keyboard: currently raw passthrough; proper keymap integration in progress (v0.1.4)
- No shell integration scripts: OSC 133 works but bash/zsh/fish injection is manual (v0.1.5)