{"slug": "i-built-an-rpg-that-teaches-claude-code-by-making-you-actually-use-it", "title": "I built an RPG that teaches Claude Code by making you actually use it", "summary": "A developer built claude-quest, an open-source text RPG that runs inside a real Claude Code session to teach the CLI from zero to hero. The game uses real sandbox directories and checks actual config files, hooks, and tool calls to grade progress, with missions across four tiers. It is a playable alpha with a handful of example missions, and the developer invites contributions of new missions.", "body_md": "Most tool documentation teaches by just telling you things. You read a page about\n\n`/model`\n\n, or hooks, or subagents, nod along, and forget it by the time you'd\n\nactually need it. I wanted something closer to how people actually learn a CLI,\n\nby using it, with something checking whether you did the thing right or not.\n\nSo I built **claude-quest**, a text RPG that runs entirely inside a real\n\n`claude`\n\nsession and teaches the Claude Code CLI zero to hero.\n\nThis is basically [GameShell](https://github.com/phyver/GameShell)'s philosophy\n\napplied to Claude Code. GameShell teaches Unix shell commands by dropping you\n\ninto a real shell wrapped in a themed fake filesystem, and grading your\n\nprogress by checking real shell/filesystem state instead of asking you to self\n\nreport or answer a quiz question.\n\n`claude-quest`\n\ndoes the same thing, except the \"filesystem\" is a real Claude\n\nCode environment. missions live in real sandbox directories, and progress is\n\nchecked by inspecting what you actually did, config files you wrote, hooks\n\nthat fired, tool calls that happened.\n\nThere's no separate app, no fancy terminal UI, none of that. You say \"let's\n\nplay claude quest\" inside a normal `claude`\n\nsession, and Claude itself becomes\n\nthe game master. It reads real output from the engine and narrates on top of\n\nit, something like this:\n\n``` js\n> lets play claude quest\n\n**The Gatehall**\n\nYou've just been let through the outer gate. The tower keeps no secrets\nfrom those who bother to read the walls...\n\n**Mission: First Contact** (Tier 1, Artifact)\n\nCreate a CLAUDE.md file in this sandbox recording how to run the\nproject's tests. Let me know when you're done and I'll check it.\n\n> done\n\nCLAUDE.md records how to run the tests. Claude Code will know next time.\nMISSION_STATUS: complete\n\n**What you actually learned:** Claude Code reads a file named CLAUDE.md\nin your project root automatically, at the start of every session...\n```\n\nthat's it, that's the whole interface. it's just a chat, with real commands\n\nrunning underneath it and real files getting checked. nothing gets rendered,\n\nnothing gets animated, it's plain text the way `claude`\n\nsessions already look.\n\nEvery mission is one of four tiers, and the grading gets less mechanical the\n\nfurther you go:\n\n`CLAUDE.md`\n\n, a config) and the engine\nchecks the file itself.`claude`\n\nsession and do the thing (switch\nmodels, compact, check cost). the engine checks what landed afterward\n(like `.claude/settings.json`\n\n), never what you said in the session.`claude`\n\nCLI.None of these ask you to type an answer into a prompt, they ask you to leave\n\na trace and then the engine checks the trace.\n\nInside any `claude`\n\nsession:\n\n```\n/plugin marketplace add susheem-k/claude-quest\n/plugin install claude-quest@claude-quest\n```\n\nThen just say \"let's play claude quest.\" Progress saves to `~/.claude-quest/`\n\n,\n\nso it doesn't really matter which project your in when you pick it back up.\n\nThis is a playable alpha, not a finished game. The full loop already works\n\n(characters, saves, hints, grading for all four tiers) but the campaign\n\ndoesn't cover everything Claude Code can do yet. Right now there's only a\n\nhandful of example missions, one or two per tier, across five arcs. More\n\nmissions are getting added.\n\nAnd since this is open source, that part doesn't have to be just me. If\n\nthere's a Claude Code feature you wish more people knew how to use, a\n\ncommand, a hook, a workflow you had to learn the hard way, I'd genuinely like to turn it into a mission. The mission format is just a directory with a goal, a hint, and a `check.js`\n\n(the [design doc](https://github.com/susheem-k/claude-quest/blob/main/docs/DESIGN.md) has the exact file contract for it), so adding one doesn't require touching\n\nthe engine at all.\n\nOpen an [issue](https://github.com/susheem-k/claude-quest/issues) with a\n\nmission idea, or just send a PR with one built already, both are welcome.\n\nif you try it and it teaches you something, a star on the repo genuinely\n\nhelps, it's how other people find it.", "url": "https://wpnews.pro/news/i-built-an-rpg-that-teaches-claude-code-by-making-you-actually-use-it", "canonical_source": "https://dev.to/susheem-k/i-built-an-rpg-that-teaches-claude-code-by-making-you-actually-use-it-mlg", "published_at": "2026-08-26 15:14:07+00:00", "updated_at": "2026-08-26 15:44:54.522945+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "artificial-intelligence"], "entities": ["claude-quest", "Claude Code", "GameShell", "susheem-k"], "alternates": {"html": "https://wpnews.pro/news/i-built-an-rpg-that-teaches-claude-code-by-making-you-actually-use-it", "markdown": "https://wpnews.pro/news/i-built-an-rpg-that-teaches-claude-code-by-making-you-actually-use-it.md", "text": "https://wpnews.pro/news/i-built-an-rpg-that-teaches-claude-code-by-making-you-actually-use-it.txt", "jsonld": "https://wpnews.pro/news/i-built-an-rpg-that-teaches-claude-code-by-making-you-actually-use-it.jsonld"}}