Ads and your chat: what VibeFree reads and keeps

Short answer: to choose an ad, VibeFree's own classifier reads each new message you send and turns it into a few topic labels. It keeps the labels - never the message - for 30 minutes, and advertisers never see either. You can switch it off on any app, personalised ads stay off unless you switch them on, and neither choice costs you a feature.

This is the detail behind how VibeFree stays ad-funded: exactly what is read, what is kept and for how long, how crisis and sensitive messages are handled and where that handling can fall short, and where each switch lives on each app.

What is read

  • Each new message you send in the web app, the desktop and mobile apps and the VS Code extension. Not the assistant's replies, not your files, not the output of tools.
  • At most its first 1,500 characters, by a classifier on Cloudflare Workers AI acting for VibeFree. No advertiser and no ad network takes part in it.
  • If a coding agent's build or test fails, only the kind of failure - build, tests, type check, lint, install, command, deploy - for an error-moment ad. Never the error output.

What is kept, and for how long

WhatKept forWho uses it
Topic labels for your latest message: what you are doing, the stack named, what the project needs, its stage30 minutes, for that conversation onlyVibeFree's ad system
A relevance score and keyword-hit count per advertiser, worked out while the message was in memory30 minutesVibeFree's ad system
The labels an ad was chosen with, stored with the record of that ad being shown90 days, like the rest of the record of which ads you sawVibeFree; advertisers see totals per label, from 50 views up
A crisis counter - no labels, no textUp to 24 hoursVibeFree's ad system, only to keep ads untargeted and away from ad networks
The message itselfNever kept for ads-

Your conversation history is stored separately so it is there on your other devices (the VS Code extension keeps its history on your machine instead). That is covered by the Privacy Policy and is not read again to choose VibeFree's own ads.

Crisis and sensitive messages

  • A crisis. Every new message is checked against a wide list of phrases about suicide, self-harm, abuse and emergencies before anything else, and a match is recorded before the reply starts. From then on, beside that message and the next few, ads are untargeted, no sensitive-tier campaign runs and no ad network is asked. The classifier model can also flag a crisis the phrases missed, and when it does, the same rule applies from that point.
  • A sensitive topic. If a message is about your own health or mental health, sexuality or gender identity, ethnicity, religion, politics, money worries, addiction or legal trouble, it is not labelled for targeting, it never feeds a personalised profile, sensitive business categories are kept away from it, and the external networks are not asked about it. Writing software about such a topic for someone else does not count.

Where this can fall short: Both checks are automatic, and they can miss things. The phrase list cannot catch every way of saying something. The sensitive-topic check finishes while the reply is being written, so an ad asked for before it finishes - usually the one shown while the reply loads - is chosen without it, and if you consented to external networks they can be asked about that message. And because the sensitive-topic check is part of labelling, it does not run at all if you have switched contextual ads off: your ads are untargeted anyway, but a sensitive message is not held back from external networks on that ground. The crisis phrase check runs for everyone. If you would rather no advertising company ever saw a message, declining external networks is the choice that guarantees it.

Your three switches, and where they are

ChoiceDefaultWhat changing it does
Contextual adsOn - switch off to objectYour messages are no longer labelled for ads, on every device. Labels already held are deleted at once. You still see ads, chosen without them
Personalised adsOff - switch on to opt inBuilds a small ad profile from your labels (below). Switching it off deletes the profile and your remembered clicks at once
External ad networksAsked once on the web app, the mobile app and VS Code; the desktop app never asks a networkThe only one that sends your conversation outside VibeFree. Declining costs no model and no feature
  • Web app: account menu → Data controls, under "Contextual ads" and "Personalised ads".
  • Mobile app: Settings → Data controls.
  • Desktop app: Settings, under "Contextual ads" and "Personalised ads".
  • VS Code: the account menu in the chat panel has "Contextual ads", "Personalised ads" and, for external networks, "Ad settings".

Contextual and personalised ads are set on your account, so changing either on one device changes it everywhere. The Cookie Policy sets out what each external network receives and how to withdraw consent on each app.

If you switch personalised ads on

  • VibeFree keeps a small profile: a weight for each language and framework your recent messages' labels named, and a guess at how experienced you are. Weights fade by half every 30 days, and a profile nothing is added to for 180 days is deleted.
  • It remembers which advertisers' ads you clicked, for 90 days, so they can show you their ads again or reach people with similar profiles.
  • An advertiser can upload a list of hashed customer emails, but only to leave its existing customers out.
  • Advertisers never see your profile and never learn whether you are in an audience; an audience does not serve until it has 100 people.
  • Sensitive messages never feed it, and if you have switched contextual ads off nothing is added to it. Data controls shows what it says.

"Why this ad?", hide and report

Every ad VibeFree sells itself carries a menu. "Why this ad?" lists exactly which targeting matched - your country, the app, the topic of the conversation - built from the same checks that chose it. Hide removes that advertiser's ad on every device (clear the list in Data controls), and report sends it to a person to review.

What advertisers get

  • Totals, not people. Views and clicks per label, surface and placement, with any group under 50 views folded into "Other".
  • Poll and quiz answers as counts per answer, once five people have answered.
  • A brand assistant chat as counts only - how many chats and messages, never what was said. See the conversational brand agent.
  • Questionnaires and interviews on the earn page are the exception, and one you choose: your answers go to the advertiser under an id made for that survey - never your account or email - and personal details are removed from interview transcripts first.

Frequently asked questions

Does VibeFree read my chats to show ads?

An automated classifier on VibeFree's own infrastructure reads each new message you send and turns it into a few topic labels, such as "fixing a bug", "Python" or "databases". Only the labels are kept, for 30 minutes, and only VibeFree's ad system uses them. You can switch this off at any time.

Can advertisers see what I type?

No. Advertisers never receive your messages or your labels. They see totals per label across everyone their ad was shown to, and only once a label has 50 views. External ad networks are different: they receive your conversation only if you consent to them.

How do I stop my messages being used to choose ads?

Switch off "Contextual ads": in Data controls on the web and mobile apps, in Settings on the desktop app, or from the account menu in the VS Code chat panel. Labelling stops on every device, labels already held are deleted at once, and you still see ads, chosen without them.

How can I make sure no advertising company ever sees a message?

Decline the external ad networks. VibeFree's own labelling never leaves VibeFree, so the external networks - which are sent the conversation itself if you consent - are the only route by which an ad company could see what you write. Declining costs you no feature and no model.

What happens if I write about something personal or upsetting?

A message that reads as a crisis - self-harm, abuse, an emergency - and the next few get only untargeted ads of our own: no ad network is asked about them. A message about your health, sexuality, religion, politics, money worries, addiction or legal trouble is never used to target ads. Both checks are automatic and can miss things, which this page explains.

See also VibeFree privacy and AI providers for where the conversation itself is processed, and the Privacy Policy for the full legal detail.

Related pages