Analysis updated 2026-05-18
Write end-to-end tests for full-screen terminal applications.
Simulate keyboard, mouse, and paste events against a real running binary.
Compare terminal screens against saved text snapshots in code review.
| pandelisz/tuiwright | 0xhassaan/nn-from-scratch | 3ks/embedoc | |
|---|---|---|---|
| Stars | 0 | 0 | — |
| Language | Python | Python | Python |
| Last pushed | — | — | 2023-06-08 |
| Maintenance | — | — | Dormant |
| Setup difficulty | — | moderate | hard |
| Complexity | — | 4/5 | 1/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
This is a Python testing library for applications that run in a terminal, the kind of full-screen programs that draw text-based user interfaces. End-to-end testing means the library runs the actual application binary in a real terminal environment and drives it the same way a human would, rather than testing internal code directly. The core problem it solves is that existing approaches either treat terminal output as plain text (which breaks on full-screen apps that move the cursor around), or only work inside the app's own framework, meaning the real binary and the real terminal layer are never actually exercised. This library takes a black-box approach: it spawns the application inside a real pseudo-terminal (PTY), simulates keyboard input, mouse clicks, scrolling, paste events, and window resizes, then checks the screen by reading the resulting grid of on-screen characters. It integrates with pytest as an async plugin, so tests are written as standard async test functions. The API provides methods to type text, press key combinations, click at specific row and column positions, and wait until specific text appears on screen before moving to the next step. Assertions can compare the whole screen against a saved snapshot, which is stored as a plain text file that shows up cleanly in code reviews. Optionally, screenshots can be saved as PNG images and compared pixel by pixel. Internally, the library uses pyte as its terminal emulator to parse screen output, and ptyprocess to manage the pseudo-terminal. The library is written in Python and is described as working on POSIX systems only in its current version.
A Python end-to-end testing library that drives real terminal applications through a pseudo-terminal, checking on-screen text like a human would.
Mainly Python. The stack also includes Python, pytest, pyte.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.