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.
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.
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.
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.
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
The tapterm command in depth: the CUI / GUI / web / headless modes, the terminal model, recordings, snapshots, and recipes.
OpenThe library API: Session, the five Sources, both Terminal backends, the bus, the renderers and compositor, with the shared contracts.
OpenHow it works inside and why: the Source → Terminal → Session → renderer/bus pipeline, concurrency, the trust model, and the known limits.
OpenSee it in action — screenshots of color, the digital-rain animation, and the compositor, each with runnable source.
OpenDated history, newest first: when tappty started, when it first worked, and what has changed since.
Open