CaveBridge
Play the 1977 Colossal Cave Adventure by just talking — in any language your LLM speaks. Visit project site · View on GitHub

Overview
Colossal Cave Adventure (1977) is one of the oldest and most iconic text adventures ever written: you explore a cave system, pick things up, solve puzzles, and hunt for treasure. Its interaction is gloriously ancient — the screen prints a paragraph, you type commands like go north, take lamp, open grate, and the game moves on.
It is genuinely charming — and, played today, genuinely painful. CaveBridge is a modern LLM front-end that lets you play it by just talking, while the original 1977 engine stays the single source of truth for the world.
The problem it bridges
Adventure is nominally “natural language,” but in practice you have to learn its fixed command grammar. A lot of the time the puzzle isn't what do I want to do — it's what phrasing is the parser hoping I'll type? For non-English players there's an extra language barrier on top.
Meanwhile, today's LLM-driven / AI-tabletop games feel wonderfully free — you can say anything and the model plays along — but they tend to sink into improv and hallucination: the world state is unstable, items get invented on the fly, rules get quietly rewritten, and the plot drifts. Traditional narrative games are the opposite: a stable, well-designed world, but a narrow action space where you mostly click one of a few options.
CaveBridge combines the two halves: the LLM provides open natural-language interaction; the original game engine provides a strict, real, executable world model.
How it works
The LLM is not the god of this game — it can't invent rooms, items, plot, or rules. The real world state is still maintained by the original 1977 Colossal Cave Adventure logic (the actual C engine). The LLM is just the Dungeon Master at the door:
Your free-form words (any language) → LLM: understand intent → canonical Adventure command → Original C engine (the ONLY source of world state) → executes → Raw engine output → LLM: rewrite it as modern, Dungeon-Master-style narration → You
The LLM never fabricates rooms/items/plot and never secretly edits game state. You can open a raw view (/raw) to see exactly which canonical command it issued and what the engine actually returned — so you can always check whether it's telling the truth.
What it can do
- Natural-language input — no
VERB NOUNto memorize; just say “pick up the lamp and light it.” - Any-language narration — have the DM re-describe the engine's output in Chinese (or whatever your model speaks).
- Multi-step commands — “take everything, then go north.”
- Auto-advance — “follow the stream downhill until you reach the grate.”
- Autosave every turn — no old-school save penalty.
/rawmode — inspect the exact canonical command the LLM generated and the engine's raw output./purist on— turn off the modern conveniences (multi-step, auto-advance, hints) to keep the original experience.- Any OpenAI-compatible Chat API — local LM Studio / Ollama / vLLM, or remote DeepSeek / Gemini / others.
Why it's interesting
It's really a small, verifiable agent / world-model demo: the original engine is a deterministic environment; the LLM can't change the state, only propose actions; every action is executed by the real engine; the narration is bound to the engine output; and you can open the raw view to check whether the LLM is making things up.
That sidesteps the classic failure mode of LLM games, where the world quietly drifts as the model free-associates. Here the world is real — the LLM just helps you enter it comfortably. In a sense, it turns a 1977 command-line game into a 2026 AI-tabletop shell.
What I built
This isn't just an LLM translation/chat wrapper. I refactored the original Adventure at the source level to expose a clean interface for external programs to read and control game state — which is what makes the exits view, per-turn autosave, easy restore, raw mode, multi-step commands, auto-advance, and purist mode possible.
And it isn't “wrap an LLM around a map/nav API”: Adventure is a complete text adventure — locations, items, puzzles, danger, goals, and a designed set of rules. CaveBridge makes that classic world playable again, in today's natural language.
Try it
Prebuilt packages are on Releases for Windows (.exe), macOS (arm64), and Linux (x86_64). First launch asks for an API base URL, key, and model name (changeable in-game via /config); Docker is supported too. Point it at any OpenAI-compatible server, e.g. a local LM Studio:
OPENAI_BASE_URL=http://localhost:1234/v1 OPENAI_API_KEY=lm-studio OPENAI_MODEL=qwen/qwen3.5-9b
Current status
Playable today, and still being tuned: more stable command translation, more token-efficient prompts, better Chinese narration, friendliness to local small models, smoother packaging, and the occasional “please don't let the DM talk so much” problem. Issues, PRs, and stars are all welcome.
Play the 1977 classic Colossal Cave Adventure by just talking — in any language your LLM speaks. The original engine stays the world. The LLM just helps you talk to it.