app
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.
← Commit history
pup SKILL.md: document the Power & rendering balance that was in code but never in the user skill — background windows are throttled by default (saves CPU/battery, James's issue #14), so a healthy backgrounded window can LOOK frozen (throttling, not a hang, wakes on focus); highFps is the LEASED override (20min default, 120 max, auto-downgrades) for a window that must keep rendering while unfocused. Do not use highFps to fix a merely-throttled window — just focus it.
2 files changed
+26−1
SKILL.md+25@@ -50,6 +50,31 @@ Keep this model in mind and every verb makes sense: it's a pup-managed, persiste (the machine's own Chrome/Edge binary, a profile pup owns) driven by CDP — durable and shared by default, isolated only when you ask. +## Power & rendering — throttling is DEFAULT and correct; `highFps` is the leased override++**Background pup windows are THROTTLED on purpose, to protect the user's CPU + battery.** Chrome+pauses/slows rendering on occluded/unfocused windows, and pup relies on that. This is deliberate —+issue #14 (James): three idle pup windows with the anti-throttle flags on held his laptop out of+deep idle overnight and FLATTENED his battery. So the default is: a background window renders slowly+or not at all until it's focused.++**Consequence you MUST know:** a healthy background window can LOOK frozen — Google Slides stops+animating, a video pauses, the cursor doesn't blink. That is THROTTLING, not a hang. It wakes the+instant the window is focused (`visibilityState` flips to `visible`). Before ever calling a window+"frozen", check: is it just backgrounded? (on-screen + CDP-responsive + `readyState:complete` = it's+throttled, not broken.)++**When you genuinely need a background window to keep rendering** — recording it, or a live view the+user watches WITHOUT focusing it (a dashboard, a running demo) — upgrade that ONE window:+`browser_open_window {highFps:true}` (or the recorder path sets it). This applies the anti-throttle+flags so the occluded window renders full-rate. It is **LEASED**: 20 min by default, 120 max, and it+**auto-downgrades when idle / when the lease lapses**, so it can NEVER drain the battery the way+issue #14 did. Renew a still-needed lease with `browser_highfps_extend {sessionId, minutes}`.++**The balance, in one line:** throttled by default (battery), `highFps` only for a window that must+keep rendering while unfocused, and the lease makes that self-limiting. Do NOT reach for `highFps` to+"fix" a window that merely LOOKS frozen — just focus it (or tell the user to click it).+ ## Standing rule: TOAST THE USER before foregrounding (John, repeatedly) NEVER put a window on the user's screen silently. Any time you FOREGROUND a pup window — a demo, a
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-desktop-puppeteer-bridge",- "version": "1.9.167",+ "version": "1.9.168", "type": "app", "description": "The pup SKILL PACK \u2014 the AI skills that teach a cloud/container AI how to drive the Adom Desktop Puppeteer (pup) bridge (browser_* verbs): the everyday `pup` skill plus focused sub-skills for windows/sessions/tabs, screenshots+recording, browsers+Chrome install, and driving the Adom wiki. Installs into ~/.claude/skills + ~/.codex/skills. DOCS ONLY \u2014 this is NOT the bridge runtime. The bridge itself (the Node program that drives the browser) runs on the DESKTOP: Adom Desktop bundles it and auto-installs/updates it, and it's published separately on the Releases tab as adom-bridge-puppeteer-v<ver>.zip. So the pkg version (skills, bumps often) and the Release version (runtime, bumps rarely) differ on purpose. TL;DR: pkg install = the skills for your AI; the bridge = the Release zip, which Adom Desktop manages for you.", "keywords": [