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
package.json+2−2@@ -1,6 +1,6 @@ { "slug": "pup-bridge",- "version": "2.0.524",+ "version": "2.0.525", "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. The pkg version is kept in lockstep with the Release version so the page's max version row always carries BOTH a pkg tarball (skills) and a runtime zip (bridge) \u2014 a skills-only or runtime-only bump on the top row breaks constraint installs. TL;DR: pkg install = the skills for your AI; the bridge = the Release zip, which Adom Desktop manages for you.", "keywords": [@@ -147,5 +147,5 @@ "prompt": "Download the puppeteer-bridge zip from the wiki and walk me through server.js" } ],- "changelog": "Share the progress-bar code instead of the lane keeping its own. Extracted activity::progress_on_hwnd as the single implementation (the filling, running-average-estimated bar capped at 92% until work finishes, then 100% and cleared); with_progress is now a thin session-keyed entry point and the extension lane calls the same function with its window's hwnd. The lane previously hand-rolled a flat 35% bar and discarded ab's reply. Part of ending the pattern John called out: the lane reinventing code the CDP lane already has. Overlay (badge_js) and identity (stamp_hwnd) are already shared; progress was the remaining duplicate primitive."+ "changelog": "The extension lane is a first-class pup session. Session gains transport (cdp|ext, round-tripped through the session file); verbs/src/transport.rs is the ONE seam a verb reaches the page through (navigate, evaluate, screenshot, open/activate/refresh/close tab, close window), with a CDP arm and an extension-channel arm. pup_open_window picks the lane before any browser launches: defaultLane is ext, so a plain open is an extension-driven window on adom-you with no debug port; lane:cdp opts into CDP-only features (iframes, trusted input, annotate, highFps, isolation). identity's tile and badge are composed through the transport, so an ext window wears the same thread tile and the same 75% badge; list_tabs, open_tab, switch_tab, close_tab and close_window branch on the transport; recovery relaunches a window on the lane it was born on. pup_ext_* remain as aliases of the session verbs. This is the structural answer to John's 'why is the non-cdp lane a whole new set of code'." }
page.json+2−2@@ -4,7 +4,7 @@ "slug": "pup-bridge", "title": "Pup - Puppeteer Bridge", "brief": "pup is the AI's own browser: a real, full Chrome on the user's desktop that the AI fully controls (a sandbox, not the user's signed-in browser). Rides Bridge; pup_* verbs open windows and tabs, navigate, screenshot, and eval JS.",- "version": "2.0.524",+ "version": "2.0.525", "tags": [ "skills", "pup",@@ -167,5 +167,5 @@ "pup-bridge verbs are invoked through the adom-bridge CLI, not through a binary this package installs, so prefix rules cannot reach them." ] },- "changelog": "Share the progress-bar code instead of the lane keeping its own. Extracted activity::progress_on_hwnd as the single implementation (the filling, running-average-estimated bar capped at 92% until work finishes, then 100% and cleared); with_progress is now a thin session-keyed entry point and the extension lane calls the same function with its window's hwnd. The lane previously hand-rolled a flat 35% bar and discarded ab's reply. Part of ending the pattern John called out: the lane reinventing code the CDP lane already has. Overlay (badge_js) and identity (stamp_hwnd) are already shared; progress was the remaining duplicate primitive."+ "changelog": "The extension lane is a first-class pup session. Session gains transport (cdp|ext, round-tripped through the session file); verbs/src/transport.rs is the ONE seam a verb reaches the page through (navigate, evaluate, screenshot, open/activate/refresh/close tab, close window), with a CDP arm and an extension-channel arm. pup_open_window picks the lane before any browser launches: defaultLane is ext, so a plain open is an extension-driven window on adom-you with no debug port; lane:cdp opts into CDP-only features (iframes, trusted input, annotate, highFps, isolation). identity's tile and badge are composed through the transport, so an ext window wears the same thread tile and the same 75% badge; list_tabs, open_tab, switch_tab, close_tab and close_window branch on the transport; recovery relaunches a window on the lane it was born on. pup_ext_* remain as aliases of the session verbs. This is the structural answer to John's 'why is the non-cdp lane a whole new set of code'." }