pi-doom

January 7, 2026 ยท View on GitHub

Play DOOM in your terminal with pi.

DOOM in terminal

Run as pi Extension

git clone https://github.com/badlogic/pi-doom.git
pi --extensions /path/to/pi-doom

Then in pi:

/doom

Press Q to pause and return to pi. Run /doom again to resume.

Run Standalone

git clone https://github.com/badlogic/pi-doom.git
cd pi-doom
npm install
npm start

Press Q or Ctrl+C to quit.

Controls

ActionKeys
MoveWASD or Arrow Keys
RunShift + WASD
FireF or Ctrl
Use/OpenSpace
Weapons1-7
MapTab
MenuEscape
Pause/QuitQ

How It Works

DOOM runs as WebAssembly compiled from doomgeneric. Each frame is rendered using half-block characters (โ–€) with 24-bit color, where the top pixel is the foreground color and the bottom pixel is the background color.

The WASM module and shareware WAD are bundled in the repo, so there are no external dependencies.

Credits

License

GPL-2.0 (DOOM source code license)