DEV Community

sampo shen
sampo shen

Posted on

terminal-escape-room — a tiny CLI escape room game (Python + Typer)

GitHub Copilot CLI Challenge Submission

This is a submission for the GitHub Copilot CLI Challenge

What I Built

I built terminal-escape-room, a cross-platform CLI text escape-room game.

You progress through rooms defined in JSON, request up to 2 hints per room, submit answers, earn points (with hint penalties), and your progress is persisted locally to a .escape_state.json save file.

Tech stack:

  • Python 3.11+
  • Typer (CLI)
  • Rich (output)
  • Pytest (tests)

Repo: https://github.com/aisamposhen/terminal-escape-room

Demo

Quick run:

python3 -m venv .venv
source .venv/bin/activate
pip install -e .[test]

escape start
escape status
escape hint
escape answer "kernel"
escape reset
Enter fullscreen mode Exit fullscreen mode

90-second demo outline:

escape start
escape status
escape hint
escape answer "kernel"
escape answer "^"
escape answer "git switch -c feature"
Enter fullscreen mode Exit fullscreen mode

My Experience with GitHub Copilot CLI

I used GitHub Copilot CLI as a terminal-first pair programmer to iterate quickly on:

  • Typer command structure (start/status/hint/answer/reset)
  • A small engine layer (room progression + hint limits)
  • A stable JSON persistence schema (started_at/finished_at)
  • Scoring rules + tests

What worked well was keeping prompts very specific (inputs/outputs, edge cases, and file boundaries), then immediately locking changes in with pytest.

Example workflow that felt effective:

  • Ask Copilot CLI for a first-pass implementation (focused on one module at a time)
  • Run tests
  • Ask Copilot CLI to generate/adjust tests to cover an edge case
  • Refactor once the behavior is pinned

If you want to try it locally, everything is self-contained and requires no external services.

Top comments (0)