Effective date: 2026-11-05
This policy covers the Chrome extension AI Limits & Handoff ("the extension"). "We" means the extension's developer: the publisher shown under "Offered by" on the extension's Chrome Web Store page. To contact us, write to the developer contact email shown on that page.
The extension has no servers, no accounts, no analytics and no ads. Nothing it reads is sent to us.
Its usage meter is off until you turn it on. While it is on, it reads your own usage figures on claude.ai and chatgpt.com (your Claude limits, and the Codex limits of your ChatGPT plan) and keeps the latest figures in your browser. Turning it off deletes them.
It reads an open chat only when you press "Continue in" or "Save". These two work without the meter.
When you hand a chat to another AI service, the extension opens that site in a new tab, attaches the chat as a file where the site takes files and puts the last messages into its message box. It never presses Send; you decide. Some sites upload an attached file as soon as it is attached.
It does not change, reset or get around any service's limits or safeguards. Each service's own limits and terms apply.
Only on four websites: claude.ai, chatgpt.com, gemini.google.com and grok.com. It also has its own pages: the toolbar popup, a welcome page (which is also its Options page), a print page and a copy of this policy. No script of the extension runs on any other website.
Permissions it asks for: "storage" (to keep the setting and figures listed below) and "alarms" (to update the toolbar icon when a usage window resets), and access to the four sites above.
When you install the extension, it opens a page that says what it reads and keeps, with two buttons: "Turn on the usage meter" and "Keep it off". The same page is the extension's Options page. While the meter is off, the toolbar popup cannot turn it on: its button "Review and turn on" opens that page. While the meter is on, the popup offers "Turn off the meter".
While the meter is off:
the extension makes no usage requests on claude.ai or chatgpt.com, so it does not use your ChatGPT session token for the meter;
the extension does not switch on the small script inside claude.ai pages (described below), so that script passes every response through and reads no copy. The extension's own script on the page switches it on and off with a message inside the page, which claude.ai's own scripts can also see and could send; if the page switched it on while the meter is off, the extension would drop any figures and keep nothing;
no figures are stored.
Turning the meter off stops the reading in open tabs at once, deletes all stored figures and clears the number on the toolbar icon.
"Continue in" and "Save" do not depend on the meter. They read the open chat only when you click them.
With your existing claude.ai sign-in (the browser adds claude.ai's own cookies to these requests; the extension does not read cookies):
https://claude.ai/api/organizations - to find your account's organization. claude.ai's reply also contains account details (such as names, email addresses and IDs). The extension uses only the organization ID and whether the organization can chat (to pick the right one), puts the ID only in the addresses of its own requests to claude.ai, and keeps neither; everything else in the reply is ignored.
https://claude.ai/api/organizations/<organization ID>/usage - percent used and reset time of the 5-hour and weekly windows. Everything else in the reply is ignored.
These two reads happen when a claude.ai page loads (or when you turn the meter on while a claude.ai tab is open), every 5 minutes while the tab is in view (every 15 minutes if your account reports no figures), and when you come back to the tab (at most once a minute).
Inside the claude.ai page:
A small script runs inside every claude.ai page from the moment it starts loading, whatever your plan. It wraps the page's own fetch function. While the meter is off the extension does not switch it on, and it only passes every request and response through. While the meter is on, it checks the address of each request the page makes with fetch, and for two kinds of claude.ai responses only (the reply stream of a chat, at addresses ending in /completion or /retry_completion, and .../ConversationService/StreamTimeline) it reads a copy and takes only the percent used and reset time of the 5-hour and weekly windows, which claude.ai sends with each reply. On the Free plan this is the only source of the figures, because the usage address above returns none.
The message text in the reply stream is not decoded: lines of the classic stream are compared byte by byte with the limit event's marker, and a line is decoded only when it carries the limit event; in the newer stream, compressed parts are skipped unread, and small uncompressed parts (64 KB at most) are checked byte by byte for the "5h" and "7d" labels and read only as numbers. When the chat reply address (ending in /completion or /retry_completion) answers with JSON instead of a stream (for example when claude.ai refuses a message at the limit), that JSON reply is read only to find the same limit fields.
The claude.ai page always gets the original, unchanged response, without delay. The script passes the figures it finds to the extension's own script on the same page, as a message inside the page. Nothing about the requests themselves is kept. This is the only place where the extension looks at a site's network traffic.
On chatgpt.com the extension shows the Codex usage limits of your ChatGPT plan, and labels them "Codex". It does not show limits on ordinary ChatGPT chat messages. With your existing chatgpt.com sign-in, on the same schedule as on claude.ai:
https://chatgpt.com/api/auth/session - chatgpt.com's reply contains your session access token and also account details (such as your name, email address and IDs). The extension takes only the token; everything else in the reply is ignored and never kept.
https://chatgpt.com/backend-api/wham/usage - called with that token. It reports the Codex usage of your plan. The extension takes from it only the percent used, reset time and length of each usage window (a 5-hour window and a weekly or 30-day window, as your plan has them) and your plan name (for example "free").
The token is used only inside the chatgpt.com page, only to call chatgpt.com itself, in the Authorization header of one request (the usage read above, or the chat read when you press "Continue in" or "Save"). It is fetched fresh each time, held only for that one request, and never stored, shown or sent anywhere else.
On claude.ai:
https://claude.ai/api/organizations again for the organization IDs (as above), then https://claude.ai/api/organizations/<organization ID>/chat_conversations/<chat ID> - the open chat. A chat lives in the organization it was started in, so if you belong to more than one (for example a personal plan and a Team), the extension asks each of your organizations in turn, the ones that can chat first, until one has the chat. claude.ai's reply holds every version of the chat and its tool results; the extension uses only the chat's title and, for the version on screen, the message text, text you pasted into a message (claude.ai keeps it with the message, up to 20,000 characters of each paste are used), the names of tools used and the names of attached files.
On chatgpt.com:
https://chatgpt.com/api/auth/session for a fresh token, then https://chatgpt.com/backend-api/conversation/<chat ID> - the open chat. The extension uses only the chat's title and, for the version on screen, the text of your messages and the answers, and where a picture or an uploaded file was, a short note in its place.
It happens only when you click, in an open chat on claude.ai or chatgpt.com, and only to the site you pick: ChatGPT (chatgpt.com), Claude (claude.ai), Gemini (gemini.google.com) or Grok (grok.com).
From the open chat the extension builds a short message (an opening line, the last 6 messages, up to 6,000 characters in all, and a closing line) and a Markdown (.md) file with the text of the whole chat, named after the chat's title. Pictures are not included.
It opens the site you picked in a new tab next to the chat. The hand-off is kept for that tab and that site only: if the tab goes on to another AI site, that site gets nothing.
When the site's message box appears, the extension first attaches the .md file, through the page's own file upload control if one takes text files, otherwise by dropping the file on the message box. It then watches for about 4 seconds for the file's name to appear on the page (in the page text, or in title or aria-label attributes). It counts how often the name shows before and after attaching, so a name that was already on the page (for example an older chat of the same title) does not count; only a new appearance does. Long names are matched by their first 16 characters, because sites shorten them. Then it puts the message into the box: only if the file counts as attached does the opening line say that the whole chat is attached as a file; otherwise it pastes a version without that claim, and a notice on the page says the file did not attach. Then it stops.
The extension never presses Send. You read the text, change or delete it, and decide whether to send it.
Some sites start uploading an attached file as soon as it is attached, before you press Send, just as when you attach a file yourself. If you do not want that, remove the attachment or close the tab.
If the site asks you to sign in first, the hand-off waits for the message box; it can be used for 5 minutes, then it is no longer used and a notice on the page says that nothing was pasted.
Once the text and the file are in the other site's page, that service's own terms and privacy policy apply: Anthropic's for Claude, OpenAI's for ChatGPT, Google's for Gemini and xAI's for Grok. We have no part in that and receive nothing.
The script that receives a hand-off runs on all four sites. When one of their pages loads, it asks the extension whether a hand-off is waiting for that tab. Only a tab the extension itself opened at your click, for that site, has one; in all other tabs it does nothing more. In a hand-off tab, to find the message box it looks at the page's editable fields (their size and position), and to tell whether the site accepted the file it searches the page's visible text and the title and aria-label attributes for the file's name. It keeps nothing from these pages.
Markdown (.md) and Word (.docx) files are made inside the page, in your browser, and handed to the browser as a normal download. They go to your browser's download folder (usually Downloads). The extension has no "downloads" permission and cannot read your download folder.
PDF opens the extension's own print page in a new tab. That page fetches the chat once from the chat's tab, and you save it with the browser's Print dialog ("Save as PDF"). In an Incognito window PDF is refused, with the message "PDF isn't available in Incognito; save as Word or Markdown".
Pictures are not copied into saved files. In a chatgpt.com chat each picture becomes a short note such as "[image 1]" and uploaded files are named only; in a claude.ai chat, attached files and pictures appear only as their file names, where claude.ai gives one. The extension keeps no copy of what you save.
Pages on any other website. The extension has no permission to read tab addresses or titles. To pick the figure for the toolbar icon, it asks the active tab's own script which AI site it shows; tabs on other sites have no script of the extension and give no answer. Nothing about the tab is kept.
Your browsing history. On the four AI sites the extension looks at the page address only to tell which site and which chat is open (a reading or a hand-off is accepted only from the right site) and, on claude.ai and chatgpt.com, to stay hidden on sign-in pages; there it also looks at the page title, only to stay hidden on security-check pages. None of this is kept.
Cookies or passwords. It does not record your keystrokes, clicks, mouse movements or scrolling. On claude.ai and chatgpt.com it only notices whether a click landed outside its own menu, to close that menu, and whether the tab is in view, to pause the meter in hidden tabs.
Your location.
meterOn - whether you turned the usage meter on (true or false). Kept until you change it or remove the extension.
readings - only while the meter is on. For Claude and for Codex on chatgpt.com separately: percent used and reset time of the short (5-hour) window and of the long window; the length of the long window in days; the ChatGPT plan name; the time of the reading; whether it came from the account or from a Claude reply; a short error note when a reading fails (at most 80 characters, for example "http 401") and its time; the time the account last reported no figures. Each new reading updates it; older readings are not kept. Deleted when you turn the meter off or remove the extension.
stripFolded_claude, stripFolded_chatgpt - whether you folded the on-page bar on that site (true or false). Kept until you change it or remove the extension.
No chat text, no token, no organization ID, no name and no email address is stored here.
The extension does not run in Incognito windows unless you allow it in chrome://extensions. If you allow it, figures read in Incognito tabs are stored in the same place as the others and stay after the Incognito window is closed, until a new reading replaces them or you turn the meter off.
Hand-off (chrome.storage.session, key handoff_<tab number>): the site you picked, the name of the service the chat came from, the message to paste (one version that mentions the attached file and one that does not), the file name, the whole chat as Markdown, and the time it was made. At most 3 MB. It can be used for 5 minutes. It is deleted when the new tab takes it, or when that tab is closed. If it is not taken, it is deleted when that tab, on the site you picked, asks for it again after the 5 minutes, or at your next hand-off once the 5 minutes are over, and in any case when you close the browser.
PDF: the print-ready chat waits in the memory of the chat's own tab for up to 2 minutes, until the extension's print page fetches it, once. It is deleted when fetched, after 2 minutes, or when the tab is closed or reloaded. The print page shows it while it is open and stores nothing.
We run no servers, and nothing the extension reads reaches us.
No analytics, telemetry, crash reports, ads or tracking.
We do not sell your data.
We do not transfer your data to anyone. The only transfer is the one you start: at your click, the extension puts your chat into the page of the AI service you choose.
We do not use or transfer your data for purposes unrelated to the extension's single purpose: a companion for your own AI chats that shows your usage limits and lets you continue or save a chat.
We do not use or transfer your data to determine creditworthiness or for lending purposes.
No person reads your data. It never reaches us.
The extension handles: personally identifiable information (the claude.ai organization ID, an account identifier, which it puts only in the addresses of its own requests to claude.ai; the replies of claude.ai's /api/organizations and chatgpt.com's /api/auth/session arrive whole and contain names, email addresses and IDs, but only the organization ID, whether the organization can chat, and the token are used), authentication information (the ChatGPT session token, used as described above), personal communications (your chat, only when you press "Continue in" or "Save"), user activity (the check of claude.ai's network requests and responses described above) and website content (usage figures, chat text, and the search of a receiving page for the file's name). The organization ID and the token go only back to the site they came from, in the requests described above, and are never stored; nothing reaches us. It does not handle health information, financial and payment information, location or web history.
The use of information handled by AI Limits & Handoff adheres to the Chrome Web Store User Data Policy, including the Limited Use requirements. The extension uses data only to provide its single purpose; it transfers data only to the AI service you choose, at your click; it does not use or transfer data for advertising; and no person reads the data.
To stop the usage meter: press "Turn off the meter" in the toolbar popup, or "Turn it off" on the extension's Options page. Reading stops at once in open tabs, and all stored figures are deleted.
To remove the extension: right-click its toolbar icon and choose "Remove from Chrome", or open chrome://extensions and press Remove. Chrome deletes everything the extension stored. If the meter was on, turn it off first, or reload or close any open claude.ai and chatgpt.com tabs afterwards: a script already running in an open tab keeps going until the tab is reloaded, though it can no longer store or pass on anything. The same applies when you turn the extension off in chrome://extensions.
Data held in memory (hand-off, PDF) is gone when you close the browser at the latest.
Files you saved are in your download folder; delete them there.
Anything you sent to an AI service is held by that service; use that service's own controls.
If a new version changes what the extension reads, keeps or shares, we will update this policy and its effective date before that version is published, and the extension will tell you about the change inside the extension and ask for your consent before the new practice starts.
Write to the developer contact email shown on the extension's Chrome Web Store page.