ChaseWNorton/claude-doom

Freedoom Phase 1 を備えたオリジナル Doom エンジンを Claude Code 内でプレイできます。/doom を実行します。
ChaseWNorton/claude-doom

オリジナル Doom エンジン。Freedoom の自由ライセンスゲームアセット。Claude Code 内で動くライブゲームパネルで、/doom から開きます。
まず作者の README で marketplace とプラグイン名を確認してください。コマンドはリポジトリの構成によって変わる場合があります。
claude plugin marketplace add ChaseWNorton/claude-doom claude plugin install doom
The original Doom engine. Freedoom's freely licensed game assets. A live game pane inside Claude Code, opened with /doom.
Mac Apple Silicon alpha · macOS 14+ · Node.js 22+ · Claude login required

The clip is rendered from real terminal output during gameplay. The engine runs locally; playing makes no model calls.
Download v0.1.0-alpha.2 for Mac Apple Silicon, extract it, then run this from the extracted claude-doom folder:
bash scripts/play.sh
Enter /doom, then click the keyboard strip below the game. Escape gives the keyboard back to Claude. Use a terminal with true color and mouse reporting, preferably at least 110 columns × 50 rows.
The ZIP includes the compiled engine, full corresponding source, Freedoom assets, and licenses. No compiler is needed. The launcher checks the platform and binary checksum, uses Claude Code 2.1.278 if installed, or installs that exact version into this folder. It enables Mods and fullscreen terminal rendering for that session. Claude Code is downloaded separately from Anthropic and requires your own login.
To verify the download in a terminal, download the neighboring .zip.sha256 asset from the release page and run:
shasum -a 256 -c claude-doom-v0.1.0-alpha.2-darwin-arm64.zip.sha256
Start the tested Claude version with Mods and mouse-capable rendering enabled:
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 CLAUDE_CODE_NO_FLICKER=1 \
npx --yes @anthropic-ai/[email protected]
Then run these commands inside Claude:
/plugin marketplace add ChaseWNorton/claude-doom
/plugin install doom@faros-labs
/reload-plugins
/doom
Choose the installation scope in Claude's install dialog. Keep the two environment flags when starting future sessions. If an organization disables third-party plugins or function hooks, this mod cannot override that policy. Claude marketplace documentation.
| Key | Action | | --- | --- | | W / S, Up / Down | Move forward / backward | | A / D, Left / Right | Turn | | Q / E | Strafe | | Space | Fire | | F | Use / open doors | | 1–7 | Select weapon | | M / Enter | Game menu / select | | Tab | Automap | | P | Pause / resume | | Escape | Give the keyboard back to Claude |
The pane also has Pause, Restart game, and Close game buttons. From Claude's composer, use /doom pause, /doom restart, or /doom close. Restart begins episode 1, map 1, medium difficulty.
If clicks do nothing, use the launcher or the environment flags above, enable your terminal's mouse reporting, and check that CLAUDE_CODE_DISABLE_MOUSE, CLAUDE_CODE_DISABLE_MOUSE_CLICKS, and CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN are not disabling interaction. Fullscreen renderer documentation.
hooks/register.ts opens a native Mod pane. A Node bridge starts the compiled doomgeneric engine, reads its actual 320×200 framebuffer through a pipe, and converts it to half-block terminal pixels. Claude's Raster and $.ui.blit display the game. A focused Client module sends keyboard input back to the engine.
The bridge listens on an ephemeral 127.0.0.1 port with a random per-game token. It makes no external requests. Game frames are not added to the conversation. Closing the mod ends the game, and an abandoned bridge exits after 60 seconds without a client. This all happens within a normal authenticated Claude session.
Building from source additionally requires a C compiler and Git. On macOS, install Apple's Command Line Tools. From a clone:
npm run setup:dev
npm run build
npm test
npm run typecheck
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 .runtime/node_modules/.bin/claude plugin test .
npm run package
npm run test:package
Development setup downloads the pinned, checksum-verified API declarations from Anthropic and installs the tested Claude runtime and TypeScript under .runtime. Those files are not redistributed. See Anthropic's Mods API.
Native tests verify actual movement, rotation, ammunition, pause/resume, restart, raster output, authorization, and process cleanup. Package tests extract the ZIP into a fresh directory and exercise its included engine without compiling. The official Mod test verifies pane rendering and keyboard forwarding. A Mac CI job repeats these checks on a fresh runner.
tests/terminal-smoke.py drives real Claude through a PTY with a logged-in account; its test-only dependencies are pyte and Pillow. npm run preview prints a local browser URL for diagnosing the same native engine. The browser is a separate diagnostic view.
See release procedure for packaging and publishing details.
dcb7a8dbc7a16ce3dda29382ac9aae9d77d21284, derived from the original Doom source, GPL-2.0-or-later. Complete corresponding source is in vendor/doomgeneric; the platform adapter is in native/doomgeneric_claude.c. Build scripts are included.assets.vendor/provenance.json. See third-party notices.No commercial Doom assets are included. This is an independent experiment, not an official Anthropic, id Software, or Freedoom product.