Amitk is a toolkit based on the idea that carefully crafted display paradigms can carry forward. Amitk starts with the serial display paradigm and carries that into a terminal oriented paradigm, then to a fully graphical and windowed paradigm.

The toolkit provides a unified API across display models, so the same source code can target serial console, terminal, or graphical output. It includes modules for terminal I/O, graphics, sound, networking, and system services, along with games, editors, and test programs that demonstrate its capabilities.

Amitk runs on Linux, Windows, Mac OS X, and FreeBSD.

See the README for quick start instructions and INSTALL for setup details.

Screenshots

The same program can target different display models by simply relinking:

Hello world on Windows command line
Hello world on Windows console API
Hello world in graphical mode

Games and applications built with Amitk:

Snake console game
Breakout graphical game
Resizable clock program
Chess game

Repository

Documentation

Display Models

Amitk provides three display models, each building on the previous:

Modules

Sample Programs

Terminal Games

Graphical Programs

Utilities

Building

Linux

. setpath
./configure
make

Windows

setpath
configure
make

FreeBSD

. setpath
./configure
gmake

FAQs

Q: What does "Ami" mean?
A: "Ami" is French for "friend". The toolkit was originally called "Petit Ami" (little friend).
Q: Why was the prefix changed from pa_ to ami_?
A: The pa_ prefix conflicted with Pulse Audio, which uses the same prefix for its API. The ami_ prefix is unique to this project.
Q: Can I use the same source for terminal and graphical output?
A: Yes. Programs written to the terminal API can be compiled against either the terminal or graphical library. The graphical version promotes terminal operations to a graphical window automatically.
Q: What platforms are supported?
A: Linux, Windows, Mac OS X, and FreeBSD.