pi-doom
Play DOOM in your terminal with pi
Package details
Install pi-doom from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-doom- Package
pi-doom- Version
0.1.2- Published
- Feb 2, 2026
- Downloads
- 143/mo · 55/wk
- Author
- badlogic
- License
- GPL-2.0
- Types
- extension
- Size
- 4.4 MB
- Dependencies
- 1 dependency · 0 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
],
"video": "https://sink.mariozechner.at/api/share/f90ba774c4f13b0274bd5655dcb44922/file/doom.mp4"
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-doom
Play DOOM in your terminal with pi.

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
| Action | Keys |
|---|---|
| Move | WASD or Arrow Keys |
| Run | Shift + WASD |
| Fire | F or Ctrl |
| Use/Open | Space |
| Weapons | 1-7 |
| Map | Tab |
| Menu | Escape |
| Pause/Quit | Q |
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
- id Software for the original DOOM
- doomgeneric for the portable DOOM implementation
- opentui-doom for the inspiration
License
GPL-2.0 (DOOM source code license)