claude-play

watch tv while claude codes.

View on GitHub
-
stars
-
forks
-
commits

How it works

Claude Code fires hooks on lifecycle events. claude-play listens to those hooks and controls mpv, playing your videos when Claude is working and pausing instantly when you need to respond.

Claude Code
hooks
claude-play
daemon
mpv
video
Claude working    → video plays
Claude done       → video keeps playing
Permission needed → video pauses + hides
You respond       → video resumes

Works across multiple sessions. Saves your playback position between pauses and restarts. Streams from URLs. No downloads needed.

Playback modes

default
idle
Claude is running tools ▶ plays
Claude finished / waiting ▶ plays
Claude needs your input ⏸ paused
always-busy
Claude is running tools ▶ plays
Claude finished / waiting ⏸ paused
Claude needs your input ⏸ paused

set via mode in ~/.claude-play/config.json

Get started

  1. Clone and install
    git clone https://github.com/mlekhi/claude-play.git && cd claude-play && bash install.sh
  2. Configure your videos
    Edit ~/.claude-play/config.json with your video URLs or local file path.
  3. Add hooks to Claude Code
    Copy the hooks JSON from the install output into ~/.claude/settings.json.
  4. Run the daemon
    venv/bin/python claude_play.py