Privacy Policy
ChatGPT Fork keeps fork history in your browser and sends the context needed when you request a Fork or Apply operation. We also keep server-side account and usage records to operate the service.
Effective date: November 1, 2026 (UTC)
Last updated: November 4, 2026 (UTC)
Privacy at a glance
- Fork history and conversation snapshots are stored locally in your browser using Chrome extension storage.
- When you request a Fork or Apply/Merge operation, the relevant conversation context is sent to our backend for in-memory processing and then to OpenAI.
- Our backend does not persist or log raw conversation content. Server-side account and usage records contain identity and service metadata, not prompts or responses.
- Your Google access token is session-scoped. Your email is used only for signed-in popup display. A stable Google account identifier is stored server-side to associate your account and usage.
- OpenAI may retain submitted API content for abuse monitoring for up to 30 days unless stronger account-level retention controls apply.
- After you choose Apply, the extension can insert text into ChatGPT and automatically submit it to the main conversation.
- Google Cloud Run may retain standard request metadata such as IP address, URL, user agent, status, and request/response sizes, but observed logs do not contain conversation bodies.
- Exported fork-history JSON files remain on your device and are managed by you.
1. What ChatGPT Fork accesses
ChatGPT Fork runs on chatgpt.com and reads the parts of the ChatGPT page needed to provide the fork feature. When you create a fork, the extension may capture:
- the selected assistant response block and related source metadata;
- the user and assistant conversation transcript up to the selected message;
- ChatGPT conversation and message references used to associate local fork history with the correct conversation; and
- fork messages, titles, timestamps, model metadata, and apply status created while you use the extension.
The extension does not intentionally access ChatGPT cookies, passwords, payment information, browser history, geolocation, arbitrary browser tabs, or files/images you upload to ChatGPT.
2. Local storage
ChatGPT Fork stores conversation snapshots, source text, fork history, fork messages, timestamps, titles, model metadata, and apply status locally in chrome.storage.local. We do not receive this locally stored content unless you actively submit a Fork or Apply request.
The extension also stores limited interface state locally and caches a Google OAuth access token in chrome.storage.session for the current browser session, not in durable fork history.
Fork history remains in your Chrome profile until you delete individual forks, clear extension data, remove the extension, or clear the browser profile. You can export fork data or import previously exported fork data. Deleting local history does not delete server-side account or usage records. Exported files must be deleted separately.
3. What happens when you submit a Fork or Apply request
When you invoke a Fork or Apply/Merge AI feature, ChatGPT Fork sends the content needed for that operation to the ChatGPT Fork backend for processing. Opening ChatGPT, hovering a response, opening the panel, and viewing History do not themselves send conversation content to the AI backend.
Depending on the action, the request may include:
- a fork identifier;
- selected ChatGPT source text and source type;
- the relevant parent conversation transcript;
- the fork-local conversation and user fork questions; and
- the relevant context or requested outcome for Apply/Merge.
ChatGPT conversation references and message IDs used to organize local fork history are not included in the normal AI request payload.
If hosted Apply cannot complete, a local instruction can be prepared without an additional AI request.
4. Conversation processing is not usage-record storage
We do not persist or log raw ChatGPT conversation content on our backend. Submitted content is processed in memory to complete the requested operation and sent to the AI provider as described below. The backend does not use its database or filesystem to store prompts, fork transcripts, assistant responses, or generated Apply text.
Persistent usage/accounting records do not contain raw prompts, transcripts, responses, evidence excerpts, Authorization headers, OAuth access tokens, API keys, or raw provider request/response payloads. This is distinct from local browser history and the AI provider's processing and retention.
5. OpenAI processing
After a Fork or Apply request reaches the ChatGPT Fork backend, the context needed to generate the requested result is sent to the OpenAI API.
The backend uses the OpenAI Responses API with store: false, which disables Responses application-state storage.
OpenAI may still retain API content for abuse monitoring for up to 30 days unless stronger account-level data-retention controls apply.
OpenAI's independent retention and processing practices are governed by OpenAI's applicable policies and account settings.
6. Google sign-in, account identity, and email
ChatGPT Fork requests the Google OAuth openid and email scopes.
The access token authenticates backend requests and is verified with Google.
It is cached only in the browser session and held temporarily in backend authentication memory, not written to the persistent accounting database
or used as a durable accounting identifier. Signing out clears the extension's cached authentication session.
A stable Google account identifier is verified and stored in our server-side account database. It identifies your account and associates your role, plan, and usage/accounting state. Server-side entitlement and account-owner designation use this identifier, not your email. We do not return the identifier to the extension or write it to application logs.
The email scope lets the popup retrieve your email directly from Google UserInfo to show the signed-in account. Email is held only in popup memory and cleared on session changes, sign-out, and popup closure. It is not sent to the ChatGPT Fork backend, durably stored by ChatGPT Fork, logged, or used to decide your account role, plan, or allowance. If lookup fails, the popup can show a generic signed-in indication instead.
7. Applying content back to ChatGPT
In extension version 0.1.7 and later, after you explicitly choose Apply to main chat, ChatGPT Fork prepares text from the relevant context, replaces any existing unsent main-chat draft, and automatically submits the prepared text to the main conversation. No manual clearing or second confirmation is needed; the Apply button explains this before use. The replaced draft is discarded, not saved for recovery or included in the prepared instruction. ChatGPT then handles the submission under OpenAI's applicable terms and privacy practices.
Version 0.1.6 asks for confirmation before replacing different unsent text. The direct-Apply behavior above applies only after Chrome installs version 0.1.7 or later.
8. Hosting, account and usage records, and logs
The backend is hosted on Google Cloud Run. A dedicated server-side database stores account identity, role/plan, monthly generation counters, and service usage/accounting metadata. Records may include account association, operation type and status, timestamps, reservation/finalization state, reported numerical provider token counts, and fixed reliability/error classifications where applicable. Numerical AI token counts are usage measurements, not authentication credentials.
We use these records to operate and measure the service, associate account usage, support accounting/quota infrastructure, and maintain reliability and security. Missing provider token counts remain unknown rather than being estimated. The extension displays account/allowance status, not private provider token analytics.
Retention
Detailed operation and provider-usage records are assigned a 90-day expiry. Where the expiry policy is enabled, automatic database cleanup is asynchronous; deletion is not guaranteed at the exact expiry time. Account identity, role/plan state, and monthly counters remain until server-side deletion.
Our application logs limited operational metadata such as request ID, HTTP method, path, status, and duration. It does not intentionally log request bodies, response bodies, authentication tokens, conversation text, email addresses, or request headers.
Google Cloud Run may independently retain standard request metadata such as IP address, requested URL, user agent, HTTP method, protocol, status, request/response sizes, and latency. Observed Cloud Run logs do not contain conversation request or response bodies. The currently observed request logs use Google's default logging retention of approximately 30 days.
9. Third parties that may receive data
- Google OAuth / UserInfo — identity verification and popup-only email retrieval.
- Google Cloud Run / Cloud Logging — backend hosting and standard operational request metadata.
- Google Cloud Firestore — private server-side account identity and metadata-only usage/accounting storage.
- OpenAI API — processing submitted Fork and Apply context to generate results.
- ChatGPT — receives text you choose to submit back to the main conversation.
- Google Chrome — provides extension storage, identity APIs, and Chrome Web Store distribution.
- Stripe — optional, explicitly enabled hosted payments and subscription billing. It receives a pseudonymous internal account ID, never Google authentication tokens or chat content.
10. Usage measurement, advertising, and payments
ChatGPT Fork records the account and service usage metadata described above for its requested functionality. It does not use advertising trackers, fingerprinting, behavioral advertising, or data-broker integrations. ChatGPT Fork does not sell or rent user data.
Billing is disabled by default. An operator must explicitly configure test or live mode before enabling it. Choosing a billing action opens Stripe-hosted pages. Live subscriptions collect recurring payments; clearly labeled sandbox pages accept test payment details only. Stripe processes information entered there under its own policies. Stripe collects payment details on its pages. Our extension/backend do not collect card numbers or CVCs, or persist or log billing addresses or payment email. Signed Stripe events and API responses may contain address/email transiently; only allowlisted subscription and payment-status metadata is retained. We do not send the popup-display Google email to Stripe. The backend stores customer/subscription IDs, subscription status, paid-through time, checkout attempt/session IDs and expiring coordination leases until account deletion. Processed webhook event IDs, account association and timestamps have a 90-day metadata expiry policy. Raw webhook payloads, billing-page URLs, Stripe secrets and payment details are not stored or logged.
Clearing local history, signing out or uninstalling does not cancel a subscription. Use Manage billing or contact support to stop renewal. A verified server metadata deletion request also requires an operator to resolve/cancel the subscription, delete reverse customer mapping and processed billing events, and separately handle Stripe's retention/deletion requirements. Usage measurements support monthly generation allowances and server-side quota enforcement. Authentication, abuse prevention, and rate limits still apply.
Chrome Web Store publisher analytics, if provided by Google, are generated by the Chrome Web Store platform and are separate from the extension's own runtime behavior.
11. Exported data
If you export fork history, the resulting plaintext JSON file may contain conversation text and fork messages. The exported file remains on your device and is managed by you. We do not automatically upload exported files to our backend.
12. Your controls and server metadata deletion
- Delete individual forks or clear local extension history/data.
- Export fork history or import previously exported history.
- Sign out, disable, or uninstall the extension.
These local actions do not delete server-side account/usage records or reset allowance. There is no automated account-deletion button in the extension. To request deletion of server-side metadata, contact support@northboundsoftwaregroup.com. An authorized operator verifies account ownership and deletes the account metadata and its associated records. Do not include access tokens or other credentials in your request.
Local controls do not delete separately exported files or override an AI provider's independent retention practices.
13. Security
OpenAI API credentials are kept on the server and are not included in the browser extension bundle. ChatGPT Fork does not intentionally read or store your ChatGPT cookies, passwords, or payment credentials.
14. Changes to this policy
This policy may be updated as ChatGPT Fork changes. Material changes will be reflected on the published page with an updated effective date.
15. Contact
Privacy questions can be sent to support@northboundsoftwaregroup.com.