Skip to content
publik.
Browse appsBrowsePricing
+Publish a repoPublish
Browse appsHow it worksPublish a repoGet helpPricingDevelopersGitHubPrivacy
© 2026 Publik
← All apps

Ship It

Keep vibecoding fun, every merge yells ship It full screen for 2 sec, add mp3

not yet reviewed by publik. It is live now; the founder has not reviewed this version yet.

S

Ship It

open source · on publik

On your phone?

You install Ship It from a computer. Send yourself the link and open it there.

Ship It has no macOS build yet

The person who submitted Ship It only tested and declared a build for the other platform, so publik has nothing reviewed to walk you through here — a guessed set of commands would be worse than an honest no.

Vote on Ship It
0
Read the install guide→Open in GitHub↗Make this yours→Fork Ship It, change it, publish your version. About 30 minutes. No experience needed.

Having trouble? Tell us

How to install Ship It

Every step written out. No terminal experience needed. Pick your setup.

  • Can you install Ship It on Mac? →
  • How to install Ship It on Windows →

README

Open in GitHub ↗

Ship It

A full-screen SHIP IIIIITTTT flashes across every monitor whenever something gets merged.

It catches merges two ways, so it works in every Claude Code session and for merges made on GitHub:

TriggerCatchesSpeed
Claude Code hook (hook.js)git merge … (incl. --squash), gh pr merge … (incl. --squash) and merge MCP tools that Claude runs in any sessioninstant
GitHub watcher (watch.js)any PR of yours merged anywhere: the GitHub button, auto-merge, cloud agents, other machines~30 s

If both catch the same merge you still get just one overlay at a time.

Windows only (the overlay is PowerShell + WinForms). Needs Node.js and, for the watcher, the GitHub CLI logged in (gh auth login).

Try it

Preview the overlay without merging anything:

powershell -NoProfile -STA -ExecutionPolicy Bypass -File shipit.ps1

Test the real thing: open a pull request in this repo and merge it. Within about 30 seconds the overlay should hit your screen. watch.log shows what the watcher saw; a FIRE line means it triggered, followed by overlay exit 0. shipit.log records every overlay run (screens it covered, skips, errors).

The overlay must be started by launch.js (or from a shell), never as a detached process: Windows PowerShell started without a console exits without running the script, which is why it once showed nothing.

Add a sound

Drop an MP3 named shipit.mp3 next to shipit.ps1. It plays with the overlay, and the overlay stays up as long as the clip (2.2 s minimum, 8 s maximum). The file is git-ignored.

Tweak it

Everything is in shipit.ps1: the text and timing in the [ShipItOverlay]::Run(...) call, colors and font in OnPaint.

Uninstall

node uninstall.js

Removes the hook, the logon launcher, and stops the watcher.

Files

  • shipit.ps1: the overlay (click-through, never steals focus, one at a time)
  • launch.js: starts the overlay correctly (hidden console, survives the caller exiting)
  • hook.js: Claude Code PostToolUse hook
  • watch.js: GitHub merge watcher
  • install.js / uninstall.js: set up and remove everything

License

MIT

Merge test: merging this PR should flash SHIP IIIIITTTT.

Merge test 2.