afk
Twenty effects, zero dependencies, Apache-2.0
Walk away. Your terminal keeps busy.
Doom fire, Matrix rain, fireworks, a maze that solves itself, a Mandelbrot zoom, Pong playing against itself. Twenty effects behind one command, in twelve colour themes, with nothing to install but the tool itself.
Install
pip install afk-term
then just type afk
See it run
afk list printing all twenty built-in effects, each name tinted with a colour that effect actually draws with
Real captured output, not a mock. The colours are the ones afk prints on a terminal.
Why this exists
The good terminal screensavers already exist, but they are scattered across a dozen unrelated programs, each with its own flags, its own colour handling and its own idea of how to quit. Finding them is an afternoon. Remembering which one takes which flag is forever.
afk puts a coherent set behind one command, gives all of them the same themes, controls and quit behaviour, and runs the classics like cmatrix and asciiquarium directly rather than reimplementing them badly.
One command. No dependencies, no daemon, no account, no network.
What you get
-
Twenty effects, one command
Fire, code rain, katakana glyphs, warp stars, fireworks, plasma, ripples, lava, a tunnel, snow, Conway's Life, a Mandelbrot zoom, boids, a self-solving maze, strange attractors, the bouncing logo, Pong, six sorting algorithms, a clock and a scrolling message.
-
It does not flood your terminal
A full repaint of a 200 by 50 window in 24-bit colour is around 300 KB a frame. The renderer keeps the last frame and repaints only the cells that changed, which takes the sparse effects under one kilobyte.
-
Nothing to install but the tool
Standard library only, on Python 3.9 and newer. No build step, no lockfile, no transitive supply chain to audit, and no runtime dependency will ever be added.
-
Works on the terminal you have
Truecolor when your terminal has it, then 256 colours, then 16, then a plain ASCII brightness ramp. NO_COLOR is honoured. afk doctor measures your terminal and tells you what it found.
-
Starts when you stop typing
A real idle hook for zsh, and the tmux lock-command recipe for every other shell. It says which one is real rather than pretending they are the same feature.
-
Credits its sources
Every effect names the prior art it is built on, from cmatrix to the PSX Doom fire routine to Craig Reynolds' Boids, in the README and in afk credits. A test fails if one is missing.
Install and use
Python 3.9 or newer, and a terminal. That is the whole list.
-
Install
The package is afk-term because afk was taken. The command it installs is afk.
pip install afk-term -
Run it
No arguments picks a random effect. Any key brings you back.
afk -
Pick one, or theme it
Name an effect, apply one of twelve palettes, or rotate through everything with afk cycle.
afk --theme dracula lava -
Let it start itself
A real idle hook on zsh. On any other shell, afk shell-init tmux prints the tmux recipe instead of pretending.
afk install-idle zsh --seconds 300
Optional: brew install cmatrix pipes-sh asciiquarium timg. afk runs them directly when they are there, and never mentions them when they are not.