Pup - the AI's own browser
Public Made by Adomby adom
pup gives your AI a real browser on your desktop that it drives completely, in the background, signed in as you: windows that never jump in front of your work, one shared profile that learns your logins, and every window labeled on the taskbar with its AI thread's name.
Chrome-for-Testing cache grows without bound: 3 full builds + partial downloads = 1.63 GB on a normal box
Measured on arav-rog 2026-09-22 while sizing what a default install costs on disk. ~/.cache/puppeteer is 1.63 GB, and nothing in it is a duplicate of anything ab keeps:
chrome win64-146.0.7680.76 408.2 MB 308 files 2026-06-29
chrome win64-148.0.7778.97 412.2 MB 308 files 2026-09-05
chrome win64-152.0.7977.82 427.9 MB 308 files 2026-09-13 <- the one in use
chrome-headless-shell win64-146.0.7680.76 264.0 MB 290 files 2026-06-29
chrome-headless-shell win64-148.0.7778.97 1.8 MB 2 files 2026-07-24 <- looks like a failed/partial fetch
chrome-headless-shell-dl chrome-headless-shell 113.1 MB 3 files 2026-06-29 <- a stray download dir
Three full Chrome-for-Testing builds are kept forever: every upgrade adds ~410 MB and nothing prunes the one it replaced. The two headless-shell entries and the -dl directory look like leftovers of interrupted installs. A box that has been running pup for a few months pays ~1.2 GB for browsers it will never launch again.
Asks, all pup-side (this cache is entirely pup's now — ab stopped downloading Chrome for Testing in 2.1.147, when its bundled pup lifecycle module was deleted; ab's prewarm_cft setting was inert after that and is removed in 2.1.152, so nothing in ab touches this cache any more):
- After a successful
browsers install, remove superseded builds of the same product, keeping the one now resolved (and anything a running process is using). Apup_gc/pup_cache_pruneverb would also let an AI reclaim it on demand and report the bytes. - Clean up partial fetches: a
*-dldirectory and a 2-file "install" are dead weight that also make a resolver's "is it present?" check ambiguous. - Consider whether
chrome-headless-shellis still wanted at all now that pup drives a real window; if it is, it needs the same pruning.
For reference, ab does the same for its own managed runtimes and for bridge caches: 2.1.152 drops a bridge's node_modules when the installed version is not node-kind, which is how pup's own 65.8 MB of JS-era npm deps outlived the Rust port on every box that had the JS version (that one is ab's bug and is fixed there, no action needed from you).