Cookies.
This version applied until the version dated 2026-10-08 replaced it on this site. Read the current version or see the version history.
We use the minimum needed to keep you signed in and the site functional. No advertising cookies, ever. Analytics is opt-in and the consent check fails closed: if we cannot read your choice, analytics stays off. Last updated: 2026-09-23. Previous versions
01 · Cookies we set.
Every cookie this site sets, including the two third parties that set their own. Each row names the file that sets it, so you can check this table against the code rather than take our word for it.
- Session cookies set by our authentication providerStrictly necessary. Keeps you signed in and lets server routes identify you. Without these you cannot use an account.
Clerk, on our behalf · Session and short-lived refresh cookies, managed by the provider. ·lib/identity/provider.tsx (ClerkProvider) - __Host-anon-session-idStrictly necessary. Identifies a signed-out browser so rate limits and request-integrity checks can be applied without an account. HttpOnly, Secure and SameSite=Strict, and the __Host- prefix means the browser refuses to set it from JavaScript or from another subdomain.
AGI Automation LLC · 24 hours. ·lib/csrf.ts - agiworkforce-languageStrictly necessary. Remembers your chosen interface language so the server renders the same locale you saw last time.
AGI Automation LLC · 1 year. ·app/i18n/index.ts - _ga and _ga_*Analytics. Google Analytics page-view and session measurement. These are set only after you opt in, and are not set at all until then.
Google · Up to 2 years, set by Google. ·shared/components/AnalyticsConsentGate.tsx - __stripe_mid, __stripe_sidPayment. Fraud prevention on card payments. Set by Stripe when their payment script loads, which happens only at the moment you confirm a payment, not while you browse, and not on the pricing page. If you never pay, they are never set.
Stripe · Up to 1 year (mid) and 30 minutes (sid), set by Stripe. ·features/billing/services/stripe-payments.ts
We set no advertising or cross-site tracking cookies, and we do not sell or share personal information for cross-context behavioural advertising. Only the analytics row needs your consent; the rest are necessary to keep you signed in, keep the site functional, or complete a payment you asked for.
02 · What else we put on your device.
A cookie policy that only lists cookies is answering a narrower question than the one you asked. Most of what this product stores on your device is in local or session storage, not cookies, including your session credentials. None of it is a tracking technology and none of it is shared, but you should be able to see it, so here is the whole of it: every key that carries an identifier, a credential, or something you wrote is named below with the file that writes it, and the last row accounts for the remainder by the prefix they all share. Fourteen of the named keys were missing from this table until 12 September 2026, including a cached copy of your profile and plan, the custom commands you wrote, and an unsent message you typed. A test now derives the list from the code, so the table cannot fall behind it again.
- cookie-consentLocal storage. Your analytics choice. Never sent to us. Anything unreadable counts as no decision, which means analytics stays off. A browser sending Global Privacy Control overrides whatever is stored here.
Cleared by: Clearing site data, which resets you to analytics off. ·shared/lib/cookie-consent.ts - agi.notice.free-plan-trainingLocal storage. The account id that dismissed the Free plan notice about free model providers, so it is shown once per account rather than on every visit. Never sent to us.
Cleared by: Clearing site data, which shows the notice again. ·features/chat/components/FreePlanTrainingNotice.tsx - agi.privacy.shareTelemetryLocal storage. A device-local mirror of your error-reporting preference, so the choice applies before the server answers. Off unless you turn it on.
Cleared by: Clearing site data. ·lib/sentry-shared.ts - agi-user-profile-storeLocal storage. A cached copy of your account profile so the app can render before the server answers: your name, email, avatar, and your plan and its renewal dates. It is a copy of what we already hold, not a separate collection.
Cleared by: Signing out, or clearing site data. ·shared/stores/user-profile-store.ts - agi-artifacts-storeLocal storage. Artifacts you have open, cached so they survive a reload. This can contain content you generated.
Cleared by: Clearing site data. ·features/chat/stores/artifacts-store.ts - agiworkforce-web-settingsLocal storage. Your app settings, including any custom commands you wrote. Those are your own text, held on your device.
Cleared by: Signing out, or clearing site data. ·shared/stores/web-settings-store.ts - agi-notification-storeLocal storage. In-app notifications you have received, their read state, and your notification settings.
Cleared by: Signing out, or clearing site data. ·shared/stores/notification-store.ts - agi-company-hub-storeLocal storage. Your AGI Work sessions and which one is active.
Cleared by: Signing out, or clearing site data. ·shared/stores/company-hub-store.ts - agent-metrics-storageLocal storage. Counters the app keeps for you about your own runs: sessions, completed and failed tasks, tokens and messages, and recent activity. Device-local, never sent to us, and not the metering we bill from.
Cleared by: Signing out, or clearing site data. ·shared/stores/agent-metrics-store.ts - agi-tool-permissionsLocal storage. The allow, ask and block verdicts you saved for individual tools.
Cleared by: Signing out, or clearing site data. ·features/connectors/stores/tool-permissions-store.ts - agiworkforce-web-chatLocal storage. Your model choice, the sidebar state, and the standing per-conversation decisions you made: which connectors a chat may not reach, whether Memory is off for it, and whether it is a Chat or an AGI Work thread. No message text.
Cleared by: Signing out, or clearing site data. ·shared/stores/web-chat-store.ts - agi-model-store, agi-response-style, agi-thinking-store, agi-ui-store, tool-storageLocal storage. Interface preferences with no personal data in them: the model and provider you last picked, your response style, your thinking-effort setting, panel and layout state, and your tool filters and trusted workflows.
Cleared by: Signing out, or clearing site data. ·shared/stores/model-store.ts, features/chat/stores/style-store.ts, shared/stores/thinking-store.ts, shared/stores/layout-store.ts, shared/stores/tool-store.ts - agi_last_activityLocal storage. A timestamp of your last interaction, used to time out an idle session.
Cleared by: Signing out, or clearing site data. ·shared/hooks/useSessionTimeout.ts - theme, theme-preferenceLocal storage. Light, dark or system. Read before first paint so the page does not flash the wrong theme.
Cleared by: Clearing site data. ·public/theme-init.js - agiworkforce-languageLocal storage. The same locale choice as the cookie above, cached for the client.
Cleared by: Clearing site data. ·app/i18n/index.ts - agi:tts-voice-uriLocal storage. Which system voice you picked for read-aloud.
Cleared by: Clearing site data. ·lib/hooks/useTTS.ts - agi.terms-accepted-versionSession storage. The revision of the terms you ticked, so signing in with a provider that leaves the page and returns does not lose the click. It is consumed once the account records your acceptance.
Cleared by: Closing the tab, or completing sign-up. ·app/signup/TermsGate.tsx - agi.team.invitation-tokenSession storage. An invitation token carried across the sign-in redirect so the invite still applies when you land back.
Cleared by: Closing the tab, or accepting the invitation. ·features/teams/components/TeamInvitationAcceptance.tsx - __storage_test__Local storage. Nothing readable. It is written and removed again in the same breath, to find out whether this browser allows local storage at all before anything tries to use it.
Cleared by: Removed immediately by the check that wrote it. ·shared/utils/browser-utils.ts - Everything else, under an agi or agiworkforce prefixLocal storage. Interface state with no personal data in it: which model favourites you starred, which notices and banners you dismissed, which conversations are unread, and which interface variants you are on. Every remaining key the app writes carries one of those two prefixes, which is how the sign-out sweep finds them all. Nothing outside that prefix and outside this table is written by us.
Cleared by: Signing out, or clearing site data. ·shared/stores/authentication-store.ts (APP_STORAGE_KEY_PATTERNS)
Local storage survives closing the browser; session storage does not. Clearing site data in your browser removes both, and will sign you out.
03 · Two things people usually get told wrong.
There is no CSRF cookie
Our cross-site request protection is a token carried in a request header and bound to your session, not a cookie. Earlier versions of this page listed a "CSRF token" cookie. Nothing set one, so it is gone.
Your consent choice is not stored in a cookie
It is stored in your browser’s local storage under the key cookie-consent, on your device only. It is never sent to us. Clearing site data resets it to the default, which is analytics off.
04 · Do Not Track and Global Privacy Control.
We honour Global Privacy Control. A browser that sends the Sec-GPC header, or sets navigator.globalPrivacyControl, is read here as refusing every purpose that is not needed to serve the request you are making: analytics, and the product-update list in the consent centre. That refusal wins over an acceptance stored in this browser, so an earlier “allow analytics” choice stops applying for as long as the signal is on, and the analytics switch in cookie preferences is shown off and locked with the reason beside it.
What it does not do: it never touches the strictly necessary cookies in the table above, so it cannot sign you out or keep you from signing in, and it does not overrule a form you fill in yourself. If you tick a box asking us to email you, that tick is your instruction and we act on it. Do Not Track is a separate, older header with no agreed meaning and we still do not read it; the outcome it asks for is the one Global Privacy Control now gets. We do not sell or share personal data for advertising, and honouring the signal does not depend on that.
05 · Your choices.
Change your cookie preferences at any time: analytics stays off until you turn it on, and switching it back off stops it loading on your next page view. You can also manage cookies through your browser; clearing them will sign you out of any active session. For data export or deletion, see the privacy policy.