Privacy policy
Effective 2026-10-28
This policy covers the Extent apps for iPhone and Mac, the Extent service at api.extent.sh and this site. "Extent", "we" and "us" mean the people who run Extent. You can reach us at hello@extent.sh.
In short: we keep what your bots need to work for you. We don't sell your data, show ads, or use your data to train AI models. Credentials and app tokens are encrypted and never reach the cloud computer your bots use. Google data is used only to act for you, under Google's Limited Use rules (below).
What we collect
- Your account. Your email address, and your name and profile picture link if you sign in with Apple or Google and they share them. Your time zone and sign-in sessions.
- Your bots. Each bot's name, avatar, color, model and settings, such as how often it speaks up and your quiet hours. Routines you set up by asking.
- Messages. What you send your bots, what they send you, your taps on choices, and approval cards with your decisions. We also keep the AI model's own session file for each bot (its record of tool calls and their results), so a conversation can pick up where it left off.
- Attachments and files. Photos, documents and other files you send, and the images and files your bots save to their library. We re-encode photos, which removes location and other EXIF data.
- Your AI plan. The credential for the Claude or ChatGPT plan you connect (a sign-in token or an API key), the plan name, and usage readings such as how much of a 5-hour limit is used. When you sign in to a plan from the app, the sign-in runs in a short-lived container that is destroyed when it ends.
- Connected apps. For each app account you connect (Gmail and Google Calendar, GitHub, 1Password, or an MCP server you add): the OAuth tokens or key, the account's email or name, and the label you give it. For GitHub, the installations you link and the activity GitHub sends us for them. For custom MCP apps, the server URL and its icon. How we handle Google data is in its own section.
- Memory and skills. Your bots keep notes about you and what's going on: a shared profile, a daily summary, an activity log (messages to and from you, routine results, what background checks found, approvals and connections), notes per bot, weekly notes, skills (procedures you saved from a chat), and a short email style profile per Gmail account.
- Devices. An install id, the device type, and the push token for each device. If you allow Apple Calendar on iPhone, the app sends us your events from 2 days back to 30 days ahead, so bots can check them while the app is closed. The app may ask for Contacts and Reminders; it doesn't send either to us today.
- The cloud computer. Whatever your bots or you do on it: pages visited, downloads, files, and the cookies and sign-ins sites leave behind.
- Usage and diagnostics. Per turn: the model, token counts, timings and errors. Traces of bot turns (Langfuse). Request logs on our hosting, which include IP addresses, and rate-limit counters keyed by email and IP.
We don't use analytics or advertising SDKs in the apps, and this site has no trackers or cookies.
How we use it
- To run your bots: give each turn its context, run the tools it calls, and deliver its messages and push notifications.
- To act for you in the apps you connect, and only after your tap for anything others can see or that can't be undone, such as sending an email, changing a calendar event or posting on GitHub.
- To keep the service secure, stop abuse and enforce limits.
- To find and fix problems.
We don't sell personal data, use it for advertising, or use it to train or improve AI or machine learning models.
Where it's stored
- Cloudflare D1: accounts, bots, messages, routines, approvals, app connections (without their tokens), skills index, device records and usage.
- Cloudflare R2: attachments, bot files and images, model session files, and app icons.
- Cloudflare Durable Objects: each bot's live state, and the encrypted credentials and app tokens, each held by the one object that uses it.
- Wiele: the memory files and skills described above.
- boat.dev: the cloud computer's disk and saved snapshot.
AI plan credentials and app tokens are sealed with AES-256-GCM using a key kept in Cloudflare's secret store. They're decrypted only inside our service when a call needs them, are never logged, and never enter the cloud computer. Traffic to and from Extent uses TLS.
Who processes it
We use these providers to run Extent. Each gets only what its part needs.
| Provider | What for | What it gets |
|---|---|---|
| Cloudflare | Hosting, databases, file storage, the containers that run bot turns and plan sign-ins, sign-in code emails | Everything stored by Extent, as our host |
| Anthropic or OpenAI, on your own plan | Running your bots | Each turn's input: your messages, the bot's memory and context, and the results of its tools, which can include email and calendar text. This goes through the Claude or ChatGPT plan you connected, under your own account with that provider |
| OpenAI, through Cloudflare AI Gateway, on Extent's account | The short "working on it" line shown while a bot works | A tool's name and a short summary: a search query, a date range, recipients' names without addresses, or a website's domain. Never message or email bodies |
| Langfuse (EU region) | Traces of bot turns, to debug and measure them | Each turn's input, the model's responses, tool calls and their results, token counts and timings. Gmail and Calendar data is masked before export (details), secrets and tokens are masked, and image data is removed |
| boat.dev | The cloud computer | What runs on the computer: pages, downloads, files and site sign-ins. No Extent credentials or app tokens |
| Wiele | Memory storage | The memory files and skills |
| Apple | Sign in with Apple, push notifications | Sign-in tokens; the push token and the notification text |
| Sign in with Google; Gmail and Calendar if you connect them | Sign-in and API requests made for you |
When you connect GitHub, 1Password or a custom MCP server, Extent sends that service the requests your bots make there. Those services handle the data under their own terms. When a bot reads a public web page, the page's site sees a request from Extent's server.
Some providers process data in the United States and other countries. Where the law requires it, transfers rely on standard contractual clauses or an equivalent safeguard.
Google user data
Extent's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.
Scopes we request
When you connect Gmail and Google Calendar:
| Scope | What Extent does with it |
|---|---|
openid, email | Learns which Google account you connected, to label it and tell your accounts apart |
https://www.googleapis.com/auth/gmail.readonly | Searches and reads your mail when you or your bot ask; checks for new mail every few minutes so a bot can tell you when something needs you; reads a sample of your sent mail to write a style profile so drafts sound like you; counts sender domains to suggest apps to connect |
https://www.googleapis.com/auth/gmail.compose | Creates and updates drafts, deletes a draft you cancel, and sends a draft only when you tap Send on its card |
https://www.googleapis.com/auth/calendar.events | Reads events on your primary calendar and checks for changes; creates, changes or deletes an event only after you approve it |
Sign in with Google asks only for openid, email and profile, to create your Extent account.
How Gmail and Calendar data are used
- Only to act for you. Your bots use your mail and calendar to answer what you ask, tell you when something needs you, and prepare drafts and calendar changes.
- Nothing goes out without your tap. A bot can only save an email as a Gmail draft and show it to you on a card. The email is sent only when you tap Send. No setting, routine or instruction sends mail without that tap. Calendar changes wait for your approval the same way.
- No copy of your mailbox. Extent reads mail and events when needed. What we keep is what your bots put in your conversation or memory (a summary, a quote, a draft on its card), what background checks found, the model's session file, the email style profile (style only, no message contents or addresses), sender domains with counts, the position Gmail and Calendar give us to fetch only what's new, and the encrypted tokens.
- No ads, no selling, no profiling for others. We never use Google data for advertising, sell it, or use it to decide credit or lending.
- Masked in traces. Before a trace of a bot turn goes to Langfuse, what Gmail and Calendar calls sent and returned is replaced with a size and shape summary, such as "gmail_read output: 3 messages, 4.2 KB, masked". The tool's name, timing, status and errors stay. In a turn that read Gmail or Calendar, everything the model wrote after that point is masked the same way, and so are background mail and calendar checks and memory summaries as a whole. Traces can still hold words from your mail when a bot repeats them in a later turn, from its earlier conversation or its memory notes, and your Google account's address appears in a turn's context.
- No transfer except to provide the feature. Google data goes only to the AI model on your plan that runs your bot, and to the providers that host, store and trace what the bot does (listed above). It also goes where the law requires, or to protect against abuse and security threats.
- No human reading. No one at Extent reads your Google data, except with your explicit permission for a specific problem you ask us to look into, where needed for security or to investigate abuse, or to comply with the law.
- No AI training. We don't use Google user data, or let our providers use it, to develop, improve or train generalized AI or machine learning models. The model that runs your bot does so under your own Claude or ChatGPT account. If you don't want that provider to use your chats to improve its models, turn that off in your account's privacy settings with Anthropic or OpenAI.
Revoking access
Disconnect a Google account in Extent's Apps sheet. Extent revokes its access at Google, deletes its tokens and the account record, and, when it was your last Google account, the sender domain counts. You can also remove Extent at myaccount.google.com/permissions.
How long we keep it, and deleting it
- Account data, bots, messages and memory: until you delete them or your account.
- Deleting a bot deletes its conversation, routines, approvals, files and images, its live state and running container, which skills it had on, its model session files, its memory notes and weekly notes, and its traces. Skills it saved stay in your skill library, which all your bots share, and your profile and activity log stay with your account.
- Disconnecting an app account revokes its access where the service supports it (Google, 1Password, and MCP servers that offer revocation), deletes its tokens and removes the account. GitHub stays installed on your GitHub account until you uninstall it there.
- Removing an AI plan deletes its sealed credential.
- Uploads you never send are deleted after 24 hours.
- The cloud computer keeps its disk for 14 days after it stops. Before then we save a snapshot, so your site sign-ins survive a long break. The snapshot stays until you delete your account.
- Traces stay until you delete the bot or your account.
- Deleting your account: in the app, open Settings, then Account, then Delete account, and confirm. You're signed out on every device at once, and a background job deletes your account and everything above: bots and conversations, approvals and routines, files and model session files, memory and skills, AI plan credentials, app tokens and account records, devices and push tokens, the cloud computer and its snapshot, and your traces. It revokes Extent's access at Google, GitHub, 1Password and MCP servers that offer revocation. A GitHub App installation stays on GitHub until you uninstall it there. The job retries until it's done, usually within minutes, and we email you when it is. Copies in our database backups and in Wiele's file history are removed within 30 days. If you can't use the app, email hello@extent.sh from your account's address and we'll do it for you within 30 days.
Your rights
You can ask us for a copy of your data, to correct it, to delete it, or to stop a use you object to. Email hello@extent.sh and we'll answer within 30 days. If you're in the EU or UK, you can also complain to your data protection authority. Where the GDPR applies, we process your data to provide the service you asked for (contract), to keep it secure (legitimate interest), and with your consent for connected apps and device permissions, which you can withdraw at any time by disconnecting them.
Children
Extent isn't for anyone under 16, and we don't knowingly collect data from them. If you think a child has an account, tell us and we'll delete it.
Changes
If we change this policy, we'll update the date at the top. For changes that matter, we'll tell you in the app or by email before they take effect.
- 2026-10-28: first version.
- 2026-10-28, later: account deletion in the app; deleting a bot also deletes its session files, memory notes and traces; Gmail and Calendar data is masked in traces.