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:
- Create
src/claude_arcade/games/<name>/ - Add
game.pywith adef <name>_game(stdscr)function - Add
__init__.pyexporting it - Add
README.mdfor the game - Register it in
splash.py→GAMESlist andcli.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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claude_arcade-0.7.1.tar.gz.
File metadata
- Download URL: claude_arcade-0.7.1.tar.gz
- Upload date:
- Size: 19.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba487de3f87cafbe8c93e701f3069f263ca7c362ae556a71897e2e2322dfaa54
|
|
| MD5 |
a000b6d13161a14f1d6c004a98620a00
|
|
| BLAKE2b-256 |
ddb463902f4504fdaf28856eb466d581368212b867e58929c59bb6877503ab09
|
File details
Details for the file claude_arcade-0.7.1-py3-none-any.whl.
File metadata
- Download URL: claude_arcade-0.7.1-py3-none-any.whl
- Upload date:
- Size: 24.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afeffdd2b8d5039af3485804fe46244c258694ef9f77de93b97d046761bb30c3
|
|
| MD5 |
62c61e9af81d4e10390586c7e19d7b67
|
|
| BLAKE2b-256 |
72d496efcd2fb178528c238fbf623ff2b5d10a4fc1e2f0be9a8f820fcd30c17b
|