Who we are
Nirvaana is run by Nirvaana AI, Inc., a Delaware corporation, at 335 Russell Blvd, Davis, CA 95616. This policy took effect on 28 September 2026; this version is dated 17 October 2026. Write to hello@nirvaana.ai; for a request about your data, put “Privacy request” in the subject. For a security concern, write to security@nirvaana.ai. A person answers.
This page says what we collect, why, who else touches it, how long we keep it, and what you can do about it. We wrote it from the code, not from a template. If something here is wrong, tell us and we will fix the code or the policy, whichever is lying.
Who Nirvaana is for
- 18 or older. Nirvaana is for people 18 and over. The first time you sign in we ask the month and year you were born, once, and we record that you accepted the Terms, with the version, the day and a one-way keyed hash of your IP address. We keep the month and year, never a full birthday, and the country your network reports when you first sign in; those three go when your account is deleted. The record of each step (what you accepted, or that you confirmed your age, and when, with the hashed IP) has no end date: if you delete your account it stays, with your account’s id taken off, as proof of what was agreed.
- Under 18. We refuse the account and delete what the sign-in created, at once. A cookie remembers the answer for a year so the question is not asked again; it holds no identifier. If you believe a child under 13 has an account, write to us and we will delete it.
- Accounts opened at 13 to 17 before 20 October 2026. They keep working. The member opened it themselves: the month and year they were born, and the Terms. We don’t ask for a parent’s or guardian’s yes, and we don’t ask for their email address. What is different for you is in the next point. Until 10 October 2026 we did ask a parent; where a parent was asked then, we keep that request as a record only, and it opens or closes nothing: the parent’s address, the request’s state and dates, the kind of browser it was made from (Chrome, Safari, Firefox, Edge or other), and a one-way hash of the IP address of its latest step. That record goes when the account is deleted; each step is also in the consent records above.
- What is different for those members, 13 to 17. Analytics never run. Presence is hidden and the daily summary is off unless the person turns them on. After three hours in one sitting the chat suggests a break. The cloud computer and money connections are not available, and they cannot give a world an email address. Connections to other apps are limited to ones that read, or that change only the person's own things on their own approval: their calendar, their email (Gmail, and Outlook mail and Teams chats through Microsoft 365), the files they pick, notes and design apps, and a world's GitHub repo. On their own approval, Nirvaana can also write an email draft in their Gmail that they send themselves, or a comment on GitHub. Nothing that posts to Slack or other services, invites people from outside their worlds, checks their inbox in the background, or reaches money is available, and other AI apps can't read their connections. Nirvaana will not produce sexual content for a person it knows to be under 18. A member 13 to 17 can start the $9.99 subscription themselves, with a card, as an adult can. A member under 18, or their parent, can ask us to cancel it and refund it (see the Terms, under Refunds).
- United States only, for now. Sign-ups from the European Union, the European Economic Area and the United Kingdom go to a waitlist; we keep the address you give us and the country your network reports, for that and nothing else, until you ask us to remove them. A session that already exists is not cut off. Data is stored and processed in the United States.
What we collect
- Your account. Your email address, the sign-in provider you used (Google, GitHub, Microsoft, or Apple where offered, or an emailed code), and what that provider hands back: your name, an avatar address and its own id for you. A display name if you set one. We never receive or store a password.
- The second step. A six-digit code from an authenticator app or emailed to you. We keep the app’s shared key so codes can be checked, one-way fingerprints of emailed codes for ten minutes, one-way fingerprints of your ten recovery codes, and a short record of when the second step was set up, replaced or used.
- Your world. Your conversations, with Nirvaana’s replies and the results of the tools it used; the facts it keeps from them; promises, which name the other person; decisions, questions, goals and the schedules you ask for, in your words; the files and images you upload or ask it to make; the worlds you belong to and what you put into them; the voice messages you record in a world’s Team chat, and the words of one if you choose to give them to Nirvaana. Your unsent drafts stay in your browser.
- Voice messages. A voice message you record in Team chat is stored as audio, and the world’s members can play it, in the app or in an app they use through our API, from a link that works for five minutes; an AI tool you connect cannot read Team chat. Where writing it out is switched on, your own browser turns the recording into text with a speech-recognition model (Whisper, downloaded once from Hugging Face). The audio never leaves your device for that. Only the words you approve are sent on: they are stored with the message, shown to the room, and sent to Anthropic for Nirvaana to read.
- What your own AI tools send. If you connect Claude, Claude Code, ChatGPT, Codex, Gemini, Muse Code, Cursor or another MCP client through the
nirvaanapackage or the remote connector, what it sends to your agent’s door is kept word for word with the door’s decision. Your tool’s time zone and a name for the machine (its hostname) are recorded so you can recognise it and sign it out. - Other people. Your world naturally holds the names and details of the people you talk about. We treat that as your content. You are responsible for having the right to keep it, as you would be for a notebook. See “People who are not our users” below for what that means for them.
- The cloud computer. If you use it, a Linux desktop runs for you in a sandbox at E2B, with its own browser profile: the sites you sign in to, their cookies and history, and any passwords Chrome saves there, stay inside that machine. What you type through “Log in here” goes straight to the machine and is never seen by the model or logged by us. Screenshots are taken so the model can see the screen. The machine is paused when idle; one nobody has used for 30 days is destroyed, and you can press “Forget my cloud computer” in Settings at any time.
- Services you connect. If you connect Google Calendar, Canva, or, where they are switched on, Gmail, Google Workspace, Microsoft 365, Power BI, Figma, Meta, Notion, Notion pages, Linear or Canvas, we hold a sealed token for it and a record of the connection, what the service returns inside a conversation is kept in that conversation, and a change you approve is kept as a card. Where they are switched on, a Slack workspace kept in sync, an inbox Nirvaana keeps checking, a world’s email address and a world’s own app add what their sections below say. See “Services you connect” below.
- Money. Where it is switched on and you connect a bank or brokerage through Plaid, your crypto through Coinbase, or your business’s Stripe, QuickBooks, Xero, Mercury or Shopify, what those services report: accounts (with the last digits only), balances, transactions, bills and holdings; your crypto wallets and what they hold; or your business’s revenue, customers, invoices, bank accounts, card spending and store sales. See “Money” below.
- What your AI tools are doing. If you add Nirvaana’s hooks to Claude Code, a short line for each step your agent takes (“Editing a file”), made on your own computer, with the machine’s name, the repo and branch, and a title for the session; through the remote connector, only the names of the Nirvaana tools it uses. See “Live” below.
- Direct messages. If you use them, what you and one other person write to each other, when, and how far each of you has read; a short note if you ask someone to talk first; your setting for who may message you; and the messages Nirvaana or an AI tool you connected drafted for you to send. See “Direct messages” below.
- A Slack import. If you upload a Slack export, the file for a few hours and what we read from it for up to seven days, and, where it is switched on and you ask for it, the invitations to your coworkers. See “Importing from Slack” below.
- A GitHub repo in a world. If you connect one, which repos feed which world, your GitHub account’s id, and a short record of each event. See “A GitHub repo in a world” below.
- Tasks sent to your computer. Where it is switched on, you can ask Nirvaana to hand a task to your own computer (the Nirvaana Mac app, or Claude Code through the
nirvaanapackage). We keep the task’s text, its status and times, the name of the computer that took it, the folder name you picked (a name, never a path), the names of the folders a computer offers, and the note it writes back when done. Only you can read them; the task goes to your computer, whose own AI tool reads it under that provider’s terms. They are kept until you delete your account. - Health data. Only what you turn on, type by type, in the iPhone app, and only for your own reminders. It has its own notice: Health data.
- Payments. If billing is on and you subscribe, Stripe collects your card and billing details; we never see the full card number. We keep your Stripe customer id, subscription id, plan, price, status and renewal date, and the record of your consent to the renewal terms. If we give you a plan rather than you buying one (a founder, a tester, a friend of the company), we keep which plan, a short reason and until when, or your email address in our server’s settings as one that has Plus. Where the free trial is on, there is one per person: we keep a keyed hash of each email address and of each card’s Stripe fingerprint (Stripe’s own id for a card, never its number) that has had a trial, with the Stripe subscription the trial began and when, and no user id. They are used only to stop a repeat free trial, and they stay after your account is deleted.
- Notifications. If you allow them, a push token for your iPhone or an endpoint for your browser, and a record of what was sent and whether it arrived.
- Technical. Your IP address and browser in Vercel’s server logs, as with any website; in our own counters that slow repeated failures, only a one-way hash of it. The city and country your network reports when you connect a terminal, shown to you so you can spot a stranger. A log of actions taken on your behalf and what each request cost, kept as hashes and amounts, never as your words. Error reports carry the kind of error and where it happened, never the text of a conversation.
- Analytics. Product events (“a chat turn happened”, “a proposal was approved”, “signed in with Google”) tied to your user id, with page paths and short fixed labels. The analytics script in your browser also sends what it sends by default with each page view: your browser, operating system, device type, screen and window size, language, time zone and the site you came from, your full browser identification string and device model, how long you stayed on a page and how far you scrolled, and the address and campaign tags of the page your visit began on; PostHog sees your IP address. No message text, no facts, no email addresses: the code refuses anything else in the events our server sends, and strips the query from the page and referring addresses. You can turn analytics off in Settings; then your browser loads none of it and the server sends no event about you. It never runs for anyone under 18.
We do not ask for, and you should not send, payment card numbers, government identifiers or anyone else’s sensitive records.
You are talking to an AI
Nirvaana is an AI, not a person. It can be wrong, so check anything that matters. That sentence is shown the first time you use it, on the sign-in page, under the place you type, and in Settings. Nirvaana is not a doctor, a therapist, a lawyer or a crisis service. When someone may be hurt, it gives the real numbers first and asks you to call; what it does, and what it cannot do, is published at /help/safety. Nirvaana cannot call anyone, alert anyone or report to anyone, and nobody at Nirvaana is watching. In the US and Canada, call or text 988, the Suicide and Crisis Lifeline, and call 911 if anyone is in danger right now.
What reaches the model, and training
Nirvaana’s replies come from language models we rent from Anthropic. Most of what reaches a model goes because you did something: sent a message, pressed a button (Brief me, run a retro, file meeting notes, run an automation, import from Slack, make a team from a list you pasted, or, where it is switched on, draft your world from the apps you just connected), said yes to a scheduled ask, or gave the cloud computer a task. The first time you open Nirvaana each day, on the web or in the Mac and Windows app, it prepares your standup, a daily tidy of memories and a check of the day before, each where it is on for you, from your own words of the last day you worked (within the past week). Where an automation has a trigger (a promise done, a fact approved, a pull request merged, a mention), the trigger only puts a ready card in front of you; nothing reaches a model until you press Run. Some goes without anyone asking in that moment, and we would rather list it than hide it:
- Each week, a world’s description. Every Monday, for worlds whose knowledge changed (up to 40 a week, those waiting longest first), the server sends the world’s name, up to 12 of its rules, the titles of its five newest lessons and its 40 newest facts, whoever filed them, so the model can write the short description its members see on the world’s card. This is always on. It is charged to the world’s owner.
- When anyone files a fact into a world. Where we have switched these on, the new fact goes with the world’s similar facts to be checked for a duplicate or a conflict, and the world’s recent facts, open entries and members’ names go to be read for deadlines, owners and blockers. What comes back is shown to the world’s members.
- Each night, in some worlds. Where we have switched them on, the same deadline reading and duplicate and conflict check run over worlds whose facts or entries changed recently, up to a nightly limit.
- A Team chat message, in a world whose owner turned on tracking. Where we have switched it on, each message posted there goes, with the names of the people it mentions, to be read for promises and asks, which land on its writer as items the world’s members can see.
- An event from a GitHub repo connected to a world, when it happens; see “A GitHub repo in a world”.
- New messages in a Slack workspace kept in sync, where that is switched on, in batches within the hour; see “Importing from Slack”.
- An email a member sends to a world’s address, where Email a world is switched on, when it arrives; see “Email a world”.
- New mail in an inbox you asked Nirvaana to keep checking, where that is switched on, as it arrives, with Nirvaana’s public help pages; see “Services you connect”.
- Search by meaning. Every quarter of an hour, and when they are written, the text of new memories and world facts is sent to Voyage AI to be indexed. That includes memories Nirvaana kept from a conversation in which it read a service you connected.
- Search in your Nirvaana folder, from the Mac app. The Mac app keeps its index of your
~/Nirvaanafolder on your Mac. To find things in it by meaning, it sends pieces of the notes and files there (a few hundred words each, as they are added or change; never a note you marked private, which it finds by its words alone) and the words of each question to Voyage AI, which turns them into numbers and puts a turn’s pieces in order; and, to draw the links between the people and projects a note names, it sends the note to Anthropic. We pass these on and keep none of the text. The pieces that then ride with a turn are only those the place allows: in a shared world, that world’s own notes and the notes you shared into it, never a note you marked private. If you are 13 to 17, none of your folder is sent; the app searches it by words alone, on your Mac.
When you are in a world, a turn you send also carries what other members filed there, and theirs carries what you filed. What is sent, in all: the conversation; the parts of your memory and of the worlds in the room that the turn needs; images and PDFs you attach, as their bytes and as links that last ten minutes; screenshots while the cloud computer works; what your AI tools sent to the door; the words of a voice message you gave it; what a connected app returned in that turn (Google Calendar, Canva and, where they are switched on, Gmail, Google Workspace, Microsoft 365, Power BI, Figma, Meta, Notion pages, Linear and a world’s own app; never a Figma frame’s picture); the Slack channels you chose to import and, where sync is switched on, new messages in them; an email forwarded to a world, and mail in an inbox Nirvaana keeps checking; what Canvas added to your worlds, as part of them; a list of your team you pasted; meeting notes you filed; the words of an event from a GitHub repo connected to a world; where money is switched on, the figures a step of your own automation read, when you run it; and, when Nirvaana searches the web for you, the search queries it writes, which paraphrase your words, and the pages it reads; and, where Find a tool is switched on, what you search for there, to explain the results. Direct messages between people are never sent to a model; the only words of one a model sees are those you ask Nirvaana, in a chat, to send for you, which are part of that conversation like anything else you say there, and those you give an AI tool you connected to send, which that tool’s own model has already seen.
- We do not train on your world. Nirvaana does not train or fine-tune any model on your conversations, facts, files, imports or submissions. What each company that receives your words may do is below, and one of them, Voyage AI, is not yet covered by that promise.
- Anthropic may not train on it either: its commercial terms forbid training on customer content sent through the API. Anthropic’s standard API retention applies; we have no zero-data-retention agreement, so what it receives may be held for a limited time under its terms, and longer if flagged for abuse.
- Voyage AI turns the text of your memories, world facts, search phrases and pieces of your Nirvaana folder into numbers so your agent can find them by meaning. What it receives is the words alone, with nothing attached to say whose they are (no account id, and no name or email address beyond any written in the words themselves): each memory and world fact, which includes what was kept from notes and files you filed or shared in a chat; the words of a search, which are what your agent or an AI tool you connected searches your memory or a world with, a how you send through the door when it is checked against the world’s, and, where Find a tool is switched on, what you search for there; and, from the Mac app, the pieces of your Nirvaana folder and the words of each question described above. It sends back a list of numbers for each (a search vector), and, for the Mac app, the order of a turn’s pieces. We store a memory’s or a fact’s beside its words, so a search for “the landlord’s deadline” finds a note that says “rent is due by the 5th”; a search’s is used for that search and dropped. It does not receive the files themselves; from your Nirvaana folder, only the pieces described above. Its terms of service let it use the text customers send to train and improve its models unless the customer opts out (an opt-out needs a payment method on file), and an opt-out covers only text sent after it; after it, Voyage says it deletes the text once it has processed it. We have not yet confirmed that opt-out for our account, so for now assume that text sent to Voyage may be used to improve its models. When the opt-out is confirmed, this paragraph will say so and the date it took effect. Ask us at the address below for our current setting.
- Your own Anthropic key, where it is switched on. You can give Nirvaana an Anthropic API key of your own in Settings. The model calls for your own chat, the Team chat answers you ask for, your automations and drafting, the reading of new mail in an inbox you asked Nirvaana to keep checking, your study lessons and a course’s facts then run on your key: the same words go to the same company, as your own use of Anthropic, under your agreement with Anthropic and your account’s own settings for how long it keeps data. Without a key of yours they run on ours. An email a member sends to a world’s address and Team chat tracking stay on ours even with your key, because anyone in the world can set them off; so do the other calls that run without a message, and the indexing at Voyage AI. When your key fails or reaches the cap you set, that work stops, and says why where it can (in Team chat, Nirvaana just doesn’t answer), unless you chose to fall back to ours. We keep the key sealed and send it only to Anthropic, with its last four characters, the monthly cap you set, your fallback choice, and the last problem Anthropic reported with it. Removing the key deletes it; so does deleting your account.
- OpenAI receives only made-up test conversations from our own staging test account, through a daily job that checks Nirvaana’s behaviour. Nirvaana never sends it a person’s data, and Google’s Gemini is not used in the product. If you connect ChatGPT, Codex or Gemini to Nirvaana as your own AI tool, that is your choice and under their terms; see “Your own AI tools”.
Who else processes it
Running the service means handing parts of it to a few companies, each on our instructions and under terms that bind it to use the data only for us. These are all of them.
| Who | What it receives, and why |
|---|---|
| Supabase (US) | Everything stored: your account, your world, your files, your sessions. The database, the sign-in system and file storage. |
| Vercel (US) | Every request, with your IP address, in its server logs; the code runs in its San Francisco region. Hosting. |
| Anthropic (US) | What the section above lists: conversation text, memory and world context, attached images and PDFs, cloud-computer screenshots, door submissions, the words of voice messages you gave it, what a connected app (Google Calendar, Canva, and where switched on Gmail, Google Drive, Microsoft 365, Power BI, Figma, Meta, Notion pages, Linear or a world’s own app) returned inside a turn, never a Figma frame’s picture, the calendar titles and mail senders and subjects you ask it to draft your world from (where switched on), Slack channels you import and, where sync is switched on, their new messages, an email forwarded to a world, mail in an inbox it keeps checking (with our public help pages), what Canvas added to your worlds as part of them, team lists you paste, meeting notes you file, GitHub events from a connected repo, money figures an automation you ran read (where switched on), the web-search queries it writes, what you search for in Find a tool (where switched on), and, from the Mac app, notes in your Nirvaana folder to draw their links (never if you are 13 to 17); and, without a message, a world’s facts, rules and lesson titles for its weekly description, and where switched on, facts, open entries and members’ names for the duplicate, conflict and deadline checks and Team chat messages in a world whose owner turned on tracking. Never direct messages, beyond the words you ask Nirvaana in a chat to send as one. The models that answer you. If you use your own Anthropic key, the calls it covers are made on your key, under your own terms with Anthropic. |
| Voyage AI (US) | The words of memories and world facts (including what was kept from notes and files, never the files themselves) and the words of a search; pieces of the notes and files in your Nirvaana folder, from the Mac app (never if you are 13 to 17); and, where Find a tool is switched on, what you search for there, with nothing attached to say whose they are. Search by meaning, and the order of a turn’s pieces: it returns a search vector for each; we store a memory’s or a fact’s, and a search’s is dropped. Its terms allow training unless we opt out; see “What reaches the model, and training”. |
| E2B (US) | The cloud computer: a paused Linux desktop with your browser profile, cookies, history and any passwords saved in Chrome; what you type through “Log in here” while in transit; your user id in the machine’s metadata. |
| Resend (US) | The address and the email being sent: sign-in and second-step codes, account and security notices, renewal and billing notices if you pay, a warning before money data is deleted, and, where the Slack import’s invitations are switched on, the invitations you send to coworkers (see “Importing from Slack”). No newsletters and no advertising. Where Email a world is switched on, Resend also receives every email sent to a world’s address and keeps it on its own schedule; we read the words, and an attachment only after your Approve (see “Email a world”). |
| PostHog (US) | Your user id, event names, short fixed labels and page paths, and from your browser its default properties (browser and its identification string, operating system, device type and model, screen size, language, time zone, referring site, time and scroll on a page, the address the visit began on) and your IP address, while analytics is on for you. Session replay is off in the code. Product analytics. |
| Stripe (US) | Your email, user id and subscription state, including a free trial and when it ends; your card details, which stay at Stripe. Billing, only when billing is on: Stripe processes the payments. Separately, where it is switched on, a Stripe account you connect so Nirvaana can read your business’s figures; see “Money”. |
| Plaid (US) | Only where money is switched on and you connect a bank or brokerage: you sign in to your bank through Plaid, and Plaid sends us your accounts, balances, transactions, bills and holdings, read-only. See “Money”. |
| Intuit (QuickBooks) and Xero | Only where they are switched on and you connect one: your business’s accounting figures and invoices, read-only. See “Money”. |
| Mercury (US) | Only where it is switched on and you connect it: your business’s accounts, balances, card and transactions, read-only. See “Money”. |
| Coinbase (US) | Only where it is switched on and you connect it: your wallets, what they hold and your recent movements, read-only. See “Money”. |
| Shopify | Only where it is switched on and you connect your store: your orders’ totals, refunds and the titles of what sold, read-only, never a customer’s name, address or email. Shopify also tells us when the app is removed and passes on its customers’ privacy requests. See “Money”. |
| Apple (APNs) | Your iPhone’s device token and each notification’s title and body. A reminder about a promise carries the promise’s own words; a reminder tied to health data carries counts only; a direct message carries who wrote, never what. |
| Browser push services (Google, Mozilla, Apple, Microsoft) | An endpoint for your browser and an encrypted payload they cannot read. |
| Google (Calendar, and Gmail and Drive where switched on), Canva and Notion | Only if you connect them: see “Services you connect”. Where an inbox Nirvaana keeps checking is switched on, Google Cloud Pub/Sub also carries Gmail’s notice that the mailbox changed (its address and a number, nothing of the mail). |
| Microsoft (Microsoft 365 and Power BI), Figma, Meta, Notion pages, Linear and Canvas (your school’s, often hosted by Instructure) | Only where they are switched on and you connect them: see “Services you connect”. |
| Slack, as a connection | Only where keeping a workspace in sync is switched on and someone installs the app: Slack sends us new channel messages, people and user groups, and, where posting is switched on, receives a post you approved. See “Importing from Slack”. |
| The maker of a world’s own app | Only where a world’s owner connects one: what Nirvaana writes for a member’s request, and on an Approve, what the card shows. Under the maker’s own terms, chosen by the world’s owner. |
| GitHub, as a connection | Only if a world’s owner connects a repo: GitHub sends us events from it and answers which repos the owner can read. See “A GitHub repo in a world”. |
| GitHub, for downloads | Your IP address, when you download the Mac and Windows app from its releases and when that app checks for an update. |
| Hugging Face (CDN) | Your IP address, once, when your browser fetches the speech-recognition model that transcribes voice messages on your own device. No audio leaves your device for this. |
| jsDelivr (CDN) | Your IP address, once, when your browser fetches the speech-recognition runtime (onnxruntime) for the same on-device transcription. No audio leaves your device for this. |
| Google Fonts | Your IP address, when the app you read our email in loads the typeface the email names. Nothing else. |
| Sign-in providers (Google, GitHub, Microsoft, Apple where offered) | Your sign-in with them; they tell us your email, name, avatar and their id for you. Under their own terms. |
| Your own AI tools | Claude, Claude Code, ChatGPT, Codex, Gemini, Muse Code, Cursor or any MCP client you connect receive what they ask for under your account, and, where you let them, what your connected apps return, under that provider’s terms. See below. |
Services you connect
Connections are for members 18 and older, except Canvas, which is also open to members 13 to 17, and only you can use yours. We hold a sealed token for each and use it only for what the service is connected for, with a record of the connection (the app, the account, what it granted and when), which stays until you delete your account. A change Nirvaana makes in one of these apps happens only after you press Approve on a card that shows it; a card waits a day and then lapses. Where letting your AI read your apps is switched on, an AI tool you connect can read an app through Nirvaana only if you turn on “Let your AI read this” for it (for Gmail, Microsoft 365 and money, and confirm it a second time); what it reads goes to that tool’s provider under its terms, and anything it proposes still waits for your Approve. See “Your own AI tools”.
- Google Calendar. Nirvaana asks Google for your identity (openid and email) and your calendar events (calendar.events). In a conversation you are having with it, it reads the events of your main calendar when it needs them (title, time, place, link and status) and, after your yes on a card, adds one event there. Where switched on, and again only after you approve the card for that one change, it also invites the guests you name to an event (Google emails them the invitation), or moves or cancels an event you organize (Google tells its guests). Where calendar sync is switched on and you turn it on, it also asks to manage calendars it creates (calendar.app.created); see “Calendar sync” below.
- Gmail, where it is switched on. Nirvaana asks Google for your identity (openid and email), to read your mail (gmail.readonly) and to write drafts (gmail.compose). In your own conversations, never in a shared world, it searches your mail when it needs to (a list shows who, to whom, the subject and the date) and opens a message (its text, up to 6,000 characters, and its attachments’ names); an automation of yours with a step that reads your email does the same when you run it. After your yes on a card it saves a draft in your Gmail. It never sends an email: you send a draft yourself, from Gmail. An AI tool you connect cannot read your mail unless you let it, as above. Where Keep checking this inbox is switched on and you turn it on for a world you own, new mail is also read as the next item says.
- Keep checking this inbox, where it is switched on. If your Gmail is connected, you can ask Nirvaana to keep checking that mailbox for one shared world you own, such as a company’s. Gmail then tells us, through Google Cloud Pub/Sub, when the mailbox changes; that notice carries the mailbox’s address and a number, nothing of the mail. We also look every five minutes. Mail that Gmail files as spam, promotions or other bulk mail, mailing lists, automatic notices and no-reply senders is skipped from its labels and headers alone, and never opened. Other new mail, up to 30 emails an hour, is opened: its sender, date, subject, attachments’ names and up to 4,000 characters of its text go to Anthropic with Nirvaana’s public help pages and prices, and nothing else. The model labels it, says if it is urgent, writes a line or two of summary, and drafts a reply from the public pages alone. Mail from one of the world’s members, sent from the address they sign in to Nirvaana with and confirmed by their domain’s own published DMARC record, becomes a card the world’s members see: the sender, the subject, the summary, the label and a link into Gmail, never the email’s words. All other mail, above all from anyone without a Nirvaana account, gets the same card for you alone. The drafted reply waits three days for your approval; on your Approve it becomes a draft in that Gmail, which you send yourself. Nothing is ever sent. While checking is switched on, we keep each card, and a short record of skipped mail, for 30 days. An AI tool you connect cannot read any of it. Turn it off on Your connections at any time; disconnecting Gmail stops it too. Deleting the world, or your account, deletes the cards at once.
- Google Workspace (Drive, Docs, Sheets and Slides), where it is switched on. Nirvaana asks Google for your identity (openid and email) and for the files you pick for it (drive.file): only the Docs, Sheets and Slides you choose in Google’s own file picker, and any file Nirvaana makes for you, never the rest of your Drive. In your own conversations, never in a shared world, it lists those files’ names and reads one when you ask (a doc’s text up to 12,000 characters, a sheet’s first rows, a deck’s text slide by slide). Nothing it reads is stored apart from the conversation. After your yes on a card it makes a new Doc or Sheet from a draft; it never changes, shares or deletes a file you have. Where the wider Drive read is switched on, you may also tick a box at Google’s consent to let it read any file in your Drive (drive.readonly) when you name it; leave it unticked and only the files you pick are read. An AI tool you connect cannot read your files unless you let it, as above.
- Canva. Nirvaana asks Canva to read your designs’ details (design:meta:read), to write design content (design:content:write), to upload assets (asset:write) and for your profile (profile:read), which gives the name it shows for the account. In a conversation, including one in a world, it reads the titles of up to 25 of your own designs, newest first, with the link to open each in Canva. Only after you approve the card does it start a design: Canva fetches a page Nirvaana made with you as a picture, through a link that works for one minute, into your Canva uploads, and starts a new design from it for you to finish there. It never publishes, shares or changes an existing design. An automation does not use Canva. Where you let your AI read Canva, it can read your designs’ titles and propose a design, which waits for your Approve.
- Figma, where it is switched on. Nirvaana asks Figma for your account’s name (current_user:read), a file’s content (file_content:read), and its comments, to read them (file_comments:read) and to post one (file_comments:write). It reads only a file you link, in your own conversations, never while a world is in the conversation: the file’s name, its pages and frames by name (up to 40 pages and 400 frames), the words on a frame’s visible layers (up to 8,000 characters), and the 50 newest open comments (up to 1,000 characters each, with each author’s Figma handle). If you ask, it brings one frame into that conversation as a picture, kept there as a file of yours; the model does not see the picture. Only after you approve a card that shows every word does it post one comment, of up to 220 characters, on that file, where everyone who can open the file sees it. It never edits, deletes or resolves anything in Figma. An automation does not read Figma. Where you let your AI read Figma, it can read a file you link and its comments, and propose a comment, which waits for your Approve.
- Canvas, where it is switched on. A student connects their school’s Canvas by pasting the calendar feed address Canvas gives them, or an access token they make in Canvas with their school’s Canvas address. Canvas is asked once to confirm it before anything is kept; we keep the address, and the token or feed address sealed, and send the token only to that address. Nirvaana only reads Canvas and changes nothing there: your classes this term with their course codes, teachers and terms, the assignments due from now on with their dates, and the name Canvas shows for you. It reads when you open its page, at most every ten minutes, never in the background or in a chat. Nothing is made until you press Approve on the “Here’s your school” card: then your school becomes a world, each class you left ticked becomes a moon in it, each class’s course code, teachers and term become facts there, and each assignment becomes one of your promises, with its due date. Later visits archive a class that ended, add new assignments, and ask before adding a new class. Nobody else is added to these worlds, and for a member under 18 each class moon is private. What Canvas adds is part of your world, and reaches Anthropic and Voyage AI as the rest of it does. Grades are never read unless you turn them on, and then only for an AI tool you connect, where you let your AI read Canvas (18 and older only). Disconnecting deletes the token or feed address here; your school, classes and assignments stay yours. Neither disconnecting nor deleting your account cancels a token at Canvas: delete it in Canvas (Account, then Settings). Nirvaana is not a service your school chose or runs, and your school does not send us your records: you connect your own Canvas account, and we hold what it shows only for you, under this policy. So the federal student records law (FERPA) binds your school, not what you bring into Nirvaana. Your school’s own rules about connecting other apps or making access tokens still apply to you; if your school does not allow it, do not connect it.
- Microsoft 365 (Outlook, Teams and OneDrive), where it is switched on. Nirvaana asks Microsoft, for a work, school or personal account, to know who you are (User.Read), to keep the connection past the hour (offline_access), and to read your mail (Mail.Read), your calendar (Calendars.Read), your own OneDrive files (Files.Read) and your Teams chats (Chat.Read). Where each is switched on, it also asks to read your teams’ channels and their messages (Team.ReadBasic.All, Channel.ReadBasic.All and ChannelMessage.Read.All, which your organisation’s admin must allow), your SharePoint sites and their files (Sites.Read.All, which your admin may need to allow), your OneNote pages (Notes.Read), your Planner and To Do tasks (Tasks.Read) and your Outlook contacts (Contacts.Read). In your own conversations, never while a world is in the conversation, it reads these when it needs to: a list of up to 20 messages from up to a year back (sender, subject, date, whether it has attachments and a 200-character preview) and a message you open (who it went to, and its text up to 6,000 characters, never its attachments); your calendar’s events, up to 14 days and 50 events at a time; your recent Teams chats, and up to 30 messages of one chat or channel, 1,000 characters each; your own OneDrive files’ names (never files others shared with you), and a Word, PowerPoint or text file’s words up to 8,000 characters, or an Excel sheet’s values (at most 100 rows and 1,000 cells); and, where switched on, SharePoint files the same way, a OneNote page’s text up to 8,000 characters, your tasks with their due dates, and up to 10 contacts you look up (name, addresses, phone numbers, company and job title). It never sends, drafts, answers, posts, marks as read or changes any of this. Where Outlook calendar changes are switched on, it also asks to change your calendar (Calendars.ReadWrite), and only after you approve the card for that one change does it add an event to your Outlook calendar (Outlook emails an invitation to the guests you name, at most 20), or move or cancel an event you organize (Outlook tells its guests); this too only in your own conversations. Where the new first-time setup is switched on and you ask it to draft your world from the apps you just connected, it reads the titles, dates and guests of your calendar’s events from the last 30 days and the next 14, and the senders, subjects and dates of your 20 newest emails from the last 30 days; nothing is made from them until you approve it. An automation does not read it. Where you let your AI read Microsoft 365 and confirm it, an AI tool you connect can read your Outlook mail and calendar, your Teams chats and your OneDrive, with sign-in and security emails, codes and sign-in links taken out first; not SharePoint, OneNote, tasks or contacts, and it cannot propose a calendar change.
- Power BI, where it is switched on. For a work or school account only, Nirvaana asks Microsoft to keep the connection past the hour (offline_access) and to read your Power BI workspaces (Workspace.Read.All), reports (Report.Read.All), dashboards (Dashboard.Read.All) and datasets (Dataset.Read.All); it takes the account’s name from Microsoft’s sign-in. In your own conversations, never while a world is in the conversation, it reads when it needs to: up to 50 workspaces, and up to 50 reports, dashboards and datasets in one, by name, with links; a report’s pages; a dataset’s tables, columns and measures by name; and, through a query that only reads, up to 200 rows of 40 columns, each value up to 500 characters. It never changes a report, a dataset or a dashboard, and never starts a refresh. An automation does not read it, and an AI tool you connect cannot read it through Nirvaana. Power BI and Microsoft 365 are one app at Microsoft, so removing Nirvaana there ends both.
- The Nirvaana Slack app, where posting is switched on. If you keep a Slack workspace in sync (see “Importing from Slack”) and posting is switched on, the app also asks Slack to send messages (chat:write). You can ask Nirvaana for a post in a chat; an AI tool you connect cannot. Before the card, Nirvaana asks Slack only whether the app is in that channel. Only after you approve the card, which shows every word, does it post one message, as the Nirvaana app and never as you, in a channel your import linked to a world you still own and the app is in (for a private channel, only while you are in it too). Everyone in that channel reads it. A posted card, with its words, is kept as the record of what went out until you stop the sync or delete your account.
- The Nirvaana GitHub app, where issues are switched on. If a repo feeds a world you own or build in and this is switched on, only after you approve the card, which shows every word, does the app open one issue or post one comment there, as the Nirvaana GitHub app and never as you, from your own conversation (never a world’s conversation, an automation or an AI tool you connect). Its words go to GitHub once before the card, to be shown as GitHub will show them; that writes nothing. Everyone who can see the repo reads it. Its installation’s owner must first have given it permission to write issues on GitHub.
- Notion, where calendar sync is switched on. Only the pages you pick on Notion’s own screen, to read, update and insert content there; no information about other Notion users. Nothing this calendar connection reads reaches a model; Notion pages, below, is a connection of its own.
- Notion pages, where it is switched on. Nirvaana signs in to Notion’s own MCP server as you, and on Notion’s screen you choose which pages and databases it may see. In a conversation, including one with a world in it, it searches those pages and databases, opens a page or a database’s rows, reads a page’s comments, and looks up people in your workspace, at most 20,000 characters a read. Only after you approve a card that shows everything it would send does it make a page, change a page or comment on one, as you, where everyone who can open that page sees it; a change that replaces or removes content says so on the card. It never moves, duplicates or deletes a page, and never uses Notion’s own AI. An automation never reads it. We keep a sealed token. What Nirvaana made or changed in Notion stays there.
- Linear, where it is switched on. Nirvaana signs in to Linear’s own MCP server as you, and asks Linear to read (read) and to write (write). In a conversation, including one with a world in it, it lists and opens issues and their comments, and lists your teams, projects, statuses and the people in your workspace, at most 20,000 characters a read. Only after you approve a card that shows everything it would send does it file an issue, change one, or comment on one (or change a comment), as you, where everyone who can see that issue sees it. It never deletes anything in Linear. An automation never reads it. We keep a sealed token. What Nirvaana filed or changed in Linear stays there.
- Meta (Facebook Pages, Instagram and Meta ads), where it is switched on. Nirvaana asks Meta for the Pages you manage (pages_show_list), their posts and engagement (pages_read_engagement) and their insights (read_insights), the Instagram professional account linked to a Page and its insights (instagram_basic, instagram_manage_insights), and your ad accounts’ results (ads_read); where it is switched on, also business_management, for the Pages and ad accounts a business portfolio holds. It only reads: it never posts, replies, sends a message or changes an ad, and none of these permissions could. In your own conversations, never while a world is in the conversation, it reads: your Pages’ names, categories and follower counts; a Page’s reach, views and engagement over the last 7 and 28 days; up to 10 recent posts, each with its first 300 characters, its reach and how many reactions, comments and shares it had (never the comments themselves or who wrote them); your Instagram account’s name, followers, reach, views and engagement, and up to 10 recent posts with the first 300 characters of their captions and their counts; and your ad accounts’ names, and each campaign’s name, spend, impressions, clicks and reach for a period you choose, up to the last 90 days. An automation never reads Meta. We keep a sealed token, your Facebook name, the id Meta gives you for Nirvaana, and which permissions you granted. The token lasts about 60 days; then you connect again. If you remove Nirvaana in your Facebook settings, Meta tells us and we drop the token. If you ask Meta to have Nirvaana delete your data, we delete the connection and every memory Nirvaana kept from reading Meta, and give Meta a confirmation code you can check at nirvaana.ai/data/meta-deletion; what was read in a conversation stays there until you delete the conversation or your account.
- A world’s own app, where it is switched on. An owner of a world, 18 or older, can connect an app their organisation runs (its MCP server, at a public https address) to that world, with a key made in that app or through the app’s own sign-in. We keep the key or sign-in sealed, the app’s address and name, the tools it offered with its own short descriptions, and which ones the owner marked as only reading; every member sees that list and who connected it, never the key. When a member asks, in a conversation in that world, Nirvaana may use the app’s reading tools with the owner’s key: what Nirvaana writes for the request goes to the app, and what it returns (at most 20,000 characters) is kept in that member’s conversation and may become a memory. Any other tool is an act: an owner or contributor may ask for one, and it runs only after their own Approve on a card that shows everything it would send. No one under 18 uses a world’s app, and neither an automation nor your own AI tool reaches it. The app’s maker handles what it receives under its own terms, not ours. An owner can remove the app on the world’s Connectors tab: its key or sign-in and every card for it are deleted, and Nirvaana asks the app to end the sign-in where it offers a way; a key stays valid in the app until it is deleted there. Deleting the world, or the account of the owner who connected it, deletes it the same way, but the app is not told.
What a connected app returns (Google Calendar, Gmail, Google Workspace, Canva, Figma, Microsoft 365, Power BI, Meta, Notion pages, Linear or a world’s own app) is sent to Anthropic in that turn, kept in that conversation like the rest of it, and may become a memory, which is indexed by Voyage AI like any other. When you disconnect a service in Settings, the token is dropped here and the grant is revoked at the provider (for Meta, by asking Meta to remove Nirvaana’s permissions), with these exceptions. Notion, Figma and Microsoft (Microsoft 365 and Power BI) offer no way for us to revoke it: remove Nirvaana in Notion’s settings, in your Figma settings (Security, Connected apps), or at myapps.microsoft.com (work or school) or account.live.com/consent/Manage (personal). Notion pages and Linear are revoked only where their sign-in server offers a way; otherwise remove Nirvaana in their settings. When Google Calendar, Gmail or Google Workspace share one Google grant, disconnecting one keeps the grant for the others (Settings links you to Google’s own page to remove it). Disconnecting also ends any “Let your AI read this” you gave that app. You are also offered the choice to forget the memories Nirvaana marked as coming from that app. Two limits: a memory is marked with only the first app the conversation turn used, and something you asked Nirvaana to remember is not marked, so delete those yourself in your memory, or ask us; memories from a world’s own app have no such offer. Deleting your account revokes every grant we can end from here, including a shared Google one, and drops every token, including those Figma, Microsoft, Notion and Mercury cannot be told about.
Nirvaana’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. The use of information received from Google Workspace scopes (Gmail, Google Calendar and Google Drive) will adhere to the Google Workspace API User Data and Developer Policy, including the Limited Use requirements. Data from Google is used only to provide the features you asked for; it is never sold, never used for advertising or to decide credit, and never read by a person at Nirvaana unless you ask us to, for security, or where the law requires. Google Workspace APIs are not used to develop, improve, or train non-personalized AI and/or ML models.
Calendar sync, where it is switched on
You can have Nirvaana write your calendar into Google Calendar or into Notion, and turn it off again. In Google it makes a calendar of its own, named Nirvaana, marked private and free, and writes only there, never to your main calendar. In Notion it makes a database under a page you pick. What it writes: your promises (with the other person’s name, for example “You owe Kim: send the deck”), your reminders, including a bill reminder if you connected a bank, the meetings you filed and when your automations are ready; and the deadlines and goals of the worlds you tick. A change you make to a promise there comes back. From Notion you can also bring in a database you pick; we keep each entry’s title, day, time and link. None of this reaches a model. Turning Google sync off deletes its Nirvaana calendar. Disconnecting, or deleting your account, stops the writing, but what was already written stays in your Google or Notion account until you delete it there.
Money, where it is switched on
Money is for members 18 and older, and may need a paid plan. It stays in your own world: it is never shared into a world. An AI tool you connect cannot read it, unless, where it is switched on, you turn on “Let your AI read this” for Money and confirm it; then your AI can read the same summaries a automation’s step can, when you ask it, under its provider’s terms. Nothing here can pay, move, buy, sell or change anything.
- Banks and brokerages, through Plaid. You sign in to your bank on Plaid’s own screen; we never see your bank password. Plaid sends us, read-only, your accounts (their names and last digits, never the full number), balances and limits, transactions (date, amount, name, merchant and category) for up to about 13 months, bills and holdings. Plaid handles your data under the Plaid End User Privacy Policy.
- Your business, through Stripe, QuickBooks or Xero. Read-only: revenue, your biggest customers by name, profit and loss, cash, and invoices (who, number, dates and amounts).
- Your business’s bank and cards, through Mercury. Read-only. You connect it by signing in to Mercury, or by pasting a read-only token you made there. Nirvaana asks Mercury only for its read permission, and refuses a grant that comes back wider. Nothing is ever paid, moved or changed: no payment, transfer, card or recipient. Mercury sends us your accounts and what is in them, what is owed on your Mercury card, and your transactions since the first of last month. We keep your business’s name, each account’s name and balance, what is owed on the card, money in and out this month and last, card spending this month against last and where it went, and your 50 most recent transactions (the date, the amount and the name Mercury shows for it). It is brought up to date when you connect, when you press Refresh, and when an automation of yours, or your AI where you allowed it, reads it and it is more than six hours old. Each update replaces the last.
- Your crypto, through Coinbase. Read-only. You sign in to Coinbase and approve Nirvaana there. Nirvaana asks for two read permissions alone: your wallets and what is in them (wallet:accounts:read), and what moved in them (wallet:transactions:read); a grant that comes back with more is ended at once and refused. Nothing is ever bought, sold, sent or converted. We keep your Coinbase user id, to tell one connection from another, and nothing else of your Coinbase profile. For each wallet with something in it we keep its name, the currency, how much you hold and what it is worth in your own currency, and the total; and up to 30 of your latest completed movements from the last 90 days, from your ten largest wallets (the date, the kind, Coinbase’s description, the amount and its value). Each update replaces the last.
- Your store, through Shopify. Read-only. You type your store’s address and approve Nirvaana in Shopify. Nirvaana asks for one permission, to read orders (read_orders); a grant that comes back with anything else is given back at once and refused. It never changes an order, a product or anything else in your store. From your orders since the start of last month (at most 59 days back), it counts your sales and orders by day, refunds, and your best-selling products by their title on the order. It asks for no customer field: no name, email address, postal address or customer id is read or kept. We keep your store’s name and address, its currency, and those totals, replaced at each update. If the app is removed in Shopify, Shopify tells us, and we delete every connection to that store, whoever made it, and what was read through it. When Shopify asks, for one of your customers, for their data or for it to be erased, we hold none to give or erase, and we answer so.
- The model. Money is not read in a chat. It reaches Anthropic only when you run an automation of your own that has a money step, and then only what that step reads, at most 50 transactions or invoices; a scheduled bee only asks you first. Where you let your AI read it, the same summaries, and at most 50 transactions or invoices, go to that AI when you ask it; a automation with a money step cannot be run from your AI. A bill reminder is one of your own promises, so its words (the bank and when it is due, never an amount) appear where your promises do: your notifications and your calendar sync.
- How long. Bank transactions about 13 months (400 days) after they posted; bills 60 days after they were due. What Coinbase, Mercury, Shopify or a business service reports is replaced at each update, so only the latest is kept. Disconnecting deletes what a service sent. For Plaid, Stripe (when you connected it by signing in), QuickBooks, Xero and Coinbase it also tells the service to end Nirvaana’s access; for Shopify it removes the Nirvaana app from your store. Mercury’s access, and a Stripe key or Mercury token you pasted, cannot be ended from here: remove Nirvaana or delete the token in Mercury, and roll the key in Stripe. When the $9.99 subscription stops, nothing here is deleted for that reason; it stays, read-only, like the rest of your world. If we ever sell money as part of a separate plan and yours ends, we email you twice and, after 30 days, delete all of it, ending each service’s access the same way. If money is no longer switched on for you alone, the same happens to your banks; your other money connections stay until you disconnect them. Deleting your account does the same for every connection.
A GitHub repo in a world
The owner of a world that is not private can connect GitHub repos to it from the world’s Connectors tab. They install the Nirvaana GitHub App on a GitHub account or organisation and choose the repos there. The App asks for read-only access to those repos’ pull requests, contents and metadata, and for their issues: read-only, or, once we switch on opening issues, read and write, which it uses only after your Approve (see “Services you connect”). It asks for no organisation or account permissions. Nirvaana does not read the repo’s files.
- Your GitHub sign-in. When you install, GitHub hands us a one-time grant for your GitHub account. We use it once, to learn your GitHub account’s id and which of that installation’s repos your account can read, and then ask GitHub to revoke it. We keep no GitHub token of yours. Only a repo you can read can be linked. We check again regularly, most links each night; when GitHub says you can no longer read a repo, its link goes.
- What GitHub sends. A message (a webhook) each time a pull request is merged, an issue is opened or closed, or a release is published in a connected repo, with its title, its description, who did it and the repo’s name. GitHub also tells us when the App is uninstalled or loses a repo, and we remove the links it fed.
- What reaches the model. The event’s title, who did it, the repo, and up to the first 600 characters of its description (none for a closed issue) go to Anthropic for Nirvaana’s doorkeeper to read, as data. What it keeps becomes at most three proposals to the world, which wait for the approval of the owner who connected the repo. Nothing enters the world without that approval.
- What we keep. Which repos feed which world, the GitHub account or organisation the App is installed on, the installation’s id, and your GitHub account’s number; the world’s members can see all of that, and who connected each repo. For each event that reaches a world, a record of its kind, number, delivery id and outcome (“pull request #12 merged”), never its title or text, for as long as the world exists; its members can see it. The id of each delivery GitHub sends, for about a month, so it is not handled twice. What the doorkeeper proposed waits as proposals, with a short quote; anything it refused is logged in your own door record with a short quote. Nothing else GitHub sent is stored.
- Disconnecting. Disconnect, beside a repo on the Connectors tab, stops it feeding the world. GitHub keeps sending events until you uninstall the App or remove the repo from it in your GitHub settings; for a repo that feeds no world we keep at most the delivery’s id and do nothing with the event. Deleting your account removes the repos you connected; it does not uninstall the App from GitHub, which you do in your GitHub settings.
Email a world, where it is switched on
An owner of a world, 18 or older, can give it a private email address at in.nirvaana.ai on its Connectors tab, turn it off, or replace it with a new one. The world’s members can see the address.
- Who can send. Only the world’s members. Mail counts only if it comes from the address a member signs in to Nirvaana with, and only if the sender’s own domain confirms it sent it (DMARC). Anything else, above all from anyone without a Nirvaana account, is dropped unread; we count it for seven days by reason, never by who sent it. A vendor’s email reaches a world only when a member forwards it.
- What is read. Resend receives the mail for us and keeps it on its own schedule; we fetch the words from Resend. Up to 6,000 characters, with the sender, the subject and the attachments’ names, go to Anthropic once, with nothing else from your world. The model writes a line or two of summary and a suggested type (invoice, promise, decision or FYI), and lists at most three facts and three promises in the email.
- Who sees it. The world’s members see a card with the sender, the subject, the summary, the type, the promises and the attachments’ names, never the email’s words beyond a short quote beside a proposed fact. An AI tool you connect cannot read the cards.
- Nothing kept without Approve. Nothing enters the world until one person presses Approve: the member who forwarded it if they can build in the world, otherwise an owner, never someone under 18. A promise is read again by Nirvaana before it is kept. An attachment (a PDF, an image or plain text, up to five, 10 MB each) is fetched from Resend only when you approve it, and then kept in the world’s files. Nothing is ever sent, replied to or forwarded.
- How long. Each card 90 days; what you approved stays in the world. Deleting the world deletes its address and cards; deleting your account deletes the addresses you made and the cards waiting on you.
Your own AI tools
Through the nirvaana package or the remote connector, Claude, Claude Code, ChatGPT, Codex, Gemini, Muse Code, Cursor or any MCP client can read your world and hand things to your agent’s door. Those sessions cannot approve anything, connect or disconnect an app, or change what they may read or do; only you can, in Nirvaana. The database is built to stop them writing to your world themselves. We found a few places where it did not, and have written the fix; until it is in place, a terminal’s session may still be able to add a made file or a new version of one to your files, store a file in the storage for chat attachments and made files or remove a chat attachment, and hand one of your own Team chat messages (with a voice message’s transcript) to a world’s Nirvaana. What such a tool receives is governed by that provider’s terms, not ours. A terminal you sign out keeps a token that can work for up to an hour afterwards; sign it out from Settings if you want it dead at once.
- Your connected apps, where it is switched on. Nothing you connected is open to your AI until you turn on “Let your AI read this” for that app on Your connections, from your own web or app session; Gmail, Microsoft 365 and money ask for a second yes. Then, when you ask it, your AI can read through Nirvaana what Nirvaana itself reads there: your Google Calendar’s events; your mail, searched and opened; the Google files you picked; your Outlook mail and calendar, Teams chats and OneDrive; your Notion pages and Linear issues; Figma files and their comments; your Canva designs’ names; your Meta Pages’, Instagram and ads’ results; your balances, bills, transactions, holdings and business figures; and your Canvas classes and what is due, with grades only if you turned them on. Power BI and a world’s own app are not open to it. Nirvaana leaves out sign-in and security emails, and the codes and sign-in links in mail, before your AI sees it, and sends back at most 20,000 characters a read. What your AI reads goes to that AI’s company, under its terms, not ours; we keep which app was read and when, for a day, and a fingerprint of each read, never its words. Your AI can also propose something in one of those apps: it becomes a card naming the AI that asked, and nothing happens until you press Approve in Nirvaana. Turning the switch off, or disconnecting the app, ends it. None of this is open to members under 18, or to a sign-in with a password alone.
- Asking Nirvaana to do things, where it is switched on. Your AI can also ask Nirvaana to do some of what you do in Nirvaana, such as post in Team chat or send a direct message as you, add a reminder, or change your promises, blockers and lists. Nirvaana’s server then does it for you, as your setting decides: Ask me first, the default and the only choice for 13 to 17, makes every one a card for your Approve; Do small things for me lets what only touches you happen; Do most things lets what others see happen too. Changing who is in a world, inviting someone, cancelling for everyone and a few others always wait for your Approve, and so does anything asked right after your AI read someone else’s email or page through Nirvaana. Nothing in an app you connected ever happens without your Approve, whatever the setting. What happened is listed in Activity, where much of it can be undone.
Live: what your agents are doing
If you add Nirvaana’s hooks to Claude Code, each step your agent takes sends one short line, made on your own computer (“Editing a file”, “Running tests”), never your prompt, the transcript, a command’s arguments or a file’s contents. A file’s path is sent only while you share every step with a world. We keep the line, the last 30 steps, the machine’s name, the repo and branch, a title the session gives itself, and a one-way hash of the session’s id. The remote connector records only the names of the Nirvaana tools it uses. Only you see it, unless, where Live is switched on, you choose to share it with a world that is not private, at the level you pick: that an agent is working, its title and repo, or every step. It never reaches a model, and each session is deleted 24 hours after its last step.
Handoffs
A handoff carries a piece of work from one Claude Code session to a teammate’s: the repo, the branch, the commits and the session’s own notes, screened for secrets, never the conversation. Where it is switched on, you can let your Claude Code take a teammate’s handoff for the repo it is in without asking you each time, world by world; it is off until you turn it on, takes at most three a day, and the teammate is told who took it. The handoff’s words go to your own Claude Code, under its provider’s terms; Nirvaana sends them to no model.
Shared worlds: what others see
A world is shared only with the people in it. Nothing from your private memory enters a shared world until you press Approve on a card that shows the exact words and who will see them. If the audience changes while the card is on your screen, the approval is refused and you are shown the new audience. What you say in a world’s Team chat, typed or recorded, its members can read and hear. It is not copied into anyone’s private world.
If you leave a world, what you put into it stays there. If you delete your account, the world’s record keeps its facts, rules, lessons, keepsakes and goals, with your name taken off; your own words there go with you: your Team chat messages and voice clips, entries, standups, the retros you ran and the meeting notes you filed, each with everything in it. “Delete your account” below has the full list. If you sign in with an email on a domain a company has claimed and we have approved, you join that company’s space, and its owner sees your email and display name and can place you in its worlds.
The people you share a world with see your local time, so they know what time it is where you are: your local time, never your time zone or city. If you set a focus for the day, they see that line until your midnight, and if you say you’re away, they see the date you’re back. Unless you turn off “Show when I’m here” in Settings, they also see whether you have Nirvaana open now, or roughly when you were last here, for example on the org chart and on your profile.
A world’s owners can take you out of it. Where managing people from the org chart is switched on, they can also change your role, move you to another world of the same organisation, or take you out of the whole organisation. Each of those org-chart changes is kept in the world’s history, which its members can read: who made it and whom it was about (as their display names were then), what changed and when. When an owner takes you out, moves you or offboards you from the org chart, what you had open with others there is not handed to anyone new: an open promise you shared with someone becomes a card, with its words, for that person alone, and a blocker waiting on you becomes a card for the world’s owners, who could already read it. Being taken out from the world’s own page, or leaving yourself, makes no history entry and no card.
Direct messages
Two people who share a world can write to each other one to one, as the org chart and each person’s own setting allow; you choose in Settings who may message you. Some people you ask to talk to first, with a note of up to 200 characters.
- What is stored. Each message’s text (4,000 characters at most), who wrote it and when; the conversation between the two of you and its state (open, asked, declined or closed), when each of you closed it, and whom an ask was pointed to; how far each of you has read; which app carried a message sent for you (see below); and your setting. People you share a world with see, beside your name, whether they can message you, must ask first, or can reach you through someone, as your setting and the org chart allow.
- Who can read them. The two of you, and nobody else: not the other members of a world you share, and not your AI tools, whose sessions the database refuses. A notification of a new message says who wrote, never what.
- Sent for you. Where it is switched on, you can ask Nirvaana in the chat, or an AI tool you connected, to tell someone something as a direct message. It goes only to someone you may message. Sent straight away, which happens only if your setting lets apps send for you, it goes as you, marked with the app that carried it. Otherwise it waits as a draft on a page of its own in Messages, reached by the link you are given, until you press Send (you can change the words first); you have a day to send it, and sent from there it goes as you with no app mark. Where you may only ask to talk, an ask waits instead, your words its note, cut to 200 characters. We keep each draft (its words, whom it is to, which app filed it, and whether you sent or discarded it), and, for a message sent straight away, a one-way fingerprint of its words so a repeat is not sent twice and to count the limit of thirty an hour, kept at least a day and cleared the next time a message you had sent this way posts after that. The app that carried it is told where your words went, never anyone else’s messages.
- The model. Direct messages never reach a model, except the words you ask Nirvaana in a chat to send as one, which are part of that chat like anything else you say there (and words you give an AI tool you connected to send, which that tool’s own model has already seen). Nirvaana does not read, remember, summarise or learn from any other message; the code holds that line with a test.
- How long. Until one of the two of you deletes your account, and the same for a draft, sent, discarded or lapsed. A sent message cannot be edited or deleted. Closing a conversation stops both of you writing in it; it deletes nothing.
- Deletion. When either of you deletes your account, the whole conversation goes, both sides of it, so the other person loses it too, with every draft between you. Download my world does not include direct messages or drafts; write to us for a copy.
Calendar links
Nirvaana used to let you make a private calendar address that another calendar app could subscribe to. There are none now. Anyone holding one could read that calendar without a Nirvaana account, so every link that had been made was deleted when this change went live: none opens anything, and no new one can be made. Your calendar stays in Nirvaana, for you and the people in your worlds.
Importing from Slack
You can start worlds from a Slack workspace’s channels by uploading the export a workspace owner or admin downloads from Slack. An export holds other people’s messages, names and email addresses. Upload one only if you have the right to use it.
- Where the file goes. The ZIP, 200 MB at most, is stored in our file storage (Supabase), in a folder only you can read. It is deleted once the channels you chose are read, when an import fails or you discard it, and in any case by an hourly sweep once it has sat for three hours.
- What is read, and what is left out. The list of the workspace’s people (names, email addresses, titles, and whether each is a guest), the list of channels, and the messages of the channels you tick, the newest ones up to a limit. Direct messages and group DMs are never brought in. A private channel is read only if you tick it, after a warning that everyone in the new world will read it. Files people shared are not opened; their names, as Slack lists them, are read with the message. Slack’s own logs, and messages from bots, apps and deactivated accounts, are passed over unread.
- What reaches the model. The messages of the channels you chose go to Anthropic for Nirvaana’s doorkeeper to read, as data. From that each channel gets a draft: a name, what it is for, its people, and the goals, promises, decisions, facts and questions the doorkeeper found. Lines that give Nirvaana orders, and things that read as private to someone, are left out.
- Nothing is made without you. A draft becomes a world only when you review it and press Create. Nobody is invited unless you ask.
- Inviting your coworkers, where it is switched on. When you press Bring everyone, each person the import placed who has an email address in the export gets an invite to the worlds made for them, with their Slack title and a role. Nobody joins anything until they sign in and press Join; a person’s Slack title becomes their title here only when they join, and only if they have none. Those whose address is on the workspace’s own company domains also get one email from us, at most (a personal address, or a guest’s or contractor’s on another domain, gets none), saying who invited them, from which workspace, and how many spaces wait; it carries no one else’s name, address or messages, and has a link to stop our invitation emails to that address, and our postal address. We send at most 300 such emails a day for one account and 2,000 for one import. We keep each email’s address, the workspace’s name and whether it went for 30 days. When someone stops them, we keep a one-way hash of the address, and nothing else, so we never write to it again; that hash stays even if they later make and delete an account.
- How long. The import itself (the plan with the workspace’s names and addresses, the words while they are read, and the drafts) is kept seven days at most, and no more than a day after its last channel is made or left out. Discarding it deletes the ZIP and everything read from it at once; the file’s name and size and the workspace’s name stay with the import until its seven days end. Worlds you made from it stay, under the rules for shared worlds above, and can keep the name and email address of a Slack person a promise waits on, and quotes from the channel as a fact’s evidence. Deleting your account deletes your imports and any ZIP still stored.
- Keeping a workspace in sync, where it is switched on. After an import, the person who made it can install the Nirvaana app in that Slack workspace; Slack may ask a workspace admin to approve it. The app asks Slack to read the public channels it is in and to join them (channels:history, channels:join); to read private channels, only if you choose to include them (groups:history, groups:read); to read the workspace’s name, its people with their email addresses, and its user groups (team:read, users:read, users:read.email, usergroups:read); and, where posting is switched on, to send messages (chat:write; see “Services you connect”). It joins the public channels your import made worlds from, which Slack shows in each channel. It never reads a channel’s history: the past still comes only from your export. Apart from a post you approve, it never posts, reacts or changes anything in Slack. From then on, Slack sends us each new message a person writes in those channels, never a bot’s and never a direct message, and new and changed people and user groups; edits are not read. A private channel’s messages are read only while the person who installed the app is in that channel. Messages wait with us until a batch is read, within the hour; the batch then goes, with its writers’ names, to Anthropic to be read as data, as the import’s are, and lines that give Nirvaana orders are left out. What is found becomes proposals for you to approve; nothing enters a world without your Approve. A message deleted in Slack takes its waiting proposals with it. Messages we have read are deleted after a week, and unread ones after two days; the copy of each batch kept in your own record of what was handed to Nirvaana goes after 30 days. We keep the app’s token sealed, the workspace’s name, and its people’s names, handles, titles and email addresses as Slack last gave them; only our server reads the addresses, and an AI tool you connect cannot read any of it. You can stop the sync at any time: we delete the installation, its token, its links, what it holds and any post waiting for your Approve, and remove the app from the workspace. If someone removes the app in Slack, Slack tells us and the same happens. Deleting your account does the same.
People who are not our users
Someone’s world can hold information about you even if you have never used Nirvaana: your name and what they say about you; a promise to or from you; your name, email address, Slack title and messages from a Slack export they uploaded; your name, address and a few lines about you from a list of their team they pasted (the paste itself is not kept); your name in meeting notes they filed; your GitHub name and the title of your pull request or issue in a repo connected to a world; your address on an invitation to a world; where their Gmail, Google Calendar or Microsoft 365 is connected, your name, address and words on an email, event, Teams message, file or contact they asked Nirvaana about; your Figma handle and comment on a file they linked; names in their Power BI, Notion or Linear data; a teacher’s name from their Canvas; the words and address of an email a member forwards to a world; where they asked Nirvaana to keep checking an inbox, your name, address, subject and a summary of what you wrote to it, with the reply drafted to you, which the inbox’s owner sees (and the world’s members only if you are one of them); and your new messages, name, handle, title and email address in a Slack channel they keep in sync. The person who brought it in decides what their world holds, and is responsible for having the right to; we keep it and process it for them, as this page describes, and parts of it reach Anthropic and Voyage AI as described above.
We do not contact you, with one exception: where the Slack import’s invitations are switched on and someone invites their coworkers, you may get one invitation email, which says who sent it and has a link to stop them. If someone approves an event on their Google or Outlook calendar with you as a guest, or a post in a Slack channel or a GitHub repo you are in, that service shows it to you as it would anything they did there. To ask what we hold about you, or to have it removed, write to hello@nirvaana.ai with “Privacy request” in the subject, and give the name and email address you might be listed under. We will look for it where we can find it, tell you what we found, and delete it or take your name and address off it, unless the law requires us to keep it. It may sit in someone else’s world, so we may tell them what we removed.
Cookies and local storage
| Cookie | What it does, and how long it lasts |
|---|---|
| sb-* (Supabase) | Keeps you signed in; may be split across several cookies because it is larger than one allows. Until you sign out or it expires. |
| theme | Light or night, so the page is right before it paints. One year. Readable by the page’s own script. |
| nv_seen | That you have seen the welcome page, as a version and a day, with no identifier. 400 days. Not readable by script. |
| auth_provider | Which sign-in provider you picked, so a failure can be reported as “Google failed”. One hour, only on the sign-in path. |
| nv_connect | Which service you are connecting, while the connection is in flight. Ten minutes, only on the connections path. |
| nv_finance_connect | Which money service (Stripe, QuickBooks, Xero, Mercury, Coinbase or Shopify) you are connecting, and for Shopify your store’s address, while you are at that service, where money is switched on. Sealed. Ten minutes, only on the money connections path. |
| nv_slack_start | That you pressed Keep it in sync, for which import, while you are at Slack, where it is switched on. Sealed. Ten minutes, only on the Slack connection path. |
| nv_world_app | Which world’s app an owner is connecting, while they are at that app’s sign-in, where world apps are switched on. Sealed. Ten minutes, only on the world apps path. |
| nv_github_start | That you pressed Connect a repo, for which world, while you are at GitHub. Sealed. Ten minutes, only on the GitHub connection path. |
| nv_github_pick | Which return from GitHub is waiting for you to tick repos. Sealed; it holds an id, not the list. Fifteen minutes, only on world pages. |
| nv_next | Where to take you back to after you sign in and give the second step, as a path on this site. Thirty minutes. |
| nv_join_after | The invite code of a world you opened an invite to before signing in, so you land back on it. One hour. |
| nv_age | Set only after an under-13 answer, so the question is not asked again. One year. No identifier. |
Analytics sets no cookie: what it keeps lives in your browser’s local storage, on signed-in pages, only while analytics is on for you. Local storage also holds your unsent drafts, small interface flags (which cards you have seen), and the speech-recognition model and its runtime after their first download. Nothing there leaves your browser. No advertising cookies, no cross-site trackers.
We do not respond to “Do Not Track”, because there is no agreed standard for what it asks. We treat a Global Privacy Control signal as a request not to sell or share your data; we never do either, so nothing changes.
How long we keep things
| What | Kept for |
|---|---|
| Conversations, memories, promises, files, door submissions | As long as your account exists |
| Direct messages | Until either of the two people deletes their account |
| A direct message drafted for you to send, sent or not | Until either of the two people deletes their account |
| A world’s history of who changed who is in it | As long as the world; what is about you goes when you delete your account, and a change you made keeps “Someone” for your name |
| A card for what someone taken out of a world had open | Until the promise or item it came from goes, the world is deleted, or its recipient or the one taken out deletes their account |
| A plan given to you rather than bought | Until you delete your account; an address we listed in our server’s settings as having Plus, until we take it off (ask us to) |
| A Slack export you uploaded | Until the channels you chose are read, or three hours unused |
| A Slack import’s plan, words and drafts | 7 days at most; a day after its last channel is made or left out |
| An invitation email to a Slack coworker (the address, the workspace’s name, whether it went) | 30 days |
| An address that asked for no more invitation emails, as a one-way hash | No end date, so it is never written to again |
| What your agents are doing (Live) | 24 hours after the session’s last step |
| An automation trigger’s events, which hold ids only | 14 days after they are handled, 30 at most; a ready card’s words until it closes |
| Bank transactions, where money is switched on | 400 days after they posted; bills, 60 days after they were due; all of it, 30 days after money stops being yours, or when you disconnect |
| GitHub delivery ids, which name no one | About a month |
| A world’s record of GitHub events (kind and number, no words) | As long as the world |
| A card for a change in a connected app, waiting for your Approve | A day, then it lapses; one that went out, until you delete your account; one that did not, until you delete your account, or 30 days after it ended where we have switched pruning on |
| A record of each app you connected (the app, the account, what it granted, when) | Until you delete your account, even after you disconnect it |
| Which connected app your AI read, for each of its sign-ins | One day |
| An email card in a world (Email a world) | 90 days; the count of dropped mail by reason, 7 days; the mail at Resend, on its schedule |
| A card for mail in an inbox Nirvaana keeps checking, and the record of skipped mail | 30 days while checking is switched on; otherwise until the world or your account is deleted |
| Slack messages from a workspace kept in sync | Read ones a week, unread ones two days; the copy of a batch in your own record, 30 days |
| A synced Slack workspace’s people and the app’s token | Until you stop the sync, the app is removed in Slack, or you delete your account |
| A Canvas token or calendar feed address | Until you disconnect Canvas or delete your account |
| What you searched for in Find a tool, with no account attached | 7 days |
| Uploads you did not keep | 24 hours |
| Your export zip | 24 hours; its link, ten minutes |
| A voice clip you abandoned before sending | 3 hours |
| Counters that slow repeated failures | 2 days |
| Health observations from the iPhone app | 90 days; the reminders made from them, until you delete them |
| Our own uptime and error checks | 90 days |
| Where the free trial is on: keyed hashes of an email address and a card fingerprint that have had a trial | No end date, so the same address or card does not get a second free trial; kept after deletion, with no user id |
| Stripe event ids | 30 days |
| Notifications waiting to be sent | 7 days; the daily morning note, 35 |
| A terminal’s connect request or an approval request | Ten minutes to act on; the row is removed after a day |
| Sign-in codes for your AI tools | Codes, one day; tokens, 30 days after they expire |
| A paused cloud computer nobody has used | 30 days, then destroyed |
| An email invite to a world that was never answered | 90 days |
| Your consent to renewal terms, if you pay | At least 3 years, or a year after the subscription ends if that is later, as California law requires, even after deletion |
| Your consent records (terms accepted, that you confirmed your age, and any parent’s yes from before 10 October 2026), with a hashed IP address | No end date; kept after deletion without your account id |
| A parent’s consent request from before 10 October 2026, with the parent’s address | Until the account is deleted |
| The waitlist for the EU, EEA and UK (address and country) | Until you ask us to remove it |
| Tasks sent to your computer | As long as your account exists |
| The record that you asked for deletion | 90 days, with your email hashed |
| Database backups | 7 days |
| Server logs at Vercel, mail logs at Resend | On their schedules |
Download your world
In Settings, choose Download my world. You get a zip (several, if your files pass 45 MB): your world to read in any browser (world.html), the same world for another app to read (world.json), a CLAUDE.md for your own AI tools, your health data as health.json, and your files: those you sent, the latest version of each file made for you, and the keepsakes and voice clips you added.
world.json holds your display name and when you joined; your memories, promises, open questions, conversations, schedules and the asks they put to you; your lists; the services you connected (never a key); what reached your agent’s door; your keepers, nightly checks, project items, tasks sent to your computer, promise cards and standup drafts; and your suggestion settings. From each shared world, what you put there: your facts, rules, entries, live Team chat messages, lessons, keepsakes, proposals, standups, goals you set and the check-ins you made, the meetings you filed, the retros you ran with the changes each proposed, and the invites you made.
It does not yet include: your direct messages and the drafts made for you to send; the notes of the retros you ran; withdrawn Team chat messages and retired keepsakes; what you added to worlds you have since left; your knowledge graph (the people, places and links Nirvaana drew from your world); handoffs and whose turn it is; unsent Team chat drafts; your consent, age and parental-consent records and the month and year you were born; your subscription and billing records; your calendar sync; Slack imports and the invitation emails they sent; a synced Slack workspace, its people and its messages; your Canvas connection and which class each item came from (the worlds, facts and promises it made are included); a world’s email addresses and email cards; the cards for an inbox Nirvaana keeps checking; the title a Slack import gave you; GitHub links; what your agents are doing (Live) and your handoff settings; automation triggers; your money connections and what they read; a plan given to you; the history of who changed who is in your worlds, and the cards for what someone taken out had open; the people you blocked and Team chat messages you reported; the log of actions taken on your account, the door’s decisions and approval requests; the steps Nirvaana proposed or took in apps you connected; automation runs; your agent’s voice; your auto-approve settings, presence and the conflicts you raised; which keepers and worlds each conversation used; team-from-paste imports; your organisation and invite-code records; your second-step history; notification registrations; your sessions and terminal sign-ins; the country you signed up from; and the ledger of what was spent. Ask us for any of it and we will send a copy. Three downloads in a row, then about one every eight hours; the link lasts ten minutes and the zip is removed after a day. Writing to us works too.
Delete your account
In Settings, choose Delete my account and type your email. You are signed out everywhere at once, including this browser’s notifications, and we email you once. A day later it is erased; until then you can sign in and choose Keep my account. If you cannot sign in, write from your account address and we will do it for you.
The purge cancels any subscription and deletes your Stripe customer, destroys your cloud computer, deletes your files, voice clips and any Slack export still stored, revokes Google, Canva and Meta at the provider, and Notion pages and Linear where they offer a way, drops every other connected app’s token (Figma, Microsoft 365, Power BI, Notion, Canvas), tells Plaid, Stripe, Intuit, Xero and Coinbase to forget any grant you gave them and removes the Nirvaana app from a Shopify store you connected, removes the Nirvaana Slack app from each workspace you installed it in and deletes what the sync held, deletes the email addresses you made for worlds and the inbox Nirvaana was checking for you with its cards, deletes the apps you connected to worlds (the app is not told), takes you off the invite list and drops the invites addressed to you, deletes your record at PostHog with its events, and deletes your sign-in record, which takes your profile, conversations, memories, promises, schedules, door submissions, sessions and push registrations with it, along with your calendar sync, your Slack imports and the invitation emails still queued from them, your money data, what your agents were doing (Live), your automation triggers, the GitHub repos you connected to worlds, and every direct-message conversation you are in, with both people’s messages and every draft between you, a plan you were given, the entries in worlds’ histories that are about you, and the cards made for you or about what you had open when an owner took you out. A world you own that other people are in passes to one of them; a company’s world stays with the company; a world whose only other people are in its moons stays, with no owner; a world with nobody else in it or in its moons is deleted, with everything in it. Your data is the practical version of this page.
In worlds that stay, deleting also removes what is yours alone, including where others took part: your Team chat messages and voice clips, and reports about them; your entries; your standups; the retros you ran and the meeting notes you filed, with everything in them, including items that name a teammate (a copy of the notes kept in the world’s keepsakes stays, as keepsakes do); the promises you made, including those to a teammate; the reminders and blockers you own; automations and handoffs you shared; your proposals (what was approved from them stays); and your membership. If you own a world, the reminders and blockers the deadline reading made there are yours, and go too.
What stays, and we would rather say so now than surprise you later:
- in shared worlds that stay: the facts, rules, lessons, keepsakes, goals and check-ins you added, the invites you made, and what you decided on others’ cards, with your name taken off;
- in a world’s history, the changes you made to who is in it, with “Someone” for your name;
- the ledgers of what was spent and what the agent did, as amounts, times and hashes, never your words;
- the record of your consent to renewal terms, for at least three years, or a year after the subscription ends if that is later, as California law requires;
- where the free trial is on, a keyed hash of your address and of any card that started a trial, with no user id, only so they do not get a second free trial;
- your consent records (terms accepted, that you confirmed your age, and any parent’s yes from before 10 October 2026), with a hashed IP address and without your account id;
- if a company removed you from its worlds, a hash of your address so that address cannot rejoin by its domain;
- a hash of an address that asked for no more invitation emails, so it is never written to again;
- outside Nirvaana: the Nirvaana GitHub App on your GitHub account until you uninstall it; access you gave Notion, Figma, Microsoft 365, Power BI or Mercury, and Notion pages or Linear where they offer no way for us to end it, until you remove Nirvaana there; a Stripe key, Mercury token or Canvas token you pasted, and a key you gave a world’s app, until you delete it there; mail Resend received for a world, on Resend’s schedule; what you approved in an app you connected (an event, a draft, a Doc or Sheet, a Canva design, a Figma comment, a Notion page, a Linear issue, a Slack post, a GitHub issue), until you delete it there; and the Nirvaana calendar or Notion database calendar sync wrote, until you delete it;
- copies in daily backups for up to seven days;
- server logs at Vercel and mail logs at Resend, on their schedules.
Your rights
Wherever you live, you can ask what we hold about you, ask for a copy, have it corrected, and have it deleted. Download my world and Delete my account, both in Settings, do the first, second and fourth on their own; Your data says how. For the rest, write to hello@nirvaana.ai from the address on your account with “Privacy request” in the subject; we confirm it is you by sending a code to that address. Someone you authorise in writing may ask for you. We answer within 45 days, and tell you if we need 45 more. If we refuse, we say why, and you can ask us to look again by replying.
California residents also have the right to opt out of the sale or sharing of personal information and to limit the use of sensitive personal information; we sell nothing, share nothing for advertising, and use sensitive information only to provide what you asked for. We never treat anyone differently for exercising a right. We may be below the thresholds at which the California Consumer Privacy Act applies; we honour these rights anyway.
California notice
The California Consumer Privacy Act asks for the same facts as this page, sorted into its own categories. Here they are. For each, the purposes are to provide what you asked for, to keep accounts and the service secure, to fix what breaks, to bill you if you subscribe, to count how the product is used where analytics is on for you, and to meet the law. How long each is kept is in “How long we keep things”. Each company named receives it only to do that work for us (“Who else processes it”), or because you connected it yourself.
| Category | What, where from, and who else receives it |
|---|---|
| Identifiers | Name, email address, account id, IP address, push tokens; from you, your sign-in provider and your device. Supabase, Vercel, Resend, Stripe if you subscribe, PostHog while analytics is on, Apple and the browser push services. |
| Customer records and commercial information | Your subscription, its consent record and payments; from you and Stripe. Stripe holds the card; we never see its number. |
| Age | The month and year you were born; from you. Kept by us only. |
| Internet activity | Product events, pages, browser and device details, server logs; from your browser and device. Vercel, and PostHog while analytics is on. |
| Approximate location | The country, and for a terminal the city, your network reports. Never a precise location. |
| Audio | Voice messages you record; from you. Supabase; only the words you approve go to Anthropic. |
| Professional and education information | Work you keep in Nirvaana, titles, and, if you connect Canvas, your classes and assignments; from you and the services you connect. Anthropic and Voyage AI, as part of your world. |
| Your content and what Nirvaana infers from it | Conversations, files, the memories and facts Nirvaana keeps, and the people and links it draws from them; from you and the services you connect. Supabase, Anthropic and Voyage AI. |
| Sensitive personal information | Where you connect them: bank, card and brokerage accounts (read-only), and the contents of mail and messages (Gmail, Outlook, Teams, Slack); your direct messages; health data you turn on in the iPhone app. Used only to provide what you asked for, never to infer things about you beyond that. Who receives each is set out above. |
In the past 12 months we have not sold personal information or shared it for cross-context behavioural advertising, and we do not, for anyone, including people under 16. A service you choose to connect receives what you send it at your direction, which is not a sale.
Security
Every table is protected so that only you, and for shared worlds their members, can read your rows, enforced in the database and not only in the app. Every session takes a second step. Codes are stored as one-way fingerprints; tokens for connected services are sealed under a key that never leaves the server. Money is capped per person and per day. Data is encrypted in transit and at rest by the providers named above. No system is perfectly secure. If we learn of a breach that affects you, we will tell you without unreasonable delay, and as the law requires. Report a vulnerability to security@nirvaana.ai.
Changes
When this changes, the date at the top changes. For a change that matters to you, we email account holders at least 30 days before it takes effect.
Contact
hello@nirvaana.ai, subject “Privacy request” for anything about your data. Post: Nirvaana AI, Inc., 335 Russell Blvd, Davis, CA 95616. Say what you need plainly; you will get a plain answer.