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.
master
5a7c77d
1mo ago
claude.ai (Claude, Anthropic)
Read landed first. Every pup_open_window / pup_navigate response carries landed:{url,title,loginPage,signedIn,_hint}
(pup 2.0.642+). The shared adom-you profile keeps the claude.ai session for weeks, so the common case is
signedIn:true and the page is already the user's chats. Do NOT toast "sign in once" in that case; it happened
on 2026-09-19 and the user rightly called it dumb. Only a loginPage:true landing needs any of the steps below.
The sign-in page (https://claude.ai/login)
claude.ai has no password. Two routes:
- Continue with Google (preferred, fully automatable): the page shows a "Continue with Google" button.
Click it with
pup_click, then the Google chooser appears in the same window. Callpup_google_signin {account:"<the user's Claude account email>"}or{kind:"work"}; pup's Google session for that account is already in the profile in most cases, so it completes without the user. If pup does not know which account,pup_google_accountslists them; ask the user ONCE which account is their Claude account and remember it in the vault as the username forclaude.ai. - Continue with email (one-time code): type the email, submit, then claude.ai emails a 6-digit code.
Read it with the
adom-googleCLI (Gmail searchfrom:claude.ai newer_than:1h "code"), type it withpup_type, submit. Only if the user's mail is not reachable does the user have to be involved, and then a single toast withfocus:{hwnd}that names the code step.
After either route the page lands on /new; re-read landed to confirm signedIn:true before continuing.
Steps that pause in Auto mode
None on the Google route when the Google session exists. The email route pauses once, on typing the code (a new credential-like input), which is correct.
Do not
- Toast before reading
landed. - Open a second claude.ai window to "check": navigate the one you have.
- Use an isolated window: the session would be thrown away and the user would sign in again next time.
# claude.ai (Claude, Anthropic)
**Read `landed` first.** Every `pup_open_window` / `pup_navigate` response carries `landed:{url,title,loginPage,signedIn,_hint}`
(pup 2.0.642+). The shared adom-you profile keeps the claude.ai session for weeks, so the common case is
`signedIn:true` and the page is already the user's chats. Do NOT toast "sign in once" in that case; it happened
on 2026-09-19 and the user rightly called it dumb. Only a `loginPage:true` landing needs any of the steps below.
## The sign-in page (`https://claude.ai/login`)
claude.ai has no password. Two routes:
1. **Continue with Google** (preferred, fully automatable): the page shows a "Continue with Google" button.
Click it with `pup_click`, then the Google chooser appears in the same window. Call
`pup_google_signin {account:"<the user's Claude account email>"}` or `{kind:"work"}`; pup's Google
session for that account is already in the profile in most cases, so it completes without the user. If pup
does not know which account, `pup_google_accounts` lists them; ask the user ONCE which account is their
Claude account and remember it in the vault as the username for `claude.ai`.
2. **Continue with email** (one-time code): type the email, submit, then claude.ai emails a 6-digit code.
Read it with the `adom-google` CLI (Gmail search `from:claude.ai newer_than:1h "code"`), type it with
`pup_type`, submit. Only if the user's mail is not reachable does the user have to be involved, and then a
single toast with `focus:{hwnd}` that names the code step.
After either route the page lands on `/new`; re-read `landed` to confirm `signedIn:true` before continuing.
## Steps that pause in Auto mode
None on the Google route when the Google session exists. The email route pauses once, on typing the code
(a new credential-like input), which is correct.
## Do not
- Toast before reading `landed`.
- Open a second claude.ai window to "check": navigate the one you have.
- Use an isolated window: the session would be thrown away and the user would sign in again next time.