Skip to content

anshuman-dev/claude-arcade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Play terminal games while Claude thinks

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages