pi-doom

Play DOOM in your terminal with pi

Package details

extension

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.

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

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

License

GPL-2.0 (DOOM source code license)