Skip to content

Privacy Policy

Last updated: September 18, 2026

In Short

  • VibeDrift's analysis runs on your machine. Signed out, your code is not uploaded.
  • By default the CLI sends an anonymous usage beacon and checks npm for updates. You can turn both off.
  • Signed in, your scan results sync to your dashboard, including file paths and short excerpts from findings.
  • Deep scans and deep checks upload a sample of your functions for AI analysis, which our AI provider, Anthropic, processes.
  • Drift Sessions keeps its ledger on your machine. Syncing a session to the dashboard is off until you turn it on.
  • This website uses Google Analytics, Microsoft Clarity and Vercel Analytics.
  • We do not sell your data.

What VibeDrift Does

VibeDrift measures drift: how far a codebase has moved away from its own dominant patterns. It is a CLI that runs on your machine, an MCP server your coding agent can query locally, and Drift Sessions, which flags drifting edits inside Claude Code. It connects to our hosted services only for the features that need them: the dashboard, deep scans, deep checks and session sync.

Local Scans

The analysis runs on your machine. When you are signed out, a scan uploads none of your code, file contents or file paths.

Usage beacon. After each scan the CLI sends one anonymous usage beacon, on by default whether you are signed in or not. It holds eleven fields: language, file count, lines of code, scan time, CLI version, finding count, score, and four yes-or-no flags (whether it was a deep scan, whether git history was available, whether declared conventions such as a CLAUDE.md were found, and whether you were signed in). It holds no code, no file paths, no project name and no user identifier. Like any web request, it reaches our server from your IP address.

Update check. The CLI asks the npm registry for the latest version, at most once a day.

Turning them off. Run vibedrift telemetry disable or set VIBEDRIFT_TELEMETRY_DISABLED=1 to stop both. Run a scan with --local-only and it makes no network calls at all, even when you are signed in.

Signed-In Scans and the Dashboard

When you are signed in, each scan saves its results to your dashboard unless you pass --local-only. The upload holds your scores, your findings with their repo-relative file paths and function names, short evidence excerpts from those findings (a single trimmed line, a few per file), the project name, and the rendered HTML report. It does not hold full files or full function bodies. --private replaces the project name with a hash. Turning the usage beacon off does not stop this upload; signing out or --local-only does.

Report opens. The HTML report of a signed-in scan sends one ping with the scan id and the time when you open it, unless the beacon is turned off. Reports made signed out contain no ping.

Pro fix prompts. On Pro, a signed-in scan also sends code so we can write copy-ready fix prompts: for up to 10 findings, the drifting snippet and up to three excerpts of reference files, each up to 60 lines, with their repo-relative paths. A reference file of 60 lines or fewer is sent whole.

Deep Scans and Deep Checks

Deep scans (--deep) upload a sample of your functions, not your files: at most 30 functions per run, each cut to 60 lines, with their names and repo-relative paths, plus up to 20 short deviation records of at most 200 characters each and the project name. A function under 60 lines is sent in full.

Deep checks are an optional flag on two of the MCP tools, off unless your agent sets it. The first deep check in a repo sends every function the CLI extracts, each cut to 60 lines, with names and paths, so they can be embedded. Later checks send the function being written and the few existing functions it might duplicate. Without the flag, the MCP tools run entirely on your machine.

Our API runs this analysis and uses Anthropic's API for the AI steps. The same applies to coherence reports and summaries. Our API does not save the function bodies it receives to our database; it saves your usage count and, for a signed-in scan, the results described above.

Drift Sessions

Consent. Nothing is recorded in a repo until you say yes for it. Running vibedrift enable is that yes, and vibedrift decline turns recording off.

The local ledger. Each session is written to a file on your machine under ~/.vibedrift/sessions/, readable only by your user account. It records your prompts with secrets in recognizable formats masked, the path and line count of each edit, the flags raised, the agent's decisions and the outcomes. It does not record your source code, diffs, the text of shell commands or the agent's transcript. Masking is pattern based, so a secret written as plain prose may not be masked. To re-check a flagged function, VibeDrift keeps a tokenized copy of that one function next to the ledger (up to 400 tokens, without strings or comments). It stays on your machine.

Plan checks. Drift Sessions is a Pro feature with a one-time trial, so an enabled session checks your plan or trial status with our server. A session counts toward the trial once its edits reach our server.

Hosted sync is off until you run vibedrift watch-session --sync on. It then uploads derived facts about each session: the session id, project hash, agent name, event types and times, which check fired, pattern labels, similarity scores, flag ids, outcomes, the agent's decisions and line counts. File paths are replaced by per-repo pseudonyms. It never uploads your prompts, your code or the advisory text. A separate opt-in, --names on, uploads real repo-relative file paths (never their contents) so the dashboard can show names; --names off deletes them.

Account, Payments and Messages

Account. Your email address, used to sign you in with Google or a magic link, plus your plan and subscription dates.

Payments are processed by Stripe. We never see or store your card number. We keep your Stripe customer id, plan and billing period.

Feedback. If you use vibedrift feedback or the dashboard widget, we store your message and, if you give it, your email so we can respond.

Contact form. We store the name, email, company and message you submit.

This Website

vibedrift.ai uses Google Analytics, Microsoft Clarity and Vercel Analytics to understand how visitors use the site. Microsoft Clarity records how you interact with pages, such as clicks and scrolling. Google Analytics and Microsoft Clarity set their own cookies.

Who Processes Your Data

  • Supabase: our database and sign-in
  • Fly.io: runs our API
  • Vercel: hosts this website, and Vercel Analytics
  • Anthropic: AI analysis for deep scans, deep checks, fix prompts, coherence reports and summaries
  • Stripe: payments
  • Google: Google Analytics, and Google sign-in if you choose it
  • Microsoft: Microsoft Clarity

We do not sell your data.

How Long We Keep It

We keep your account, scan results, stored reports and synced session data until you delete them or delete your account. Shared report links do not expire on their own.

Deleting Your Data

You can delete your account from the dashboard Settings page. This removes your user record and, with it, your scans, tokens, stored reports and synced session data. We keep a record that the deletion happened.

On your machine, VibeDrift keeps its own state in ~/.vibedrift/: your sign-in token, caches, local scan history and session ledgers. Delete that folder to remove it.

Cookies

We use an authentication cookie (a Supabase session) to keep you signed in. Google Analytics and Microsoft Clarity set their own analytics cookies, as described above.

Changes

We may update this policy as the product evolves. Material changes will be communicated via email to registered users.

Contact

Questions about privacy? Send them through the contact form.