Skip to main content

Play games while Claude thinks — a collection of terminal mini-games that hook into Claude Code

Project description

claude-arcade

Play terminal mini-games while Claude thinks.

Hooks into Claude Code so a game launches automatically every time Claude runs a tool — and disappears the moment it's done. Your terminal is fully restored, nothing is lost.

 ████ █      ███  █   █ ███   █████
█     █     █   █ █   █ █  █  █
█     █     █████ █   █ █  █  ████
█     █     █   █ █   █ █  █  █
 ████ █████ █   █  ███  ███   █████

 ███  ████   ████  ███  ███   █████
█   █ █   █ █     █   █ █  █  █
█████ ████  █     █████ █  █  ████
█   █ █ █   █     █   █ █  █  █
█   █ █  █   ████ █   █ ███   █████

Install

pipx install claude-arcade

Quick start

# One-time setup — adds hooks to ~/.claude/settings.json
claude-arcade setup

# Use Claude Code as normal
claude

# Bird Hunt launches automatically whenever Claude uses a tool.
# Your terminal is restored when Claude finishes.

Play manually

claude-arcade play          # open the game menu
claude-arcade play bird     # jump straight into Bird Hunt
claude-arcade play pong     # jump straight into Pong

Games

Game Description Folder
Bird Hunt Shoot sprite birds flying across the screen games/bird/
Pong Classic paddle battle vs the CPU games/pong/

More games coming — see Contributing to add your own.

How it works

claude-arcade setup writes three hooks into ~/.claude/settings.json:

Hook Command Effect
PreToolUse claude-arcade start Launches game on the alternate screen buffer
PostToolUse claude-arcade stop Stops game, restores terminal
Stop claude-arcade stop Same — catches session end

The game runs on the alternate screen buffer so Claude's output is preserved underneath.

Remove hooks

claude-arcade unsetup

Project structure

src/claude_arcade/
├── cli.py              entry point
├── splash.py           splash screen + game picker menu
├── setup_hooks.py      Claude Code hook management
├── constants.py        shared runtime constants
└── games/
    ├── bird/
    │   ├── game.py     Bird Hunt logic
    │   └── README.md
    └── pong/
        ├── game.py     Pong logic
        └── README.md

Contributing

See CONTRIBUTING.md for the full guide.

Quick summary — adding a new game:

  1. Create src/claude_arcade/games/<name>/
  2. Add game.py with a def <name>_game(stdscr) function
  3. Add __init__.py exporting it
  4. Add README.md for the game
  5. Register it in splash.pyGAMES list and cli.py_game_fn()

That's it — no other files need touching.

Requirements

  • macOS or Linux
  • Python 3.9+
  • Claude Code CLI

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claude_arcade-0.7.0.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claude_arcade-0.7.0-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file claude_arcade-0.7.0.tar.gz.

File metadata

  • Download URL: claude_arcade-0.7.0.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for claude_arcade-0.7.0.tar.gz
Algorithm Hash digest
SHA256 4d30160f0618b2512c132ff8f4f2d90fb7fae68e4eba8f294e93ba4e46047825
MD5 50d7e3981225821d470cf3e2c278b61b
BLAKE2b-256 9e01629c213a3bf72ca46ee361afc8fadeaca23b57bb1fe71ba23a2057d562dc

See more details on using hashes here.

File details

Details for the file claude_arcade-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: claude_arcade-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 23.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for claude_arcade-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f59ef654d32b07d5f32f8ac7fe486f512997482c07a8803410f845a085685657
MD5 b6ba0fe358131b133f0e41b810f5e39c
BLAKE2b-256 8f6b68fdce49bc9e2a516eff767076a9d2fc36a9fce5e7801002b808f42cb507

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page