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
chatgpt.com / Codex (OpenAI)
Read landed first (see claude.ai.md): signedIn:true means the shared profile already has the OpenAI
session; say nothing to the user. https://chatgpt.com/codex is a marketing page with a "Log in" link when
signed out; the signed-in surface is https://chatgpt.com/codex/ with the task list, or https://chatgpt.com/c/….
The sign-in page (https://auth.openai.com/…)
Routes, in order of preference:
- Continue with Google:
pup_clickthe button, thenpup_google_signin {account:"<the user's OpenAI account email>"}. Same account-choice rule as claude.ai: ask once, store the username forchatgpt.comin the vault. - Email + password:
pup_credentialsmay already hold it (pup captures on the ext lane too).pup_login {submit:true, submitReason:"auth.openai.com is OpenAI's sign-in host"}. - Email + one-time code: as for claude.ai, read the code from Gmail with
adom-google.
OpenAI sometimes adds a device verification or a Cloudflare interaction; reload once, wait, and only then a
pup_assisted_click. Never hammer-reload.
After sign-in, re-read landed on https://chatgpt.com/codex/ and confirm signedIn:true.
# chatgpt.com / Codex (OpenAI)
**Read `landed` first** (see `claude.ai.md`): `signedIn:true` means the shared profile already has the OpenAI
session; say nothing to the user. `https://chatgpt.com/codex` is a marketing page with a "Log in" link when
signed out; the signed-in surface is `https://chatgpt.com/codex/` with the task list, or `https://chatgpt.com/c/…`.
## The sign-in page (`https://auth.openai.com/…`)
Routes, in order of preference:
1. **Continue with Google**: `pup_click` the button, then `pup_google_signin {account:"<the user's OpenAI account email>"}`.
Same account-choice rule as claude.ai: ask once, store the username for `chatgpt.com` in the vault.
2. **Email + password**: `pup_credentials` may already hold it (pup captures on the ext lane too). `pup_login
{submit:true, submitReason:"auth.openai.com is OpenAI's sign-in host"}`.
3. **Email + one-time code**: as for claude.ai, read the code from Gmail with `adom-google`.
OpenAI sometimes adds a device verification or a Cloudflare interaction; reload once, wait, and only then a
`pup_assisted_click`. Never hammer-reload.
After sign-in, re-read `landed` on `https://chatgpt.com/codex/` and confirm `signedIn:true`.