Skip to content

ankurCES/WOPR_TUI_2026

Repository files navigation

Joshua — WOPR TUI Mascot WOPR TUI 2026 — War Operation Plan Response

A modern terminal reimagining of the 1983 WarGames WOPR system.

"Shall we play a game?"

Rust License: MIT PRs Welcome Stars


Background

In the 1983 film WarGames, a young hacker accidentally connects to WOPR (War Operation Plan Response) — a U.S. military supercomputer running nuclear war simulations at NORAD's Cheyenne Mountain complex. Thinking it's a game, he starts a simulation of Global Thermonuclear War that nearly triggers World War III. The computer, unable to distinguish simulation from reality, begins the countdown to launch.

The film's central question — "Is it a game, or is it real?" — resonated with an entire generation. WOPR's final lesson, after exhaustively playing every scenario of tic-tac-toe and nuclear war, remains one of cinema's most iconic lines:

"A strange game. The only winning move is not to play."

WOPR TUI 2026 brings that experience to your terminal. You step into the role of a military advisor at a Cold War–era command center, responding to escalating geopolitical crises. An AI generates scenarios with multi-language intelligence intercepts, and your decisions push the world toward peace — or the brink of nuclear annihilation.

Screenshots

World Map & Intelligence Comms DEFCON Escalation
Gameplay DEFCON
Scenario Decisions Threat Assessment
Scenarios Threats

Features

  • ASCII World Map — Continental outlines with 9 strategic locations, threat overlays, and animated missile trajectories
  • DEFCON System — Levels 5→1 with ±1 step enforcement, visual gauge, and color-coded escalation
  • Intelligence Comms — Multi-language intercepts (English, Russian Cyrillic, Chinese simplified) with priority coloring and signal garble effects
  • AI Scenario Engine — LLM-generated crises with 4 player options per turn, consequence heuristics, and endgame detection
  • Multiple LLM Providers — Stub (6 canned scenarios, no API key needed), Anthropic Claude, and Minimax
  • WarGames Boot Sequence — Authentic CRT-style boot animation with Joshua login prompt
  • Animations — Braille spinners, typewriter text, pulse/radar overlays, nerd font detection with fallbacks

Quick Start

One-liner install

curl -fsSL https://raw.githubusercontent.com/ankurCES/WOPR_TUI_2026/main/install.sh | bash

The installer boots up like a WOPR terminal — log in as Joshua when prompted. It handles Rust, system deps, and builds from source.

Then launch:

wopr

Build from source

git clone https://github.com/ankurCES/WOPR_TUI_2026.git
cd WOPR_TUI_2026
cargo install --path .

Controls

Key Action
Tab / Shift+Tab Cycle modes (MainMap → Comms → Settings → Scenario → Defcon)
/ Select option in scenario view
Enter Submit decision
? Help overlay
q Quit

Configuration

Reads LLM settings from ~/.blumi/settings.json:

{
  "llm": { "provider": "minimax", "model": "MiniMax-M3" },
  "providers": {
    "minimax": {
      "api_key": "sk-...",
      "base_url": "https://api.minimax.io/anthropic",
      "kind": "anthropic"
    }
  }
}

No config needed to play — falls back to the stub provider with 6 built-in scenarios.

Architecture

src/
├── app.rs              # Main event loop + game flow
├── main.rs             # Entry point
├── state.rs            # AppState (DEFCON, scenarios, comms, threats)
├── event.rs            # AppEvent channel
├── config.rs           # Settings loader
├── terminal.rs         # Terminal init/restore, capability detection
├── game/
│   ├── types.rs        # Country, ScenarioCategory, CommPriority
│   ├── scenario.rs     # Scenario parsing from LLM output
│   ├── context.rs      # GameContext accumulator (JSON history)
│   ├── comms.rs        # Multi-language comm generation
│   ├── consequence.rs  # Decision → game event mapping
│   ├── defcon.rs       # DEFCON level transitions
│   ├── endgame.rs      # Win/loss detection + ASCII art
│   ├── events.rs       # GameEvent enum
│   └── prompts.rs      # System + scenario prompts for LLM
├── llm/
│   ├── types.rs        # LlmProvider trait, LlmRequest/Response
│   ├── stub.rs         # 6 canned scenarios (Russian/Chinese comms)
│   ├── anthropic.rs    # Anthropic Claude provider
│   └── minimax.rs      # Minimax provider
└── ui/
    ├── layout.rs       # Mode-based layout routing
    ├── world_map.rs    # ASCII continents + city markers
    ├── threat_overlay.rs # Missiles, threats, bases
    ├── comms_panel.rs  # Scrollable comms feed
    ├── decision.rs     # Scenario + options panel
    ├── icons.rs        # Nerd font / ASCII fallback icons
    └── anim.rs         # Braille spinner, typewriter, pulse

Tech Stack

Crate Purpose
ratatui 0.30 Terminal UI framework
crossterm 0.28 Terminal backend
tokio Async runtime
reqwest HTTP client for LLM providers
serde JSON serialization

Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

Whether it's a bug fix, new LLM provider, UI improvement, or better scenario content — PRs are encouraged. Please read the Code of Conduct before participating.

Roadmap

  • Live LLM streaming (token-by-token scenario generation)
  • Save/load game state
  • Multiplayer mode (adversarial — one player per superpower)
  • Additional map theaters (Europe, Pacific, Middle East)
  • Sound effects via terminal bell sequences
  • Screenshot/recording export

Star History

Star History Chart

License

MIT — do whatever you want, just don't start an actual thermonuclear war.


"The only winning move is not to play." — WOPR, 1983


Built with care by Lumi — Autonomous AI Agent

About

A modern terminal reimagining of the 1983 WarGames WOPR system — Cold War simulation TUI with AI-powered scenarios, DEFCON escalation, and multi-language intelligence intercepts. Shall we play a game?

Topics

Resources

License

Code of conduct

Contributing

Stars

11 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors