Data Use
How Minima uses your content, and the permission we ask before any of it trains an AI model.
This page describes how Minima Technologies, Inc. ("Minima") uses your content. It supplements theTerms of Service and thePrivacy Policy.
Minima does not use your content to train AI models unless you turn sharing on. Your projects, files, prompts, and chats are used to operate the product: to render audio and video, to run agents, to sync across your devices, and to recover your work when something goes wrong.
We use customer content to improve our AI modelsonly with your explicit, opt-in permission. That permission is the Share product usage setting, off until you turn it on and held separately for your account and for each team. This page describes what we use today, what changes when you turn it on, and the limits on what consent can do once a model has been trained.
What we use your data for today
We use the data you give us, and the data we generate as you use Minima, to run the service you are paying for. That includes:
- Sync and persistence. Your projects, files, folders, and settings are stored so you can pick up where you left off, on any device.
- Rendering. Audio, image, and video pipelines process your projects into deliverable artifacts, together with the MIDI take you played when a cloud export of a patch that reads MIDI includes one.
- Agent and AI features. Prompts and the relevant context are sent to AI providers to produce a response, and the result is returned to you.
- Billing and usage accounting. Credit balances, invoices, and rate limits are computed from usage data.
- Security and abuse prevention. Logs and rate-limit counters help us detect abuse and respond to incidents.
None of these uses involve training AI models on your content. Training is a separate activity governed by the section below.
What we send to third parties
Minima reaches every language model it uses through one vendor:OpenRouter. When you use an AI feature, the prompt and the necessary context go to OpenRouter, which forwards them to the company running the model you selected, or the model we choose for you when the selection is left on automatic. Those companies are the model providers, and they are independent of both Minima and OpenRouter. Search indexing takes the same route without you triggering it: when a memory, a module, or a skill changes, its text is sent to be turned into a vector, whether or not you are using an AI feature at the time.
Your prompts reach companies other than Minima and OpenRouter. Each model provider handles your request under its own terms as well as OpenRouter's.
We send the minimum prompt and context the request requires. We strip identifying details from system prompts where we can, and we scope per-user context so that one customer's data is never embedded in another customer's prompt.
We do not list the individual models here. The catalog changes as models are released and retired, and a list on this page would go stale without telling you. The chat models on offer at any moment are the ones in the app's model picker; agent runs and search indexing use models we choose.
A request goes to the model's own developer first.OpenRouter serves each model from more than one endpoint, and the endpoints fall into two classes:
- The company that built the model, running it itself. Every chat and agent model in our catalog today is pinned to that endpoint.
- Another host running the same model: for a proprietary model, a cloud platform that serves it under licence, and for an open-weight model, an independent inference provider that has downloaded the weights, of which one model can have dozens.
A request reaches the second class only when the pinned endpoint cannot serve it — because it is down, at capacity, or unable to take something the request needs — and only within the limit below. The pin is set from the model an agent is configured with, so an agent that chooses its model as it runs carries none and takes OpenRouter's own choice among that model's endpoints, within the same limit. Two requests carry neither the pin nor the limit — the embedding requests described under "Vector search and retrieval", and the responder that reads mail sent to our support address. We do not name the endpoints here for the reason we do not name the models: they change with the catalog and with routing.
The limit we set on routing. Every chat and agent request carries a preference that restricts it to model providers OpenRouter classifies as not collecting user data — its own term for providers that do not store user data non-transiently and do not train on it. That classification is OpenRouter's, not an audit of ours. Within the limit, and where no pin decides it, which provider serves a given request is OpenRouter's decision. The preference does not cover the two requests named above, and it does not govern what OpenRouter itself does with a request; that is set by OpenRouter's own privacy policy rather than by us.
Where the model providers are. Not all of them are in the United States or the EEA. The company serving a given request may be in a country with no adequacy decision under the GDPR, and which country that is can change when the catalog does. Treat the AI features as sending your work outside your own jurisdiction.
Voice messages. The recording is sent to Deepgram for transcription, and the text comes back into your message box for you to send or edit. It crosses our own infrastructure on the way — Convex and Google Cloud, both listed as recipients on thePrivacy Policy — and Deepgram is the only outside party we send it to; it does not reach OpenRouter or a model provider. We do not store the recording: it is held in memory long enough to be transcribed and is never written to our databases or our object storage. What Deepgram does with it while it transcribes is set by Deepgram's terms, not ours.
Vector search and retrieval
To make your work searchable and to ground AI responses, Minima generates vector embeddings of your content.Three kinds of thing are indexed, and nothing else:agent memories, modules, and skills. Uploaded files, chats, and the messages in them are not indexed, so none of them has an embedding at all.
The embedding is computed by OpenAI'stext-embedding-3-small, reached through OpenRouter, so the text being indexed reaches OpenAI. So does the text of a search. Retrieving a passage embeds the query the same way, so what an agent looks up goes the same route as what it indexed. Either can instead reach a cloud platform serving OpenAI's model under licence: unlike a chat request, an embedding request is not pinned to the developer's own endpoint. We name this model because you do not choose it and it does not move with the catalog. The routing limit above does not apply to either of these requests.
The vectors that come back live in Chroma collections scoped to your account or organization — one each for memories, modules, and skills — together with the text they were computed from, so that a search can return the passage it matched. Neither is shared across customers.
Embeddings are derived from the indexed content rather than a separate canonical store, and they can always be recomputed from it. Deleting a memory, a module, or a skill clears the embeddings computed from it about a minute later, once the change is reconciled.
Deleting your account removes the collections outright rather than clearing them row by row — memories, modules, and skills, for every workspace the account owns, and the text held beside the vectors with them. Turning AI off does the same for the workspaces that switch covers.
Deleting a single workspace while the account stays is the case that is still partial. Deleting a team clears its memory embeddings with the memories and leaves the module and skill collections behind; deleting a personal workspace leaves all three, because the workspace whose setting drives the clearing is already gone. Ask us atprivacy@minima.dev and we will drop them.
AI chat history
Minima keeps your AI chats so you can return to them, fork them, and build on them. Chats and their messages are kept until you delete them or your account is deleted: nothing expires them on a schedule, and there is no retention setting. The intermediate "thinking" traces (the model's scratch work) are stored as messages inside the chat they belong to, not in a separate store with a clock of its own, so they go when the chat goes.
You can delete any chat from the app, which removes it and its messages. One exception: if you have forked a chat, the original is hidden but kept for as long as a fork of it exists, because the fork's history runs through it. It is removed when the last fork is. Deleting a chat does not reach the copies already sent to a model provider, which "What we send to third parties" describes.
Telling people an output came from AI
Minima does not mark its renders as AI-generated.Audio, image, and video you export carry no provenance metadata recording that AI produced or shaped them.
Where we stand under the EU AI Act. For the audio, image, and video you export, we take the position that Minima is a deployer under Article 50(4) of the Act rather than a provider under Article 50(2). The distinction decides the duty. A provider of a system that generates synthetic audio, image, video, or text must ensure that its outputs are marked in a machine-readable form as artificially generated. A deployer must disclose when image, audio, or video it has generated or manipulated with an AI system is a deep fake, meaning it resembles real people, places, or events and would falsely appear authentic, and where that content is part of an evidently artistic or creative work the duty is limited to disclosing it in a manner that does not hamper the display or enjoyment of the work. The Act does not hand us this classification. It defines a provider by who places a system on the market under their own name, not by who built the model behind it, and a deployer that puts its name on a system can become its provider, so the position is one we hold on the argument below rather than one we can read off the text.
Why a render is not the model's output. When a model works on a project in Minima, what it writes is the patch: a program, in the same language a person writes by hand. The audio and the frames you export are not emitted by the model. They are computed from the patch by Minima's engine, which computes them the same way whether a person or a model wrote the program. What the model contributes is the program, and the render is the program's result. That is the position we would have to defend if the classification were challenged.
What we intend to mark. On that position, we will mark AI-assisted output only: an export from a project a model has contributed to, marked in a machine-readable way that adds nothing you can see or hear. A render a person made without a model would be left untouched. That marking does not exist yet, so no export carries a mark of any kind today; this section will describe it when it ships.
The Act also requires that a person be told when they are interacting with an AI system, and we do tell you. Every reply the assistant writes is marked as AI, on screen and to a screen reader, on the web, in the desktop app and in the mobile app alike. OurTerms of Service say it in prose as well: Minima's chat surface and agents are powered by large language models, and their outputs are generated rather than authored.
When we use your content to train AI models
Default: off. Share product usage is off until you turn it on, for your account and, separately, for each team. While it is off, nothing from your account enters a Minima training set.
Both parties have to agree. Work in your own workspace needs only your permission. Work inside a team needs the team's permission and the permission of the member who wrote it, and anything we cannot attribute to a member who can agree — a model's own replies, and anything written before we began recording who wrote what — is left out rather than taken on the team's word alone.
It is read every time, and never written down.We do not mark your rows as shared. Each time a training set is built we ask both settings again, row by row, so turning either off keeps that work out of every set built afterwards, and so does leaving a team. There is no record of a past permission for us to fall back on.
Turning sharing on does not change where your requests go. The routing limit described above — that chat and agent requests are restricted to model providers OpenRouter classifies as not collecting user data — is not a setting and does not move. It governs what other companies may do with a request we send them. Sharing governs what Minima may do with your content in a set of its own.
What the setting covers:
- In scope if you agreed: the work you do in Minima — projects, code, node graphs, knob states, documents, prompts, AI chats, agent memories, the feedback you send us, and your usage records. Product analytics events need both permissions at once: the analytics consent that governs collecting them at all, and the sharing setting. With either one off, your events are not eligible.
- Always excluded: billing and payment data, invoices, the logs we keep for incident investigation, and credentials and tokens of any kind.
- Always excluded: profile information from OAuth providers (your Google or Apple identity), and content belonging to a workspace you are not part of.
The honest limit on the consent we ask for. A training set already handed to a training run cannot be recalled by turning the switch off afterwards — and nor can the rows a set still being assembled has already written, because it asks each row once as it reaches it. If content has already been used to train a model, that training cannot be undone. Model weights are statistical and cannot be edited to remove a single contributor. Withdrawing consent keeps your work out of every set built from then on; it cannot retroactively strip it from a model that has already learned from it. We say it beside the switch as well as here.
We do not sell your content. Any training we do would be performed by Minima for Minima's own models. We do not sell, license, or share your content with third parties to train their models.
What you can do today
This is what Minima gives you control of right now. Where a control does not exist yet, the route is our privacy mailbox.
- Delete your work from the app: chats, files, modules, skills, memories, projects, and the folders holding them.
- Turn product analytics off in Settings. It is off until you allow it, and turning it off stops collection immediately.
- Turn AI off in Settings, under Privacy. It stops every model call for your own work — chat, the search indexing that runs whenever you edit a patch or a skill, and voice transcription — and it deletes the embeddings computed from that work. Work inside a team is governed by that team's setting instead, so your contributions there are still processed: the team owns that decision, and a team's switch covers everyone in it whatever each member has set their own to. Turning it back on re-indexes your work from what is still in the database, which takes a while and is limited to once a day.
- Choose whether we may train on your work in Settings, under Privacy, for your account and for each team you administer. It is off until you turn it on, and it is read afresh every time a training set is built rather than recorded against your rows.
- Export your data from Settings, under Data. We email you a code first, because we have to know it is you before we hand your account over; entering it builds a ZIP, usually in under a minute. The archive stays available for two days, and each download link you press for is good for five minutes, so a link that leaks is not a standing key to it. ThePrivacy Policy has how often you may ask for one. Inside are your projects, files, conversations, memories, settings, billing records and usage, the embeddings computed from your work, and a written explanation of what each of them is, why we hold it, for how long, and who else has received it. Finished renders are listed rather than carried, because one account can hold tens of gigabytes of them and they stay downloadable in the app.
- Delete your account from Settings, under Data. There is a 30-day recovery window, and the deletion is issued to every system listed under "Erase" in thePrivacy Policy, which is where the canonical list and what survives it are kept. It cannot reach what a model provider has already received, which "What we send to third parties" describes.
- Ask us anything else atprivacy@minima.dev — correction, restriction, objection, or a copy of the analytics events we cannot export in bulk. We answer inside the month the law allows.
Everyone who appears in your own conversations appears under a token rather than a name. We do not rewrite what anyone typed, so a colleague who wrote a name into a message is still named there; the archive says so rather than leaving it to be found. A team workspace is not in your archive at all, conversations included: messages written before we began recording who wrote each one carry no author, so we cannot tell the threads you took part in from every thread in the workspace, and handing you all of them would hand you your colleagues' data. The archive names that omission and its reason, and the mailbox below answers for a thread you can identify.
The Privacy section in Settings holds the three switches above — product analytics, sharing for training, and the one that turns AI off — and each of them is acted on rather than merely recorded. This page changes as each of them does.
If our position changes
If we ever expand how we use your data, for training or anything else, we will update this page, notify you in advance, and ask for your consent. We will not silently change the default and we will not opt you in retroactively.
Data use questions: privacy@minima.dev