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.1.tar.gz (19.1 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.1-py3-none-any.whl (24.7 kB view details)

Uploaded Python 3

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

Hashes for claude_arcade-0.7.1.tar.gz
Algorithm Hash digest
SHA256 ba487de3f87cafbe8c93e701f3069f263ca7c362ae556a71897e2e2322dfaa54
MD5 a000b6d13161a14f1d6c004a98620a00
BLAKE2b-256 ddb463902f4504fdaf28856eb466d581368212b867e58929c59bb6877503ab09

See more details on using hashes here.

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

Hashes for claude_arcade-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 afeffdd2b8d5039af3485804fe46244c258694ef9f77de93b97d046761bb30c3
MD5 62c61e9af81d4e10390586c7e19d7b67
BLAKE2b-256 72d496efcd2fb178528c238fbf623ff2b5d10a4fc1e2f0be9a8f820fcd30c17b

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