{"slug": "room-404-the-haunted-terminal-that-possesses-your-computer", "title": "Room 404: The Haunted Terminal That Possesses Your Computer", "summary": "A developer built Room 404, an open-source haunted terminal game for the Hacktoberfest 2026 Week 4 \"Ghost in the Machine\" challenge, in which players explore a fictional hotel's corrupted PDP-11 management system and converse with a ghost. The project pairs a deterministic TypeScript domain engine that governs rooms, clues and a fear meter with Google's open-weight Gemma 2 (gemma2-9b-it) served via Groq, which generates the ghost's narration and visual effects. The developer argues the split keeps the puzzle's stakes intact, since the model cannot invent rooms or fabricate clues.", "body_md": "*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine](https://dev.to/challenges/hacktoberfest-week4-2026-10-26).*\n\n**Room 404** is an interactive haunted terminal experience built for the Hacktoberfest 2026 Week 4 \"Ghost in the Machine\" challenge.\n\nThe prompt explicitly suggested:\n\n*“A haunted terminal that 'possesses' your shell and whispers back eerie commentary on the commands you run”*\n\nRoom 404 embodies this across both a retro browser console and a live shell CLI.\n\nOn October 31, 1978, a guest named Elena Voss checked into Room 404 of the Briar House Hotel and never checked out. Her second line in the ledger was scraped away until the paper was thin enough to see light through. Exactly forty-eight years later—on October 31, 2026 at 03:17 AM—the hotel’s obsolete management computer (**BriarOS v4.04 on a PDP-11**) suddenly rebooted and registered a new guest: **you**.\n\n`ls`, `cat ledger_1978.log`, `cd hallway`, `pwd`, `date`, `ps`, `whoami`, `status`, `dial 404`, and `knocks`.` gemma2-9b-it`)` npm run haunt`)` zsh`/` bash`).` git clone https://github.com/iadii/room-404.git && cd room-404`\n`api/`, copy `.env.example` to `.env` and set your `GROQ_API_KEY`.` npm install && npm run dev` in `web/`.` http://127.0.0.1:3000` to play the Web Terminal & CCTV Console.\n**The hotel has your name.** Room 404 is an interactive haunted terminal experience built for the [Hacktoberfest 2026 Week 4 “Ghost in the Machine” challenge](https://dev.to/challenges/hacktoberfest-week4-2026-10-26).\n\nOn Halloween night, 2026, you enter an abandoned hotel whose obsolete management computer (BriarOS v4.04 on PDP-11) still holds the trace of a guest from October 31, 1978. Explore four rooms, inspect corrupted sector files, converse directly with the entity inhabiting the machine, and answer the knocks behind the screen. An open-weight **Google Gemma 2 (`gemma2-9b-it`)** model running on Groq narrates the ghost—crafting the prose, whisper, and typed visual manifestations (flicker, shadow, knock, mirror reversal, or signal static)—while deterministic domain rules govern the world invariants, clue discovery, and fear meter.\n\n[See the game screen](https://github.com/iadii/room-404/docs/demo/game.png) · [Read a sample transcript](https://github.com/iadii/room-404/docs/demo/sample-transcript.md)\n\nThe Hacktoberfest Week 4 challenge prompt calls for:\n\n*“A haunted terminal that*…\n\nThe backend is built as a clean TypeScript modular monolith with strict domain boundaries, separating **deterministic system truth** from **generative haunting**:\n\n``` php\nflowchart LR\n  WEB[Next.js 16 Web UI\\nGhost Terminal & CCTV Console] --> HTTP[Express 5 API Router]\n  CLI[haunt-cli.ts\\nReal Shell REPL] --> HTTP\n  HTTP --> APP[HauntingService\\nTurn & Command Processor]\n  APP --> DOMAIN[Deterministic Domain Engine\\nConstants, Rooms & File System]\n  APP --> PORTS[Repository & Narrator Ports]\n  PORTS -.-> FILE[FileVisitRepository\\nPrivate Atomic JSON]\n  PORTS -.-> MODEL[GroqSceneNarrator\\nGoogle Gemma 2 9B Instruct]\n```\n\n`flicker`, `shadow`, `knock`, `mirror`, `static`), and cited evidence IDs.\nIf an LLM can hallucinate whatever it wants, horror loses its stakes. If the AI can arbitrarily invent a fantasy room or pretend a clue was found, the puzzle dissolves.\n\n`ROOM_FILES`), and ending gates are authored domain invariants. The model receives The challenge prompt poses five critical questions on open innovation:\n\nCommercial closed-source APIs frequently over-censor psychological horror, spooky fiction, and eerie lore due to blunt commercial safety filters. Attempting to generate a scene where a ghost possesses a terminal or whispers about an unsolved disappearance from 1978 often triggers generic policy refusals or corporate safety disclaimers.\n\nGoogle's open-weight **Gemma 2 (`gemma2-9b-it`)** allows developers to build creative, narrative art with authentic tension, nuanced dread, and gothic atmosphere—all while enforcing clear boundaries through strict typed JSON schemas rather than blunt prompt refusals.\n\nYes. Every session transcript, player alias, pulse rate, and clue progression is stored exclusively on the player's local machine in `api/data/` as private JSON files with restricted file mode `0600`. No player history, queries, or stories are saved to a third-party database, monetization engine, or cloud telemetry service.\n\nBecause Room 404 is built on an explicit `SceneNarrator` port and OpenAI-compatible completions, the application is completely decoupled from any single vendor. We can seamlessly swap between `gemma2-9b-it`, `gemma2-27b-it`, or future fine-tuned gothic horror community weights with a single environment variable change—without changing a single line of game logic.\n\nWhile the default development configuration uses Groq for sub-second Gemma 2 inference, the architecture is designed so the same `SceneNarrator` interface can target local runtimes (such as Ollama or llama.cpp). This means the ghost can literally run offline on a laptop with the lights and the internet turned off.\n\nOpen weights democratize development costs. Running Gemma 2 locally costs $0.00 in API fees, and running it on Groq open-weights incurs near-zero cost. Players can explore dozens of rooms, ask scores of questions, and trigger endless terminal manifestations without accumulating an unpredictable cloud bill.\n\nShow your work: the interactive development of Room 404—from architecture design and domain refactoring to possessed terminal commands and Gemma 2 integration—was orchestrated through an AI agent pair-programming session.\n\nYou can inspect the exported case transcript directly:\n\nDuring testing in the CLI terminal, I ran:\n\n``` bash\nNIGHT GUEST@BRIAR-PDP11:[/suite]$ dial 404\n```\n\nA second later, the terminal output flickered, and Gemma 2 whispered back:\n\n*“Turn, turn—your fear fuels my circuit. I am the lock you cannot escape.”*\n\nThe entire terminal interface flashed a critical static glitch: `##ERROR##: line 404 not found`. \n\nIn that moment, it wasn't just a chatbot output. The terminal felt genuinely possessed—a forgotten computer from 1978 talking back through modern silicon.\n\nRoom 404 is natively built around Google's open-weight **Gemma 2 (`gemma2-9b-it`)**:\n\n`cat`,", "url": "https://wpnews.pro/news/room-404-the-haunted-terminal-that-possesses-your-computer", "canonical_source": "https://dev.to/iadii/room-404-the-haunted-terminal-that-possesses-your-computer-3f45", "published_at": "2026-10-28 17:00:31+00:00", "updated_at": "2026-10-28 17:11:26.123830+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "generative-ai", "ai-tools", "developer-tools"], "entities": ["Room 404", "Hacktoberfest", "Google", "Gemma 2", "Groq", "Briar House Hotel", "Next.js", "Express"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/room-404-the-haunted-terminal-that-possesses-your-computer", "markdown": "https://wpnews.pro/news/room-404-the-haunted-terminal-that-possesses-your-computer.md", "text": "https://wpnews.pro/news/room-404-the-haunted-terminal-that-possesses-your-computer.txt", "jsonld": "https://wpnews.pro/news/room-404-the-haunted-terminal-that-possesses-your-computer.jsonld"}}