Branch Switcher for ChatGPT privacy policy
In short
- It reads the versions of the ChatGPT chat you have open, to draw the ‹ 1/2 › arrows and the list of versions.
- Switching a version happens inside the ChatGPT tab, with your own signed-in session.
- Your chats never reach us. Our server only marks the day your free days began, checks a Pro key and counts installs by a random ID.
- Payments go through a merchant of record. We never see your card.
- If you tell us why you removed it, that message is kept for 12 months, without an email or IP address.
Who is responsible
Ivan Korost, an independent developer who publishes browser extensions under the name etcetera, is the data controller for the extension and its licence service. Contact: support@etcetera.tools.
No company has been registered for etcetera. If one is, its name and registered address will be stated here.
Branch Switcher for ChatGPT is an independent extension, not affiliated with OpenAI. ChatGPT is a trademark of OpenAI.
What the extension reads
On chatgpt.com, for the chat you have open, it asks ChatGPT for the whole tree of that conversation: every version of every message, with its text, ChatGPT’s IDs for it and when it was written. This is the same kind of request ChatGPT’s own page makes, sent from the page itself. The arrows, the version counts and the list of versions — the first words of each version and its time — are drawn from that answer, in your browser.
To make that request the way the page does, the extension reads your session token from chatgpt.com
(/api/auth/session). It is used only for that request to chatgpt.com, held in the tab’s memory
for a few minutes and then dropped. It is never stored and never leaves the page.
A small script in the page’s own context switches which version the page shows: it changes ChatGPT’s copy of the conversation in the tab’s memory, so the page redraws that branch and your next message continues it. If ChatGPT’s page has changed and that does not work, the extension reopens the chat from ChatGPT’s home page and puts the branch you picked into ChatGPT’s own reply when the page loads it — still inside your tab.
What it sends, and to whom
To ChatGPT. The request for the conversation tree above, from the tab where you are already signed in, using that session. Switching a version sends nothing; your next message is sent by ChatGPT itself, as it always is. OpenAI handles all of this under its own privacy policy. Nothing from your chats goes anywhere else.
To etcetera.tools. Once, on install and again only after a reinstall, the extension asks our own server which day your 3 free days of Pro began, so that reinstalling does not start them over. The only thing that travels is the cookie described under “Cookies” below. If Pro was bought or used in this browser before, the answer to that same request can carry the licence key, and one more such request goes out when you come back from the checkout.
Once there is a key, the extension also sends that key, an identifier for this browser’s activation and a label such as “Chrome on Windows” to the same server: on activation, about once a day after that, and once more when you press “Remove key”. On activation our server registers this browser with the merchant of record under that label — that is how it appears, and can be removed, in the merchant’s purchase portal. Our server also checks with the merchant of record that the key is still paid for and answers with a status, the date Pro is paid up to, and — for the popup — the buyer ID the merchant of record gave your purchase, how many browsers use the key and the plan. Nothing of this stays with us: the checks are not recorded, and neither keys nor IP addresses are logged (the one exception is the keyed hash of a key, described under “Payments”). Requests are only rate-limited by IP address at the Cloudflare edge, in memory.
Install counts. So that we know how many people use the extension and who stays, the extension also tells our server — about once a day, and when Pro switches on or off — a random install ID that our server made up for this browser, the extension’s version, and whether it is on Free, the free days or Pro. When you remove the extension, the browser opens a goodbye page, etcetera.tools/version-arrows/bye/, with that ID, and we note the time. That is all: nothing from your chats, no pages you visit, no IP address, country or language. Each install and removal is deleted 12 months after it happened, and the install’s record 12 months after it was removed or last reported in. There are no third-party analytics and no crash reporting.
What it stores
Through the browser’s own storage: the day your free days began, as our server signed it, and your licence key, if you have one. With an active key it also keeps the identifier of this browser’s activation, the last answer the licence check came back with, and the buyer ID, browser count and plan shown in the popup. And the random install ID with the time it last reported in. No text from your chats.
In the session storage of the chatgpt.com tab: for each chat you switch in, the IDs of up to 50 branch ends you were recently on, so that going back to a version returns you to the branch you left there; and, for a few seconds while the fallback above reopens a chat, that chat’s ID and address and the ID of the message to show. These are ChatGPT’s IDs, not text. The browser clears session storage when you close the tab.
If you are signed into your browser with sync switched on, the browser copies the key and the day your free days began to your browser account — that is a transfer to Google or Microsoft under their own terms, not to us. The activation identifier and the last answer about the key stay on this computer.
Cookies
Three, on etcetera.tools, and only for the extension. va_window holds the day your free days began — the day in UTC, signed so it cannot be edited. Everyone who installed the extension on the same day gets an identical cookie, so it identifies no one. va_license appears only with Pro: it is set when you come back from the checkout and again each time the extension activates a key in this browser, and holds an encrypted copy of the key, of this browser’s activation and of the purchase’s licence and buyer IDs, which only our server can read. It is what lets a reinstalled extension switch Pro back on by itself without taking another of the key’s two places. va_install holds the random install ID from “Install counts” above, so that a reinstall in the same browser counts as the same install coming back, not as a new person.
All three are HttpOnly, are sent back only to the extension’s own addresses on etcetera.tools
(/api/version-arrows/license/ and, for the third, /api/version-arrows/stats/) and
expire 400 days after they were last set. Our server keeps no copy of the first two. “Remove key” deletes the
second one, and deleting your cookies for etcetera.tools removes all three. Apart from that return from the
checkout, our pages set no cookies.
Payments
Purchases are handled by Freemius, Inc., our merchant of record: an authorised reseller that becomes the seller of the licence. It collects your name, email, billing address, tax location and payment details as an independent controller of that data, under its own privacy notice. We never see or hold your card details.
The licence key is issued by the merchant of record and delivered to you in the receipt email and in its purchase portal. After paying, the checkout sends you back to etcetera.tools/version-arrows/welcome/ with the licence ID and your email in the address: our server uses the licence ID to put the key into the va_license cookie, keeps neither and clears both from the address bar. What reaches us otherwise is a notification of each order. From it we keep the order identifier, the plan, the last five characters of the key, the date, the status (paid, refunded or disputed), the subscription and licence identifiers, the date the subscription is paid up to, and a keyed hash of the key — it cannot be turned back into the key, and lets our server keep Pro working to the end of the paid period even if the merchant of record ever stops answering. We do not keep your email address, your name, your country, your IP address or the full key. When you write to support, your order is found by the email you paid with in the merchant of record’s own dashboard.
Sale records are kept as long as the tax law of the place the business is registered in requires. The “paid up to” date is kept for as long as the key can still be activated.
Where it runs
On chatgpt.com — chats, chats in projects and temporary chats all live there. That is why Chrome says the extension can read and change your data on chatgpt.com.
And on one page of ours: after a purchase, etcetera.tools/version-arrows/welcome/, where it only tells itself to fetch the key. It reads nothing on that page. Its access to etcetera.tools is for the licence and install-count requests above. It runs on no other site.
Feedback
The goodbye page, etcetera.tools/version-arrows/bye/, asks why you removed the extension. If you answer, the message is stored in our own database on Cloudflare: the reason you picked, what you wrote, and your browser, its major version and your operating system, read by the page when you press Send. There is no email address, no IP address, no cookie and nothing that ties a message to your install ID or a licence key. Sending is rate-limited by IP address at the Cloudflare edge, in memory, as with the licence checks. Each message is deleted 12 months after it arrives.
The form has no email field. If you want an answer, write to support@etcetera.tools instead — that is support email, below.
Support email
If you write to us, we keep the correspondence for as long as it takes to resolve the matter and a reasonable period after, then delete it.
Your rights
You can ask for a copy of what we hold about you, ask for it to be corrected or deleted, object to processing, or ask for it in a portable form. One email to support@etcetera.tools is enough; there is no form and no fee. If you are in the EEA or the UK you may also complain to your national data protection authority.
International transfers
Our server runs on Cloudflare’s global network, so data may be processed outside your country; Cloudflare relies on standard contractual clauses for those transfers. The merchant of record also processes payment data outside your country, relying on standard contractual clauses as its own privacy notice describes.
Children
The extension is not directed at children under 16, and we do not knowingly collect their data.
Changes to this policy
If anything here changes, this page changes first, with a new date at the top.
Contact
Questions about this policy: support@etcetera.tools.