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+1−1@@ -1,6 +1,6 @@ { "slug": "pup-bridge",- "version": "2.0.328",+ "version": "2.0.329", "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": [
page.json+1−1@@ -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.328",+ "version": "2.0.329", "tags": [ "skills", "pup",
tools/pup-dashboard+7−1@@ -688,7 +688,13 @@ async function serve() { res.writeHead(200, { 'content-type': 'application/json', 'cache-control': 'no-store', ...CORS }); return res.end(JSON.stringify({ say: SAY })); }- res.writeHead(200, { 'content-type': 'text/html; charset=utf-8' });+ // v2.0.329: NO-STORE on the page itself. Caught on AdomLapper during the fleet dashboard sweep:+ // /api/status reported dashboardVersion 2.0.328 while the rendered page was still running an+ // OLDER build's JS (status pills showed "pup 2" / "6 window", the pre-2.0.326 short-state logic).+ // The API routes already sent no-store; the HTML did not, so the webview could serve a cached+ // page across a version change and silently mask a redeploy. A dashboard that lies about its own+ // version is worse than one that reloads slowly.+ res.writeHead(200, { 'content-type': 'text/html; charset=utf-8', 'cache-control': 'no-store, must-revalidate', 'pragma': 'no-cache' }); res.end(PAGE.replace('__SAY__', JSON.stringify(SAY))); }); server.listen(0, '127.0.0.1', () => {