Tiny Terminal

2026/02/10

tiny-terminal

A minimal terminal emulator for resource-constrained systems.

tiny-terminal is designed for old hardware where modern terminal emulators consume excessive memory. It uses X11 directly with no framework dependencies, targeting sub-50MB memory usage during operation.

This is a learning project. Expect bugs and missing features.

Design

tiny-terminal implements only essential terminal functionality:

No GPU acceleration. No tabs. No configuration UI. Just a window that runs your shell.

The entire codebase is written in C with explicit focus on memory efficiency over features.

Current Status

Working:

Not Yet Implemented:

Building

Requirements:

make

To run:

./tiny-terminal

Note: Currently the window displays blank white because output rendering is not implemented. Input works but you won’t see what you’re typing.

Architecture

The codebase is split into modules:

Each module is designed to be independently testable and has minimal cross-dependencies.

Memory Target

Goal: <50MB resident memory under normal shell usage.

Current measurement methodology:

ps aux | grep tiny-terminal

Binary size is kept minimal by avoiding external libraries where possible. The current stripped binary is approximately 26KB.

Platform Support

Primary target: Linux with X11.

The code uses POSIX APIs and should be portable to *BSD systems with minimal changes. Wayland support is not planned.

Contributing

This is primarily a personal learning project, but bug reports and patches are welcome.

The focus is on simplicity and resource efficiency. Feature requests that increase memory usage or add external dependencies will likely be rejected.

License

See LICENSE file.