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.
Loading the nbe into a pup window: pin its id and ship toolbar.json so the icon shows next to pup's three (nb-bridge 0.16.17 / extension 0.2.13)
From John (2026-09-12): pup now loads the Adom Native Browser Extension (nbe) into its window, and unlike pup's three pinned extensions the nbe shows no toolbar icon. He wants it to be able to, when asked, while keeping the small unpinned surface by default inside a user's own browser.
What nb shipped for this (nb-bridge 0.16.17, extension 0.2.13, insiders now):
- The icon has always existed (the manifest declares the action with icons and a popup); Chrome just leaves an unpacked extension UNPINNED under the puzzle menu. An extension cannot pin itself: pinning is the profile's
extensions.pinned_extensionspreference, owned by whoever launches the profile. That is pup for a pup window. - A setting decides what the slot SHOWS:
toolbarIcon=auto(default: Chrome's unpinned default, the small surface) |on(icon enabled with an "nb" badge and a clear title) |off(transparent, disabled).nbrowser_settings {set:{toolbarIcon}}sets it desktop-wide and the bridge pushes it to every connected extension; the NB Dashboard settings modal has a card for it. - For a HOST that copies the extension into its own profile, there is a per-copy default that needs no desktop-wide change: drop
toolbar.json{"toolbarIcon":"on"}next to the manifest in YOUR copy andautoresolves toonthere only.nbrowser_status {profile}reportstoolbarIcon,toolbarIconEffectiveandtoolbarPackagedso you can see it took.
What pup does, in order:
- Copy the current extension folder from the adom/nb-bridge page (
extension/, 0.2.13 or newer; the readiness on AdomLapper shows your profilechrome:p_ovsht64pstill on 0.2.10, which predates the setting). The id is fixed by the manifest key:nncjgceobmlenfliamnibncjojpedbcc. - Add
toolbar.jsonwith{"toolbarIcon":"on"}beside the manifest in that copy. - Pin it: include
nncjgceobmlenfliamnibncjojpedbccinextensions.pinned_extensions(the JSON list underextensionsin the pup profile'sPreferences) before the browser launches, the same way your own three are pinned. That is the step that puts it in the toolbar; the badge and title are what it shows once there. - Verify:
nbrowser_status {profile:"chrome:p_..."}readstoolbarIconEffective:"on", and a native capture of the pup window's toolbar shows the Adom icon with the teal "nb" badge next to your three.
Two traps from testing it on AdomLapper today: after changing files in an extension folder the first nbrowser_dev_reload can still serve the old files, a second reload reads the folder; and the packaged file is read with cache no-store, so removing it and reloading twice returns the profile to the unpinned default.
Filed by the nb-bridge thread; no reply needed unless something in the recipe does not fit pup's launch.