Learn codebases by playing Oregon Trail. A Claude Code plugin that turns codebases into retro pixel art trail games.
Travel through ~8 stops representing stages of a project's architecture, answer quiz events disguised as trail decisions, and try to keep your party alive long enough to reach Response Frontier.
26 games ship ready to play in your browser — no Claude Code required.
Play online or serve locally (Just open index.html or run a python server for nicer URLs/potential issues with JS loading):
git clone https://github.com/dtran320/coderegon-trail.git
cd coderegon-trail
python3 -m http.server 8080
# visit http://localhost:8080Each game is a self-contained HTML file that defines TRAIL_DATA (stops, code snippets, quiz events) and loads the shared engine.js for rendering, state management, audio, and UI. No build step, no bundler, no framework.
Game loop: Title screen -> party setup (4 members = key concepts) -> travel between stops -> quiz events between stops (weather, river crossings, encounters, misfortunes, fortunes) -> arrive at Response Frontier to win, or die of tech debt dysentery trying.
- Three.js — 3D hub page with an Apple IIe desk scene, CRT monitor with scanlines and phosphorescent glow, and a floppy disk carousel with insertion animations
- Canvas — all pixel art is procedural (wagon, oxen, mountains, trees, clouds drawn from
fillRect/arcprimitives, no sprite sheets), with 5-layer parallax scrolling - Raw Web Audio API — square wave melody + triangle wave bass at 110 BPM, and procedurally synthesized floppy disk sounds (mechanical slide, latch click, stepper motor seeks, drive hum) — no audio samples or libraries
- Shiki — syntax highlighting for code snippets at trail stops, with a regex fallback
Install as a Claude Code plugin to generate trails for any codebase or PR:
/plugin marketplace add dtran320/coderegon-trail
/plugin install coderegon-trail@coderegon-trail
Then in Claude Code:
/trail # generate a trail from the current repo
/trail pr 123 # turn PR #123 into a trail
/trail pr main..feat # branch comparison
node tests/validate-trails.js # validate trail data structure (3083 checks)
node tests/test-scoring.js # test gameplay scoring logic (35 tests)
node scripts/audit-trails.js # extract all Q&A for human review
node scripts/audit-trails.js --json # machine-readable output
node scripts/check-staleness.js # check if upstream repos have newer commitsengine.js Shared game engine (rendering, state, canvas, audio, Shiki, UI)
<game>/index.html Per-game HTML (TRAIL_DATA + overrides, loads engine.js)
index.html Hub page — 3D desk scene with floppy disk selector
commands/ CLI commands (markdown specs)
agents/ Claude-powered analysis agents
skills/ Game generation + narration guidelines
scripts/ Shell infrastructure (TTS, config, audit tools)
tests/ Trail validation and scoring tests
config/ Default configuration
This plugin also includes TTS-narrated code review tools:
Walk through a PR or diff with TTS narration, ranked by importance:
/diff-review # uncommitted changes
/diff-review 123 # GitHub PR #123
/diff-review main..feat # branch comparison
/diff-review --team # multi-voice team mode
Explore an unfamiliar codebase with a guided TTS-narrated tour:
/walkthrough # full repo tour
/walkthrough src/api # scoped to a directory
/walkthrough --team # multi-voice team mode
Both TTS commands support interactive navigation during playback:
| Command | Action |
|---|---|
next / prev |
Navigate sections |
detail |
Deep dive into current section |
fly |
Code fly-through with auto-advancing snippets |
question <text> |
Ask about current section |
done |
End with summary |
Default TTS uses the macOS say command. Optional alternatives:
# OpenAI TTS
export DIFF_REVIEW_TTS_ENGINE=openai
export OPENAI_API_KEY=sk-...
# ElevenLabs TTS
export DIFF_REVIEW_TTS_ENGINE=elevenlabs
export ELEVENLABS_API_KEY=...See CONTRIBUTING.md for guidelines.
The Oregon Trail is a registered trademark with a long history of ownership including MECC, The Learning Company, Houghton Mifflin Harcourt, and HarperCollins. This project is not affiliated with or endorsed by any of the trademark holders.

