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.
1962bc1
15d ago
Screenshots and recording
pup windows are real rendered browser windows, so what an AI captures is exactly what you would see, even while the window sits behind your work.
Screenshots
| command | captures |
|---|---|
pup_screenshot {} |
The visible part of the thread's active tab, sized for an AI to read. Add fullPage:true for the whole page. |
pup_screenshot_element {"selector":"..."} |
One element, found by selector or by its visible text, scrolled into view and cropped to it. Add closest to grab the card around a piece of text. |
pup_screenshot_full_res {} |
The same at full resolution, not reduced, for saving to disk. It can be too large for an AI to read. |
A whole-page capture covers pages that scroll as a whole. Pages that scroll inside a panel (many web apps) come back as the visible area with a hint to capture the panel by element or to scroll it instead.
Every image reply carries the path on your desktop plus a copy sized for an AI to read (at most 1568 pixels on a side), and Adom Bridge copies that image into the AI's container by itself, so the AI can open it at once. Each reply also says which window, tab, address and title it captured, and refuses if the capture would show a different window than the one asked for.
A background window can look frozen in a screenshot, with a paused video or a still animation. That is the browser saving power on a window you cannot see, not a hang. For a window that must keep rendering while hidden (recording it, or a live display), an AI opens it with highFps:true. That boost is leased, 20 minutes by default and at most 120, and falls back automatically so it never drains a laptop battery.
Recording
pup_record_start {} and pup_record_stop {} record the thread's window to an MP4 through Adom Bridge's native recorder, with hardware video encoding. pup_record_status reports takes in progress, and a stop that is still encoding says so and finishes in the background. For a whole-desktop recording with system sound, Adom Bridge's own desktop_record_start is the right tool.
Convert a recording for sharing with ffmpeg:
ffmpeg -i take.mp4 -vf "scale=1280:-2" -c:v libx264 -crf 26 -c:a aac share.mp4 # smaller MP4
ffmpeg -i take.mp4 -vf "fps=12,scale=800:-1" loop.gif # silent looping GIF
Annotate
Annotate puts a drawing layer over a page: pen, arrows, boxes and text. Start it from a tile's jump list (Annotate this page), from the pen in pup's browser toolbar, with Alt+Shift+A, or by an AI calling pup_annotate. It starts in Multi mode: draw as many shapes as you like (each in the next color), then press Enter or click Done. Space switches to Single mode, where each shape is captured the moment you lift the mouse (the quick red circle); M and S pick a mode directly and Esc cancels. A hint under the toolbar shows the keys. When you finish, the marked-up region is captured, copied to your clipboard, and sent to the AI thread that owns the window, with a thin caption naming the thread, page and time. The drawing stays visible, so the AI's next screenshot shows it too.
# Screenshots and recording
pup windows are real rendered browser windows, so what an AI captures is exactly what you would see, even while the window sits behind your work.
## Screenshots
| command | captures |
|---|---|
| `pup_screenshot {}` | The visible part of the thread's active tab, sized for an AI to read. Add `fullPage:true` for the whole page. |
| `pup_screenshot_element {"selector":"..."}` | One element, found by selector or by its visible text, scrolled into view and cropped to it. Add `closest` to grab the card around a piece of text. |
| `pup_screenshot_full_res {}` | The same at full resolution, not reduced, for saving to disk. It can be too large for an AI to read. |
A whole-page capture covers pages that scroll as a whole. Pages that scroll inside a panel (many web apps) come back as the visible area with a hint to capture the panel by element or to scroll it instead.
Every image reply carries the path on your desktop plus a copy sized for an AI to read (at most 1568 pixels on a side), and Adom Bridge copies that image into the AI's container by itself, so the AI can open it at once. Each reply also says which window, tab, address and title it captured, and refuses if the capture would show a different window than the one asked for.
A background window can look frozen in a screenshot, with a paused video or a still animation. That is the browser saving power on a window you cannot see, not a hang. For a window that must keep rendering while hidden (recording it, or a live display), an AI opens it with `highFps:true`. That boost is leased, 20 minutes by default and at most 120, and falls back automatically so it never drains a laptop battery.
## Recording
`pup_record_start {}` and `pup_record_stop {}` record the thread's window to an MP4 through Adom Bridge's native recorder, with hardware video encoding. `pup_record_status` reports takes in progress, and a stop that is still encoding says so and finishes in the background. For a whole-desktop recording with system sound, Adom Bridge's own `desktop_record_start` is the right tool.
Convert a recording for sharing with ffmpeg:
```bash
ffmpeg -i take.mp4 -vf "scale=1280:-2" -c:v libx264 -crf 26 -c:a aac share.mp4 # smaller MP4
ffmpeg -i take.mp4 -vf "fps=12,scale=800:-1" loop.gif # silent looping GIF
```
## Annotate
Annotate puts a drawing layer over a page: pen, arrows, boxes and text. Start it from a tile's jump list (Annotate this page), from the pen in pup's browser toolbar, with Alt+Shift+A, or by an AI calling `pup_annotate`. It starts in **Multi** mode: draw as many shapes as you like (each in the next color), then press **Enter** or click Done. **Space** switches to **Single** mode, where each shape is captured the moment you lift the mouse (the quick red circle); **M** and **S** pick a mode directly and **Esc** cancels. A hint under the toolbar shows the keys. When you finish, the marked-up region is captured, copied to your clipboard, and sent to the AI thread that owns the window, with a thin caption naming the thread, page and time. The drawing stays visible, so the AI's next screenshot shows it too.