Show HN: Claude Code Arcade 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. Vibe code with an 80s arcade vibe. An arcade running in your Claude Code status line, animated by whatever Claude is doing. It works, the arcade plays. Ms. 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. Every window is its own cabinet: its own game, its own creatures, its own score, played by whatever Claude is doing in that session. Or 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. Twenty seconds of the attract reel, playing itself while Claude is idle. Still · MP4. Paste this into Claude Code the runs it as a shell command or into any terminal without the : git clone https://github.com/jystervinou/claude-code-arcade.git ~/.claude-code-arcade && bash ~/.claude-code-arcade/install.sh Then fully quit your terminal app ⌘Q and reopen it — terminals cache glyph lookups per process, so a new tab won't pick the sprite font up. Needs Node any recent version and macOS or Linux. Nothing system-wide, no sudo: it writes ~/.arcade/ , ~/.local/bin/arcade , one font file in your user font dir, and the statusLine key in ~/.claude/settings.json — backing up whatever was there. Undo it all uninstalling with one command. It checks all of those first and stops to ask if anything already there isn't its own — an existing ~/.arcade , another arcade on your PATH, a statusline you're already using. A new window doesn't start a game. It waits, the way a cabinet waits, and tells you how to put a coin in: INSERT COIN · type arcade start a1b2c3 at this prompt That id belongs to the window showing it, so there's never a question of which one you mean, and the runs it without leaving Claude Code. arcade start put a coin in the id is in the status line arcade stop game over arcade reset start this window's game over WOPR restarts the film arcade theme mspacman Ms. Pac-Man arcade theme frogger Frogger arcade theme wopr W.O.P.R., typing its way through WarGames arcade theme aquarium 🐟🐠🐡🦐🦀🦞🪼 / 🦈🐋🐳🐬🐙🦑🐢🦭🐊 arcade theme safari 🐒🦩🐍🦌🦂🦡🦅 / 🐘🦒🦏🦛🐆🦓🐃🦍🐊🐪 arcade demo on keep playing while Claude is idle arcade play joystick optional arcade off switch the arcade off; arcade on switches it back arcade status every window: what it plays, what it has scored Every command takes an optional session id: with one it applies to that window, with none to all of them. arcade theme wopr switches every window, arcade theme wopr a1b2c3 switches one. Any unique prefix of an id works. Those are ordinary shell commands. Run them in any terminal, or straight from the Claude Code prompt with a in front — arcade theme frogger runs it in your session's shell without leaving Claude Code. The one exception is arcade play , which takes the keyboard over and so wants a spare terminal pane of its own. Switch any time — it takes effect live. She plays herself: laps the maze, eats the dots, runs from ghosts, doubles back for fruit. Real arcade scoring — each window plays its own credit from zero, and the best any credit has ever reached is kept as the high score arcade status . arcade off Stops 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. arcade on Brings it back within a second — the status line starts the daemon again on its next refresh. arcade status says which way the switch is set. Ms. 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: arcade play in a SPARE terminal pane: ←/→ steer, ↑ boost arcade play global F1 ←, F2 →, F3 boost from any window macOS global needs a one-time Accessibility grant. If your F-row does brightness and volume — Apple's default — those keys aren't F1/F2/F3 at all, so press fn+F1/F2/F3, or turn on "Use F1, F2, etc. keys as standard function keys". It watches exactly those three keys, can't swallow them, and sends nothing anywhere. Either way she goes back to playing herself ~30s after you stop. The installer sets this up for you; arcade font remove drops back to Unicode glyphs, and mspacman plays fine either way. The sprites are an original pixel font, and the trick is where they live: U+1CC10–1CC16, in Unicode 16's "Symbols for Legacy Computing Supplement" block fittingly , which no font shipped with macOS covers. When the terminal's font has no glyph for a real codepoint, CoreText searches every installed font — and finds ours. The same hijack via Private Use Area codepoints does not work: macOS deliberately skips PUA in automatic fallback. And overriding Apple Color Emoji with a patched copy in ~/Library/Fonts — the macmoji approach — is dead on macOS 26: the system copy always wins the name conflict. Each glyph is drawn one square per pixel on a 16×16 grid, with color layers baked in — her bow is genuinely red, not tinted. Works on macOS and Linux. On Windows Terminal, stick to mspacman or wopr , neither of which needs a font at all. A small daemon runs one world per open session and writes each window its own frame every 200ms; statusline.sh just prints the one belonging to its session. Windows are keyed by the session id Claude Code passes to the status line, so two windows of the same size are still two different games. The daemon shuts itself down two minutes after the last window closes — or the moment you run arcade off . The installer sets this for you: "statusLine": { "type": "command", "command": "~/.arcade/statusline.sh", "padding": 0, "refreshInterval": 1 } bash ~/.claude-code-arcade/uninstall.sh Puts your old statusline back, removes the CLI and the font, keeps your scores add --purge to drop those too . Then restart your terminal. An 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. The 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.