The JumPHP pane for Claude Code
While Claude writes your game, see what it does: a pane beside the conversation shows the tests as they run,
the game's screens it looks at, and lets you step in. It is a Claude Code mod, jumphp-live, shipped with
JumPHP.
Installing it
In Claude Code (in a terminal), type:
/plugin install jumphp-live --marketplace davidnurdin/jumPhp
Answer y to add the source, then pick the scope (“user”: for all your projects). From a shell:
claude plugin install jumphp-live --marketplace davidnurdin/jumPhp.
Using it
In your JumPHP project (the folder with bin/jumphp), start Claude Code and type /jumphp <game>, for instance
/jumphp pong. The pane opens on the right (the window must be wide enough, 110 columns or more). It also opens
by itself the first time Claude runs bin/jumphp test or bin/jumphp shot.
What it shows:
- The checks, live: when Claude runs
bin/jumphp test, the output scrolls in the pane and each step is ticked as it goes:✔ php -l ✔ phpstan … phpunit smoke test. At the end: PHPUnit's summary and what failed (the failing tests, PHP warnings and errors). - The game's screen, live (
● live): whilebin/jumphp test(its smoke test) orbin/jumphp shotruns the game, the pane shows its screen frame after frame (the engine rewritesvar/live/frame.png, optionJUMPHP_LIVE). Runs without a window go faster than real time:JUMPHP_REALTIME=1slows them to the game's speed. A project made before this option gets it withgit pull jumphp main(the original JumPHP repository, kept under the namejumphp). - Game tests, before your eyes: the tests that play the game show as they run (⏳, then ✔ /
✘), with the running test's name over the live screen; afterwards, press a test to see its last frame. The
🐢 Game speed / ⏩ Fast button (
r) picks the speed: the game's (the default, to see the paddle move) or as fast as it goes. - The screens: the screenshot
bin/jumphp shotorsiteshotjust made, and every picture Claude opens to look at the game, drawn in the pane. - Pictures in any terminal: by default they are drawn as small coloured blocks (
▦ Blocks), which any truecolor terminal shows (GNOME Terminal, Konsole, Windows Terminal, VS Code…): for this the engine writes, beside each PNG, a small raw copy (.rgb). In kitty, Ghostty or iTerm2 the pane draws the PNG itself (🖼 HD); thepkey switches. The 🖼 Open button (o) opens the picture shown in your desktop's image viewer (xdg-open,openon macOS), full size. - The playground: the result of the site's PHPUnit tests (
run_tests,get_test_run) and of publications (sync_project) when Claude uses the MCP server.
What you can do:
- ▶ Tests (key
t) and 📸 Shot (s): run the tests or take a screenshot now, without Claude; the output scrolls in the pane. - 🛠 Ask Claude to fix (
f), after a failure: Claude gets what failed and fixes it. - Tell Claude: a field to write to it (“jump higher”, “the boss is too hard”); it reads it as soon as it has finished its current step.
How it follows Claude
A Bash command of Claude's that runs bin/jumphp test, shot, siteshot or webshot runs as written, its output
also copied to a temporary file the pane follows ({ export JUMPHP_LIVE=1; command } 2>&1 | tee …, the exit status kept). Other commands
are not touched. Nothing is sent anywhere.