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.
Document one window and explicit tab targeting for overlapping work #1
Document one owned Pup window per AI thread with multiple tabs, explicit tab targeting for overlapping work, and serialization for shared state. Tab selection must preserve the background window.
Verified on AdomLapper: one owned window, two tabs; pup_switch_tab selected tab-1 while foreground remained false. Concurrent pup_eval calls explicitly targeting tab-1 and tab-2 returned the correct distinct page titles/URLs and left tab-1 selected. No missing tab-switch capability was observed. Local skill updated; package distribution remains pending review.
Diff Skip to comments (1)
@@ -1,670 +1,679 @@⋯ 90 unchanged lines ⋯ screen: `pup_raise_os_window {"foregroundReason":"..."}` (gated). Every open/navigate response carries `_next` repeating these — trust the hints over hand-rolling desktop verbs. +## One owned window, explicit tabs for overlapping work++Use one Pup window per AI thread, with multiple tabs for different items. Start with `pup_my_windows` and `pup_list_tabs`; reuse matching tabs and call `pup_open_tab` for a new item. Return with `pup_switch_tab`: selecting a tab inside Chrome must keep the OS window in the background. It does not authorize `pup_raise_os_window`, a second window, or covering the user's editor.++For overlapping operations, pass the exact window/session and `tabId` wherever supported. Independent reads and downloads can run on separate tabs without racing over the active tab. Serialize navigation or mutations of the same tab and any dependent work. Tabs share profile cookies and server-side account state, so concurrent login/account changes are not isolated transactions.++If required switching or explicit tab targeting is absent or broken, duplicate-check and report a minimal reproduction on `adom/pup-bridge`, including versions, inputs, expected/actual tabs and foreground state. Continue through supported background paths instead of multiplying windows. Separate profile/isolation requirements still need their own concrete justification; do not interfere with other threads' windows.+ ## THE CORE GOAL (John's words, so everyone truly understands it) ## "Open my web app in the browser" — the #1 use case, and its one trap⋯ 571 unchanged lines ⋯ when ab's recorder is missing, refuses, or the box has no usable GPU. Recording ONE pup window's page content is a different thing and stays pup's (`pup_record_start`). Full detail in `pup-screenshots-recording`.+
Comments
Log in to comment.