Official scripts
Explore our curated collection of scripts
ChatGPT whoami (signed-in account)
Report which ChatGPT account this browser is signed in as: the user id, email and name. Being signed out is reported as a normal answer (loggedIn false), not an error, so it can be used to check a session before running other ChatGPT scripts.
Who am I (ChatGPT)
Report which ChatGPT account the browser is signed into: id, name, email, picture, identity provider — or loggedIn:false when the browser is anonymous. Reads the session endpoint the app itself hydrates auth from; never returns the session's access token.
ChatGPT switch display language
Switch the ChatGPT web app's display language via Settings, for a signed-in account. Requires an active session.
List ChatGPT models
List the models ChatGPT offers the signed-in account and the lanes its model picker is built from, plus the account's default model. Each model carries its slug, title and description; each lane carries its id, name, default model, the models it holds and the plan it requires. On a free account the picker itself is not shown and only the Auto and Instant lanes come back, which is what the site offers there. Requires a signed-in session.
OpenAI (ChatGPT) login (Google SSO)
Log into OpenAI / ChatGPT via Google SSO — picks the right account when several are signed in, and does nothing if you're already logged in. If Google interrupts the flow with a password re-confirmation or a 2FA step-up, the script can't complete that step on its own; sign in once manually in the same browser to clear the step-up, then re-run. It may also occasionally fail to complete a fresh login due to the site's own anti-automation checks — if that happens, try again shortly.
Ask ChatGPT
Open a new ChatGPT chat, send one question, wait for the answer to finish (up to 3 minutes), and return the answer, the sources it cited, and the web searches it ran. `answers` is a list: ChatGPT sometimes answers twice and asks which reply you prefer, so check its length before reading answers[0]. `references` are the pages the answer cited; `sources` is the wider set of pages its searches found. An empty `references` means that reply cited nothing — the same question may search on one run and not the next, so repeat it before drawing conclusions. `webSearchQueries` lists what ChatGPT searched for, `searches` groups those queries by round with their results, and `calls` lists each search call with every result's type, position, snippet and date. `model`, `stopReason` and `searchContext` say which model answered and how. Signed in, it answers in Chat mode only: when the browser is in Work mode it fails with an error that says so; switch back with set_mode (a Chat choice lasts about four hours). Works signed in or signed out, on a Reduck cloud browser or your own paired browser, in any display language. Signed in, every field is filled, and the account's saved memory can influence the answer. Signed out, ChatGPT shows its citations but not the pages behind them, so `references`, `sources`, `searches`, `calls` and `webSearchQueries` are null (unknown, not none); `answers` and `conversationId` are filled.
ChatGPT billing: list your ChatGPT subscription invoices
ChatGPT subscription invoices, not the OpenAI API platform (that is platform.openai.com/list_invoices). List the billing history of every ChatGPT account the signed-in user belongs to — the personal account and each Business, Team or Enterprise workspace — whichever one the browser currently has open. Each invoice comes with its date, amount, currency, payment status, the plan it paid for, a link to the receipt, and the account it belongs to; a separate accounts list shows each account, how many invoices it has, and whether its billing could be read. The full history is returned, not only the most recent entries. Amounts come back in the currency's smallest unit, so 1917 means 19.17 EUR. When the browser is not signed in to ChatGPT, the result says so with signed_in set to false and empty lists; check it before reading an empty list as an account that was never billed. Feed hosted_invoice_url to invoice.stripe.com/download_invoice_pdf to get the PDF.
OpenAI unofficial API: list your platform invoices with PDF links
An unofficial OpenAI API for platform billing invoices. List invoices on the OpenAI API platform billing account (platform.openai.com, API usage/credits — NOT the ChatGPT subscription, which is chatgpt.com/list_invoices). Returns id, number, total (cents), currency, status, created_ts, hosted_invoice_url, pdf_url. Covers the past 12 months, as the dashboard does.
Get Le Chat conversation messages
Full message transcript of one Le Chat conversation by id, oldest to newest.
Ask Le Chat
Open a new Le Chat conversation, send one question, wait for the answer, and return the answer text plus any web-search source domains cited.
Get Gemini chat messages
Full message transcript of one Gemini conversation by id, oldest to newest.
Get Telegram conversation
Open one Telegram conversation by its peer id (the id get_inbox returns) and read its messages in chronological order: message id, text, the time shown on the bubble, whether it carries media, and — for channel posts — the exact view and forward counts. Scrolls upward to load older messages up to the requested count. Returns an empty list for a conversation with no messages, which is a real answer rather than a failure.
Send Chat Message
Send a message in a 1:1 Teams chat by contact name — finds the person, opens their chat, sends the message, then reads the sent message back to confirm it posted.
List Le Chat conversations
List recent Le Chat conversations, newest first.
WhatsApp — Archive chat
Archive or unarchive a chat by exact name. Archived chats still appear in search. Safe to repeat: returns success if the chat is already in the desired state.
Get LinkedIn conversation attendees
List the participants of a classic LinkedIn messaging conversation (NOT Sales Navigator) by thread URL from list_inbox — mainly useful for group chats. Returns each attendee's name, profile URL and member urn, plus whether the thread is a group.
Get Claude chat messages
Full message transcript of one Claude.ai conversation by uuid, oldest→newest. `text` is the readable prose; `tools` lists tool calls the UI renders as cards.
Le Chat (Mistral) login (Google SSO)
Log into Le Chat (chat.mistral.ai) with Google sign-in, handling the Google account chooser and consent screen. Returns straight away if this browser is already signed in, and reports the Mistral account email. Optionally pass which Google account to use. Needs a browser already signed in to Google and a Google account that already has a Mistral account.
Search Telegram messages in a conversation
Search inside one Telegram conversation using the conversation's own search box, and return the matching messages: the chat they are in, the date label shown on the result, and the matched text. Returns an empty list when nothing matches, which is a real answer. Note the result rows carry no message id, so results cannot be fed straight to delete or react — use get_conversation for ids. Searching across all chats is a separate Telegram surface and is not covered here.
Delete Le Chat conversation
Delete one Le Chat conversation by id (moves it to trash; Le Chat purges trashed conversations automatically after 30 days).
Search Gemini chats
Search your Gemini conversations (the "Search chats" box): server-side full-text over titles and message bodies.
List Discord direct messages
Lists the direct messages (DMs) of the signed-in Discord account, one-to-one and group DMs, most recent first, as the Direct Messages sidebar shows them: the conversation's name, its channelId and its url. Pass a conversation's url to discord.com/read_messages to read it. Requires being logged in.
Search Le Chat conversations
Full-text search across Le Chat conversation messages, returning matching messages with highlighted snippets.
Get Reddit chat inbox
List the conversations in your Reddit chat inbox (DMs), newest activity first: room id + url, name, chat type, your membership (invite = a chat request you have not accepted), unread count, the other members, and the last message with its direction and real timestamp. Returns the whole inbox, not only what's currently visible on screen. Threads are a separate surface and are not listed. Runs only via the browser extension, not the hosted cloud browser.
Get Telegram inbox
List the conversations in the Telegram Web chat list, newest first: each one's name, its peer id (the handle every other Telegram script uses to open it), the last message preview, the time shown on the row, and the unread count. Scrolls to load older conversations up to the requested count. Returns an empty list when the account has no conversations, which is a real answer rather than a failure.
