Halftime
Claude works, you play. The whistle blows the moment it needs you.
117 passingnone10How it works
Slash commands
/halftimePlay a small game above the prompt while Claude works
Hook events
The prompt
Build me a Claude Code mod called "halftime": small games I can play above my prompt while Claude works, that hand the keyboard straight back the moment Claude needs me. The games (design all of them yourself: original names, art and colours; nothing that copies a famous game's name, pieces or look)- "cratehop": a one-button runner where a courier jumps crates. Speed rises slowly.- "tailchase": a snake on a wide, short field that fits the band.- "merge": a 4x4 sliding tile board where equal tiles combine. Turn-based.- "sweep": a small mine field. Turn-based. How it starts- /halftime opens a picker. /halftime <game> starts one. /halftime auto offers a game when a turn has run for 10 seconds (an offer I click, never a game that grabs my keyboard by itself). Remember my choice across sessions.- A game gets my keys only after I click it or start it. Esc always returns the keyboard to the prompt.- Controls never use Enter, y, n or digits, so a stray key can never answer a prompt from Claude Code. The whistle (the main feature)- Whenever Claude needs me (a permission prompt, a question for me, an input request from a tool, or the turn ending), freeze the game instantly, close the board so my keyboard goes back to the prompt, and show "whistle: Claude needs you".- When Claude starts working again, show a 3-2-1 and resume the same run where I left it.Details
Halftime
Claude works, you play. The whistle blows the moment it needs you.
Four small games live in the band above your prompt. The moment Claude needs
you - a permission prompt, a question, an input request, or the turn ending -
the game freezes, the board closes so your keys go back to the prompt, and a
line says whistle: Claude needs you. When Claude gets going again you get a
3-2-1 and the same run, exactly where you left it.
Use it
| Command | What it does |
|---|---|
/halftime | Opens the picker, with your one-line scorecard. |
/halftime cratehop (or tailchase, merge, sweep) | Puts that game's daily board above the prompt. Add practice for a random board. |
/halftime auto | Turns auto on or off (/halftime auto on, /halftime auto off). |
/halftime off | Closes the band; a run in play is paused, and the picker offers it back. |
The command runs at once even while Claude is mid-turn. In the terminal and the desktop app its replies are short toasts and nothing is added to the conversation, so Claude never reads them. VS Code and the mobile app have no band, so there the reply is the command's row: your one-line scorecard.
A board takes your keys only when you click it. Esc hands them back to the
prompt. No game ever uses Enter, y, n or a digit, and the board never
passes those keys on, so a stray press can never answer one of Claude Code's
prompts.
The games (all original):
- cratehop - a courier runs on its own;
space,up,wor a click jumps the crates. Speed rises slowly with distance. Score: distance. - tailchase - steer a snake on a wide, short field with the arrows,
wasdorhjkl. The edges wrap; biting yourself ends the run. Score: pips eaten. - merge - slide a 4x4 board of lettered tiers (arrows,
wasd,hjkl); two equal letters make the next one, once per tile per move. Score: points. - sweep - a 16x6 mine field with 14 mines. Arrows move,
spaceorxopens,fflags, or click / right-click a cell. It opens with a safe pocket. Score: seconds to clear (lower is better).
Every game: p pauses and resumes, r starts again after a run ends.
Daily boards. Each game's daily board comes from the date alone, so
everyone gets the same board that day. After a run, the result line reads like
halftime daily 10-09 · cratehop 412 · played 3m of a 7m turn, with a copy button.
Auto mode offers a game (a clickable line) once a turn has run 10 seconds. It never starts a game or takes your keys by itself.
The whistle blows for: a permission prompt (from the main conversation or
a subagent), a question from Claude (AskUserQuestion), an input request from a
tool (MCP elicitation), and the main turn ending. Subagents starting and
finishing never pause or resume anything. The run comes back with a 3-2-1 when
the loop that asked moves on, or when your next turn starts; after a turn ends
you can also press play on.
The run also pauses by itself when a survey takes the band, when you start typing at the prompt, when you open the picker or close the band, and when a realtime game (cratehop, tailchase) gets no key or click for 20 seconds. A board that comes back after any of these waits for your click.
Settings
No settings screen. Auto mode (/halftime auto) and your last game are
remembered across sessions; the picker's daily / practice toggle lasts the
session.
What it can touch
- Its own store only (Claude Code's per-plugin store): personal bests
(
best:<game>), today's daily best (daily:<game>), totals (play time, play time while Claude worked, runs), the auto switch and your last game. - The clipboard, only when you press
copy. - No files, no processes, no network, no model calls.
- Timers run only while a game is played: the board's frame clock while a realtime run is in play and holds your keys, and a 3-second countdown. A paused or closed game ticks and redraws nothing. Auto mode sets one 10-second timer per turn.
Limits
- Terminal and desktop app only. VS Code and the mobile app have no band
and no board; there
/halftimeshows a one-line scorecard instead. - Starting a game cannot hand it your keys. Claude Code gives the band the
keyboard only on your click, so
/halftime cratehopputs the board up and the run starts on your first click. - Esc gives no signal to the mod. A realtime run you leave keeps going until you type at the prompt (it pauses then) or, at most, 20 seconds with no key or click, when it pauses itself. Those idle seconds never count as play. Turn-based games (merge, sweep) never tick, so they need no such pause.
- After you answer a permission prompt, play resumes when that step's tools finish (the API has no "dialog answered" event), or at your next turn.
- Two open sessions share bests safely (each save re-reads the store just before writing and repairs a lower write it finds after), but the store has no true compare-and-set: two saves in the same instant can still race. Totals are added the same way and can, rarely, miss a few seconds.
- Copy works in the terminal; a surface without a clipboard path says so, and the line stays on screen to select.
- The daily board follows your machine's calendar day.
- Drawing is verified against the plugin test kit, not a real terminal's paint.