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
tools/ab-smoke.sh+9@@ -75,6 +75,15 @@ say download R=$($AB pup_navigate '{"url":"https://the-internet.herokuapp.com/download"}'); sleep 2 R=$($AB pup_download '{"url":"https://the-internet.herokuapp.com/download/some-file.txt","waitMs":30000}'); chk "download landed" "$(echo "$R" | j "d.get('bytes',0)>0 and bool(d.get('savedTo'))")" True +say upload+SAVED=$(echo "$R" | j "d.get('savedTo') or ''")+R=$($AB pup_navigate '{"url":"https://the-internet.herokuapp.com/upload"}'); sleep 2+R=$($AB pup_upload_file "{\"selector\":\"#file-upload\",\"filePath\":\"$SAVED\"}"); chk "file on the input, read back" "$(echo "$R" | j "d.get('attached') is True and d.get('verified') is True")" True+R=$($AB pup_click '{"selector":"#file-submit"}'); sleep 3+R=$($AB pup_eval '{"expr":"document.querySelector(\"h3\") ? document.querySelector(\"h3\").innerText : \"\""}'); chk "the site received it" "$(echo "$R" | j "'File Uploaded' in str(d.get('result'))")" True+R=$($AB pup_upload_file '{"filePath":"C:/Windows/win.ini"}'); chk "system file refused" "$(echo "$R" | j "d.get('errorCode')")" path_refused+R=$($AB pup_upload_file '{"filePath":"C:/no/such/file.zip"}'); chk "missing file refused" "$(echo "$R" | j "d.get('errorCode')")" file_not_found+ say dashboard R=$($AB pup_dashboard '{}'); DSID=$(echo "$R" | j "d.get('sessionId')"); chk "dashboard window" "$(echo "$R" | j "d.get('ok')")" True sleep 4