Privacy: what leaves your browser

What stays in the browser, what each feature sends and to whom, the rows Direct Connection takes off the server path, and what the hosted app measures.

Browse documentation

What stays in the browser, in two stores:

StoreWhat it holds
Local storageAPI keys and models, all settings and configuration
IndexedDBchats and larger local files; on the hosted app also persona, ramble and notification entities
Note

Direct Connection works only with your API key stored in the browser, and with an AI service that permits direct browser calls (CORS). Where it cannot be used, requests route through the Big-AGI fast edge servers instead - everything still works, within the standard upload size and time limits.

One row per feature, the ones that never reach Big-AGI grouped at the bottom:

FeatureRoute
Chat message - text, history, system prompt *browser -> Big-AGI edge -> AI service
Attachments - the bytes travel inside the message *as the chat message: inlined into the request body, no separate upload endpoint
Attach from Google Drivebrowser -> Google, direct: your tab downloads it with your Google token, our servers never see the file
Files the model made *browser -> Big-AGI edge -> AI service, on your key
Model list refresh *browser -> Big-AGI edge -> AI service
Voice input, recorder engines - hosted appbrowser -> the transcription vendor, always: audio files never traverse our server
Voice output, hosted voicestext -> Big-AGI edge -> the voice vendor
Attach a link, page browsingURL -> Big-AGI server -> the page: a browser we run fetches it, so the site sees our address, not yours
YouTube transcriptvideo id -> Big-AGI edge -> YouTube; Direct Connection does not move this row
Web searchquery -> Big-AGI edge -> the search API
Location for web search - off until you turn on Locationcoordinates -> nominatim.openstreetmap.org; only the city, region, country and timezone it returns ride the model request
Image generationprompt and any input images -> Big-AGI edge -> the image vendor
PlantUML diagrams - drawn as soon as the block appearsthe diagram source -> plantuml.com, from your browser
Publish or share a conversation - hosted appthe conversation is copied to our server when you ask for a link - an explicit act
Product analyticshosted app only - see Analytics
Voice input, browser engineyour browser's own speech service (in Chrome, Google's), never Big-AGI
Voice output, browser voicelocal only - your browser's own speech synthesis, no network to us
Attachment conversion - PDF text, PDF to images, OCR, DOCX and HTML to Markdownlocal only - the PDF and OCR engines run in your browser
Chat searchlocal only - keyword matching over your local text, no embeddings, no server query
Token count and cost estimatelocal only - the tokenizer runs in your browser

* skipped with Direct Connection on, per service: the Big-AGI edge drops out and your browser calls the AI service itself.

On Open the two rows marked hosted app change. Every microphone is your browser's own speech service, and a share link exists only where the operator configured storage for it.

Upload size and time limits on the server path live on Context and limits.

Three-lane sequence diagram. Your Control holds the browser with your data and keys. Transit Only is the Big-AGI edge. AI Provider is the model service. Request plus key goes from browser to edge, the edge forwards it to the AI Services box, and a dashed response arrow returns through both.
The default route, in three lanes: Your Control, Transit Only, AI Provider.

Analytics

Analytics need keys compiled into the build, and an Open build has none, so a self-hosted instance reports nothing. What your instance reports has the detail. The hosted app runs four systems:

SystemWhat it sends
PostHog, in the browserEvents the app defines - feature used, model, timings - plus the library's own automatic capture: page views, clicks, JavaScript errors. A recorded click carries the text of the element clicked. Served from our own domain, under /a/ph
PostHog, at the edgeTwo events per generation, aix_chat_generate_started and aix_chat_generate_completed: which AI service and model, token counts, timings, how the turn ended, and your IP address. Keyed to your account; signed out, to anonymous
Google Analytics 4Page views, plus five account events sent from our server: sign_up, login, begin_checkout, purchase, subscription_renewal
Vercel AnalyticsPage views, from the hosting platform

The events the app defines carry metadata only; the rule in code is "never transcript text, titles, or topic labels". The same rule withholds vendor error text, because an error string can echo a fragment of a key. The identity attached to the events is deliberately thin: no email address, no display name, no picture, no storage figures, no per-device identifier.

Account events are the one exception on email. The server may attach a SHA-256 hash of it, withheld for the European Economic Area, the UK and Switzerland. The plaintext address never leaves that function. Arriving from an ad writes agi.att, a first-party cookie on .big-agi.com that holds the click id for 90 days, read again at checkout. big-agi.com/privacy is the disclosure of record.

The hosted app has no analytics switch today.

Read the literal request

The AI Inspector captures the exact JSON body that left your browser for a turn. That body holds the assembled system prompt, the history as sent, the model and its parameters. A transport chip names the route it took, Direct Connection or Edge Server.

Pro

Chats, personas, rambles and notifications stay on this device and browser only, unless you subscribe to Pro: cloud backup and multi-device sync (1 GB). On Open there is no sync. Disabling sync never deletes local data.

© 2026 Token Fabrics·Built with passion in San Diego