Instrument any terminal program — observe it, drive it, render it anywhere.

Software Architecture, Design & Engineering by Nicholas J. Kisseberth.

Code Synthesized via Anthropic Claude Code / Opus 4.8.

Automated Code Review via OpenAI Codex / ChatGPT 5.5.

tappty hosts a program on a pseudo-terminal, fans its output to any number of observers — a window, a socket, an automated driver — and routes input back, so a human and a bot can watch and drive the very same session.

One observe / control contract

Every consumer — a window, a socket logger, an automated driver — is an equal client of the same Session. A human and a bot take turns driving via the talking stick.

Render it four ways

A curses CUI, two green-phosphor GUI windows (pygame and arcade/OpenGL), and a browser tab over a WebSocket — all from the same styled cells(), color included.

Drive it over a bus

A Unix-socket or TCP bus carries the same contract off-box: subscribe to frames, capture a command's output, hand off the stick — with color over the wire.

Documentation

Use it, build on it, and see how it works.

Command guide

The tapterm command in depth: the CUI / GUI / web / headless modes, the terminal model, recordings, snapshots, and recipes.

Open

Programming reference

The library API: Session, the five Sources, both Terminal backends, the bus, the renderers and compositor, with the shared contracts.

Open

Architecture & design

How it works inside and why: the Source → Terminal → Session → renderer/bus pipeline, concurrency, the trust model, and the known limits.

Open

Gallery

See it in action — screenshots of color, the digital-rain animation, and the compositor, each with runnable source.

Open

Changelog

Dated history, newest first: when tappty started, when it first worked, and what has changed since.

Open