An over-engineered neon button for people who could type
sudo apt install --only-upgrade cursor, but have chosen joy.
Cursor Update Arcade turns the deeply glamorous chore of updating Cursor on Ubuntu into a tiny GTK arcade cabinet: orbiting pixels, a live combo-scored APT log, a confetti cannon, six switchable neon themes, persistent achievements, a hall of fame leaderboard, a JRPG boss fight against your outdated package, and yes, the Konami code.
It upgrades exactly one package: cursor.
It is not affiliated with Cursor or Anysphere. It is a local GTK wrapper around normal APT commands wearing approximately nine costumes.
Because Cursor updates often, terminals are useful but boring, and sometimes the correct amount of engineering is "far too much, but with a leaderboard."
See MANIFESTO.md for the philosophy and LORE.md for the canon. Yes, an apt wrapper has canon now.
- Runs
pkexec apt-get update - Checks the installed Cursor version against APT's candidate version
- Verifies Cursor's official APT repo appears in package policy output
- Runs
pkexec apt-get install --only-upgrade --yes cursoronly when an update actually exists - Shows live logs in a GTK window
- 🎮 Arcade scoring — every line of APT output banks points with a rising combo meter
- 🏆 12 achievements — persisted to disk, including three secret ones
- 🎉 Unlock popups + desktop notifications — a window pops on unlock (Xbox/Steam style) and a real freedesktop notification fires, so you see it even after closing the app
- 🗄️ Trophy Cabinet — open it any time from the main window to browse every trophy, your lifetime stats, and the leaderboard
- 🥇 Hall of fame — your ten fastest updates, ranked, forever
- 🎨 6 neon themes — Synthwave, Matrix, Vaporwave, Game Boy, the cursed Hot Dog Stand, Terminal Amber
- ⚔️ Boss fight — your outdated package appears as a JRPG enemy and is defeated by
--only-upgrade - 🎉 Confetti cannon — fires on a successful update
- 🕹️ The Konami code — ↑↑↓↓←→←→BA unlocks Chaos Mode
- 📡 Honest telemetry — transmits exactly 0 bytes to
/dev/null, privacy flawless - 🥠 Fortune cookies — rotating developer wisdom in the footer
- It does not run a full system upgrade.
- It does not install random Cursor binaries.
- It does not replace Cursor's real launcher.
- It does not phone home (the
/dev/nullthing is a bit). - It does not pretend this needed to be this fancy.
Ubuntu or a similar GNOME Linux desktop with:
- Cursor installed from the official
.deb/ APT package - Python 3.10+
- GTK Python bindings
pkexecfor graphical authentication
sudo apt install python3-gi gir1.2-gtk-3.0 policykit-1./scripts/install.shThis installs the app into ~/.local/share/cursor-update-arcade, a launcher
into ~/.local/bin, a desktop entry, and a neon icon. Then search your app
menu for Cursor Update Arcade.
PYTHONPATH=src python3 -m cursor_update_arcade # full neon
PYTHONPATH=src python3 -m cursor_update_arcade --dry-run # GUI, no privileged commands--theme {synthwave,matrix,vaporwave,gameboy,hotdog-stand,terminal-amber}
--surprise-me pick a theme for you; lives on the edge
--difficulty {tourist,normal,nightmare} cosmetic; nightmare is just faster pixels
--chaos start in Chaos Mode, skip the Konami code, no judgement
--no-fun disable animations, score, achievements, and joy. (Why.)
--dry-run open the GUI but skip privileged APT commands
No display required for these — they run anywhere:
cursor-update-arcade --self-test # Power-On Self Test (this is the test suite)
cursor-update-arcade --version # a comically detailed banner
cursor-update-arcade --list-themes # the theme catalog
cursor-update-arcade --hall-of-fame # your trophies and high scoresAchievements unlock once, with a popup window and a desktop notification.
After that, click 🏆 Achievements in the app (or run --hall-of-fame) to
review everything you've earned — unlocked trophies, locked ones, masked
secrets, lifetime stats, and your leaderboard.
Progress is stored the way real desktop apps store state — in your XDG state directory:
${XDG_STATE_HOME:-~/.local/state}/cursor-update-arcade/profile.json
It's written atomically (temp file + rename) so a crash mid-save can't corrupt your glory. Delete the file to wipe everything and start a New Game+.
pkexec apt-get update refreshes metadata for all configured repos — that is
just how APT works, and it does not upgrade anything. The only upgrade command
is scoped to Cursor:
pkexec apt-get install --only-upgrade --yes cursorSo the arcade lights are dramatic, but the package operation is intentionally, proudly boring. The neon is a costume; the engine underneath is two commands.
Is this a joke? Yes. Does it work? Also yes. Those are not in tension.
Couldn't this be a one-line alias? It could. We chose violence (of color).
Is there an Enterprise Edition? This is the Enterprise Edition. There is no other edition.
./scripts/uninstall.sh