{"slug": "show-hn-claude-code-arcade", "title": "Show HN: Claude Code Arcade", "summary": "Developer jystervinou released Claude Code Arcade, a tool that runs animated 80s-style arcade games such as Ms. Pac-Man and Frogger in the Claude Code status line, driven by Claude's activity. The tool, available via a GitHub repository, requires Node and macOS or Linux, and can be installed with a single command that writes to user directories and settings. It supports multiple themes, per-window sessions, and optional joystick control, with commands to start, stop, and customize games.", "body_md": "**Vibe code with an 80s arcade vibe.**\n\nAn arcade running in your Claude Code status line, animated by whatever Claude is doing. It works, the arcade plays.\n\nMs. Pac-Man. Frogger. Or an aquarium and a safari, if you want something calmer. They play themselves — grab the joystick if you want, but you don't have to.\n\nEvery window is its own cabinet: its own game, its own creatures, its own score,\nplayed by whatever Claude is doing in *that* session.\n\nOr WOPR, from WarGames, which types its way through the film while Claude works: the logon, the list of games, and a game of Global Thermonuclear War.\n\n*Twenty seconds of the attract reel, playing itself while Claude is idle.\nStill ·\nMP4.*\n\nPaste this into Claude Code (the `!`\n\nruns it as a shell command) or into any\nterminal without the `!`\n\n:\n\n```\n!git clone https://github.com/jystervinou/claude-code-arcade.git ~/.claude-code-arcade && bash ~/.claude-code-arcade/install.sh\n```\n\nThen **fully quit your terminal app (⌘Q) and reopen it** — terminals cache\nglyph lookups per process, so a new tab won't pick the sprite font up.\n\nNeeds Node (any recent version) and macOS or Linux. Nothing system-wide, no\nsudo: it writes `~/.arcade/`\n\n, `~/.local/bin/arcade`\n\n, one font file in your user\nfont dir, and the `statusLine`\n\nkey in `~/.claude/settings.json`\n\n— backing up\nwhatever was there. [Undo it all](#uninstalling) with one command.\n\nIt checks all of those first and stops to ask if anything already there isn't\nits own — an existing `~/.arcade`\n\n, another `arcade`\n\non your PATH, a statusline\nyou're already using.\n\nA new window doesn't start a game. It waits, the way a cabinet waits, and tells you how to put a coin in:\n\n```\nINSERT COIN  ·  type  !arcade start a1b2c3  at this prompt\n```\n\nThat id belongs to the window showing it, so there's never a question of which\none you mean, and the `!`\n\nruns it without leaving Claude Code.\n\n```\narcade start            put a coin in (the id is in the status line)\narcade stop             game over\narcade reset            start this window's game over (WOPR restarts the film)\narcade theme mspacman   Ms. Pac-Man\narcade theme frogger    Frogger\narcade theme wopr       W.O.P.R., typing its way through WarGames\narcade theme aquarium   🐟🐠🐡🦐🦀🦞🪼 / 🦈🐋🐳🐬🐙🦑🐢🦭🐊\narcade theme safari     🐒🦩🐍🦌🦂🦡🦅 / 🐘🦒🦏🦛🐆🦓🐃🦍🐊🐪\narcade demo on          keep playing while Claude is idle\narcade play             joystick (optional)\narcade off              switch the arcade off; arcade on switches it back\narcade status           every window: what it plays, what it has scored\n```\n\nEvery command takes an optional session id: with one it applies to that window,\nwith none to all of them. `arcade theme wopr`\n\nswitches every window, `arcade theme wopr a1b2c3`\n\nswitches one. Any unique prefix of an id works.\n\nThose are ordinary shell commands. Run them in any terminal, or straight from\nthe Claude Code prompt with a `!`\n\nin front — `!arcade theme frogger`\n\nruns it in\nyour session's shell without leaving Claude Code. The one exception is\n`arcade play`\n\n, which takes the keyboard over and so wants a spare terminal pane\nof its own.\n\nSwitch any time — it takes effect live.\n\nShe plays herself: laps the maze, eats the dots, runs from ghosts, doubles back\nfor fruit. Real arcade scoring — each window plays its own credit from zero, and\nthe best any credit has ever reached is kept as the high score (`arcade status`\n\n).\n\n```\narcade off\n```\n\nStops the daemon and blanks the status line, without uninstalling anything: your theme, your scores and the font all stay where they are, and nothing runs in the background until you say so.\n\n```\narcade on\n```\n\nBrings it back within a second — the status line starts the daemon again on its\nnext refresh. `arcade status`\n\nsays which way the switch is set.\n\nMs. Pac-Man and Frogger can be steered. The catch is that Claude Code owns every keystroke in its own window, so there are two ways in — neither is seamless, and the games are perfectly happy without you:\n\n```\narcade play          # in a SPARE terminal pane: ←/→ steer, ↑ boost\narcade play global   # F1 ←, F2 →, F3 boost from any window (macOS)\n```\n\n`global`\n\nneeds a one-time Accessibility grant. If your F-row does brightness\nand volume — Apple's default — those keys aren't F1/F2/F3 at all, so press\nfn+F1/F2/F3, or turn on \"Use F1, F2, etc. keys as standard function keys\".\nIt watches exactly those three keys, can't swallow them, and sends nothing\nanywhere. Either way she goes back to playing herself ~30s after you stop.\n\nThe installer sets this up for you; `arcade font remove`\n\ndrops back to Unicode\nglyphs, and `mspacman`\n\nplays fine either way.\n\nThe sprites are an original pixel font, and the trick is *where* they live:\nU+1CC10–1CC16, in Unicode 16's\n\"Symbols for Legacy Computing Supplement\" block (fittingly), which no font\nshipped with macOS covers. When the terminal's font has no glyph for a real\ncodepoint, CoreText searches every installed font — and finds ours. (The\nsame hijack via Private Use Area codepoints does *not* work: macOS\ndeliberately skips PUA in automatic fallback. And overriding Apple Color\nEmoji with a patched copy in `~/Library/Fonts`\n\n— the macmoji approach — is\ndead on macOS 26: the system copy always wins the name conflict.)\n\nEach glyph is drawn one square per pixel on a 16×16 grid, with color layers baked in — her bow is genuinely red, not tinted.\n\nWorks on macOS and Linux. On Windows Terminal, stick to `mspacman`\n\nor `wopr`\n\n,\nneither of which needs a font at all.\n\nA small daemon runs one world per open session and writes each window its own\nframe every 200ms; `statusline.sh`\n\njust prints the one belonging to its session.\nWindows are keyed by the `session_id`\n\nClaude Code passes to the status line, so\ntwo windows of the same size are still two different games. The daemon shuts\nitself down two minutes after the last window closes — or the moment you run\n`arcade off`\n\n.\n\nThe installer sets this for you:\n\n```\n\"statusLine\": {\n  \"type\": \"command\",\n  \"command\": \"~/.arcade/statusline.sh\",\n  \"padding\": 0,\n  \"refreshInterval\": 1\n}\nbash ~/.claude-code-arcade/uninstall.sh\n```\n\nPuts your old statusline back, removes the CLI and the font, keeps your scores\n(add `--purge`\n\nto drop those too). Then restart your terminal.\n\nAn independent hobby project, released under the MIT licence. Not affiliated with, endorsed by, or sponsored by Anthropic; \"Claude\" and \"Claude Code\" are Anthropic's trademarks, used here only to say what this plugs into.\n\nThe games it imitates belong to other people too — Ms. Pac-Man and Frogger to their respective rights holders, WarGames to its own — and nothing here is affiliated with any of them either. No original assets are used: the sprites are drawn from scratch and the WOPR screens are typed out as homage.", "url": "https://wpnews.pro/news/show-hn-claude-code-arcade", "canonical_source": "https://github.com/jystervinou/claude-code-arcade", "published_at": "2026-08-31 20:39:24+00:00", "updated_at": "2026-08-31 20:52:15.552326+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools"], "entities": ["jystervinou", "Claude Code", "GitHub", "Ms. Pac-Man", "Frogger", "WarGames", "WOPR"], "alternates": {"html": "https://wpnews.pro/news/show-hn-claude-code-arcade", "markdown": "https://wpnews.pro/news/show-hn-claude-code-arcade.md", "text": "https://wpnews.pro/news/show-hn-claude-code-arcade.txt", "jsonld": "https://wpnews.pro/news/show-hn-claude-code-arcade.jsonld"}}