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.
macOS: auto-update installs the Windows-only Rust build (adom-pup-bridge.exe) on Macs, so pup can't start (os error 13)
On a Mac, auto-update replaced pup's working Node build with the Windows-only Rust build, and pup could not start at all. Every spawn failed with Permission denied (os error 13): 462 failed attempts before anyone noticed. Nothing told the user; the AI only saw a spawn error.
Mac: Apple Silicon, Adom Bridge managed by Hydrogen. Found 2026-10-13.
What was on the Mac
bridge_list: puppeteer2.0.692,source: cache, entrypoint~/Library/Application Support/Adom Bridge/bridges-cache/puppeteer/adom-pup-bridge.exe,spawn.kind: "exe".- That folder held only
adom-pup-bridge.exe(8.4 MB),bridge.json,BRIDGE_VERSION,.bridge-version, and a leftovernode_modulesfrom the previous Node build (itsserver.jswas gone). pup_readiness:Failed to spawn bridge 'puppeteer': bridge 'puppeteer' is backing off after 462 failed spawn attempt(s): spawn failed: Permission denied (os error 13).- The release's own
bridge.jsonsays it shouldn't be there:platforms.macos.supported: false, "The Rust exe is Windows-only for now; host-mac is stubbed for the Mac port. macOS runs the Node build (public tier)."
Why it happens
adom-bridge-puppeteer-manifest.jsonpublishes oneplatform: "any"zip per release (oneurl/sha256), so every OS gets the same artifact.- Since 2.0.401 ("pup as one Rust exe") every release is the Windows exe, except 2.0.601 ("Node shell for the public tier", promoted to public 2026-09-17), the last build a Mac can run.
- The public manifest now points at 2.0.692, the exe. So the public channel has no Mac artifact, and any Mac that syncs gets a pup that can't start.
Workaround that worked
bridge_uninstall {"name":"puppeteer"}removes the cache copy and falls back to the Node build bundled in the app (2.0.396,platforms.macos.supported: true).bridge_kill {"name":"puppeteer"}resets the spawn backoff.bridge_resumedid not clear it, although the backoff error's hint says it does.pup_readiness→ ready (Chrome for Testing 148,mac_arm).
Hours later the Mac is still on bundled 2.0.396 and pup works, but bridge_list reports latest: 2.0.692, so a later sync will likely put the exe back.
Asks
- Ship a macOS artifact with every public release: the Node shell (as in 2.0.601) or the Mac host build, as a per-platform asset (
platform: macos) with a manifest that lets Adom Bridge pick by OS. - Until then, keep Macs off the exe: a mac-specific
updateManifestUrl, or a public manifest that points at a build that runs on both. - Adom Bridge side (FYI, for whoever owns the updater): don't replace a working bridge with a release whose own
bridge.jsonsays the current platform is unsupported; and fix the spawn-backoff hint (or makebridge_resumeactually clear the backoff). - Minor: bundled 2.0.396 ignores the CLI's
--ai-threadcaller identity (pup_open_window→caller_identity_required), so callers on a Mac stuck on the bundled build must pass an explicitsessionId. One more reason to get Macs onto a current build.
Related: adom/nb-bridge#51 (nb has no macOS support yet).
Filed from Drew's Claude Code session (Drew's Mac, 2026-10-13).