Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Code ArcadeNew to Visual Studio Code? Get it now.
Code Arcade

Code Arcade

Preview

Maurya Sumit

| (0) | Free
Play small games while your AI coding assistant works.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Code Arcade

Play a quick game in a VS Code panel while your AI coding assistant works, without losing sight of the assistant itself.

Code Arcade opens in the main editor area, so Claude's panel stays in view next to it. With the optional Claude Code integration enabled, it knows when Claude is working, when it needs you (for example a permission request) and when it has finished, and pauses the game accordingly. It never touches Claude's interface or its approval prompts.

Status: early preview (0.1.0). See What works today for exactly what has been tested.

Features

  • Snake, fully playable, with speed that increases as you eat.
  • Game launcher with a dark UI and a small game contract for adding more games.
  • Local best scores per game, kept in VS Code's own extension storage.
  • Always-visible Claude status strip (working, needs you, question, finished, stopped) with a timer, plus a status bar entry that turns amber when Claude is waiting for you.
  • Auto-pause when the panel loses focus, when Claude needs you or asks a question, and when a turn ends (each can be turned off).
  • Claude Code integration (opt-in, reversible) using Claude Code's lifecycle hooks.
  • No accounts, no backend, no network requests, no telemetry.

What works today

Area Status
Snake, pause/resume, game over, restart Built. Game rules were checked with simulated scenarios; play-feel needs your judgement.
Best scores and settings Built. Validation and storage logic checked in simulation.
Claude Code hooks → game state Checked with real headless Claude Code runs (v2.1.287, Windows): the events fire, are mapped and drive the state machine.
Behavior inside interactive VS Code (permission dialog on screen, approving or denying, Esc interrupt) Not yet verified. Use Code Arcade: Show Log to see what your setup reports, and please open an issue with your findings.
Automated unit tests The session state machine and hook mapper are covered. Game rules and UI are not yet.
Dino Runner, Cursor and standalone-app support Not built. See the roadmap.

Quick start (from source)

Requirements: Node.js 22 or newer and VS Code 1.90 or newer.

git clone <your-fork-or-this-repo-url>
cd code-arcade
npm ci
code .

Press F5. A second VS Code window (the Extension Development Host) opens. In it, open the command palette and run Code Arcade: Open Game Panel.

Install the packaged extension

npm ci
npm run package        # produces code-arcade-<version>.vsix
code --install-extension code-arcade-0.1.0.vsix

Supported editors

Code Arcade is built on the VS Code extension API, so it runs in VS Code and in editors based on it, such as Cursor, Windsurf and VSCodium (the last three install from Open VSX once the extension is published there). Editors with a different extension system, such as JetBrains IDEs, are not supported yet. The Claude Code integration has been checked in VS Code; other editors may need the adapters described below.

Using it

Control Action
Arrow keys / WASD Move
Space / Enter Start, resume or play again
P / Esc Pause or resume

The game pauses automatically when the panel loses focus. After Claude needs you or finishes, the game stays paused until you press Space. It deliberately does not resume by itself: your keyboard focus is usually in Claude's chat at that moment, so an unattended game would just crash.

Commands

Command What it does
Code Arcade: Open Game Panel Opens the game in the main editor area
Code Arcade: Enable Claude Code Integration Installs the Claude Code hooks (asks first)
Code Arcade: Disable Claude Code Integration Removes only Code Arcade's hooks
Code Arcade: Show Log Shows the events the extension received
Code Arcade: Reset Scores Clears saved scores (asks first)

Settings

Setting Default Effect
codeArcade.openWhenClaudeStarts on Open the panel when Claude starts working, without taking focus
codeArcade.pauseWhenPanelLosesFocus on Pause when the panel loses focus or is hidden
codeArcade.pauseWhenClaudeNeedsAttention on Pause when Claude needs you
codeArcade.pauseWhenClaudeFinishes on Pause when Claude finishes its turn
codeArcade.notifyWhenClaudeNeedsAttention on Show a notification if you are in the game when Claude needs you

Claude Code integration

Claude Code can run a command when lifecycle events happen (hooks). Code Arcade registers a tiny observer for a handful of them:

  • It adds hook entries to your Claude Code settings.json (the confirmation dialog shows the exact file) and saves a one-time backup next to it.
  • Each hook runs ~/.code-arcade/hook.js, which appends the event name, tool name, session id and working folder to ~/.code-arcade/events.jsonl.
  • Your prompts, code, tool inputs and outputs, and Claude's replies are never read or stored.
  • The hooks only observe. They cannot approve, deny or change anything, and they do not interact with Claude's permission prompts.
  • Disable removes only Code Arcade's entries.

Requirements: Node.js must be on your PATH, because Claude Code runs the hook with node.

Details, the event mapping and known limitations are in docs/claude-code-integration.md.

Project structure

src/
  shared/      message and event contracts (imports nothing from the other layers)
  games/       game contract, engine (loop, input, canvas) and the games themselves
  extension/   VS Code side: panel, commands, storage, settings, adapters/
  webview/     React UI that runs inside the panel
docs/          architecture, adding a game, Claude Code integration

The layers are kept apart by ESLint import rules. Read docs/architecture.md for the details.

Support

Found a bug or have feedback? Open an issue, or email codearcadehelp@gmail.com. For security problems, email only (see SECURITY.md).

Contributing

Contributions are welcome, especially new games and IDE adapters. Start with CONTRIBUTING.md and docs/adding-a-game.md.

Roadmap

  • [ ] Verify and refine behavior in interactive VS Code (permission approve/deny, interrupts)
  • [ ] Dino Runner
  • [ ] Unit tests for the game rules (the session state machine is covered)
  • [ ] More games
  • [ ] Marketplace and Open VSX publishing
  • [ ] Adapters for other environments (Cursor, standalone Claude Code app) where it is technically possible
  • [ ] A floating window outside the IDE (needs a separate desktop app; a VS Code webview cannot do this)

Security and privacy

See SECURITY.md. In short: no network requests, scores stay on your machine, the webview has a strict Content Security Policy, and all messages between the extension and the webview are validated.

License

MIT. The choice is documented in docs/architecture.md.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft