Questions, answered.
Frequently asked questions about VibeDrift.
How is this different from ESLint or Prettier?
ESLint checks files. VibeDrift checks codebases. Linters validate one file at a time against syntax rules, they have no idea that orderService.ts uses raw SQL while userService.ts uses a repository pattern. VibeDrift's drift detectors compare files against each other to find architectural contradictions, naming inconsistencies, and duplicated logic across the entire project.
How is this different from Claude memory, Cursor rules, or Copilot context?
Those are input systems, they give the AI context so it generates better code. VibeDrift is an output system, it measures whether the code that actually shipped is internally consistent. Claude memory helps Claude remember your preferences, but it doesn't guarantee every file generated across 200 sessions actually followed them. VibeDrift closes that feedback loop. It's the difference between telling your intern 'use the repository pattern' and opening the repo to verify they actually did.
Can I run VibeDrift inside my AI coding agent?
Yes. On Claude Code it is a plugin: /plugin marketplace add VibeDrift/VibeDrift, then /plugin install vibedrift@vibedrift, and a run-once /vibedrift:setup takes the repo from zero to a working baseline. Any other MCP client that supports stdio servers can connect to the same MCP server with one config block, walked through in the guide. The difference is timing: instead of flagging drift after the code ships, your agent queries VibeDrift while it writes, asking what the dominant pattern in this directory is, whether a function like this already exists, and whether this change matches the rest of the codebase. The local MCP tools are free for everyone, including signed-out users, and they run on your machine. Only the optional cloud deep checks are metered, drawing from your shared scan pool. And when a lot has changed since your last deep scan, the agent offers to run one right inside your editor.
What is Drift Sessions, and how is it different from watch mode?
Drift Sessions (preview) puts VibeDrift inside your Claude Code session instead of after it. After installing the CLI with npm i -g @vibedrift/cli, run vibedrift enable --dir ~/work once, pointing at the folder your repositories live in: that covers every repository under it, including ones you clone later. Typing the command is the consent. vibedrift enable on its own does the same for just the repository you are standing in. From then on, as your agent edits files, VibeDrift checks the edits it can check against your repo's own patterns (async style, return shape, data access, and duplicates of functions you already have) and hands the agent a one-line advisory when something drifts, so it can fix it in the same turn. It advises and never blocks: if a hook hits an error or a timeout, it exits quietly and your agent carries on. The agent can accept, park, or decline each flag with a reason, and a finding only counts as resolved when the same check re-runs on the changed code and passes. Everything is recorded to a local, append-only ledger on your machine that holds no source code and masks secrets in recognizable formats. vibedrift watch-session is the optional live viewer, a running tape of who acted, what was flagged, and what was decided. That is different from vibedrift watch, which re-scans the whole repo on every file change to refresh your context files. Drift Sessions is a Pro feature with a one-time trial of five sessions. You can opt into the hosted sessions page with --sync on, which uploads derived facts about a session (event types, categories, outcomes, and counts), never your code or prompts; file paths travel as per-repo pseudonyms unless you choose to share names. Your local ledgers are always yours.
I work in a folder with several repos, what do I set up?
One thing, once: vibedrift enable --dir ~/work, pointing at the folder that holds them. That covers every repository under it, including ones you clone later, so there is nothing to run inside each repo and nothing to remember next week. VibeDrift shows you the resolved path and asks you to confirm by typing, and it refuses your home directory and filesystem roots. If you want one repository left out, run vibedrift decline inside it; an explicit no always wins over the folder grant. On the dashboard, an afternoon where your agent moved between three of those repositories is one session on one row, with the repositories it touched named on it; open the row and you see each repository’s own edits, how many of those edits were actually checked, and what was flagged, fixed, parked or declined in it. VibeDrift can only check a repository it has learned the patterns of, so a repository you have never scanned records its edits and marks them unchecked, shown as a dash rather than a zero. Scan it once with vibedrift <path> and its sessions are checked from then on. Drift Sessions runs in Claude Code today.
What's the difference between a local scan and a deep scan, and when do I need each?
A local scan runs its analysis on your machine in seconds, free and unlimited. It uses static analysis, cross-file dominance voting, and the Code DNA engine to catch structural drift: contradicting architectural patterns, naming and import inconsistencies, async style, and obvious near-duplicate functions. Run it often, in CI on every PR, and as the always-on baseline your agent reads from. (Continuous watch mode that auto-rescans on every change is a Pro convenience on top.) A deep scan adds a cloud pass on a sample of your functions (ML embeddings plus a Claude validation step) and looks for what structure alone cannot see: intent mismatches, where a function's name lies about what its body actually does, and semantic duplicates, two functions that do the same thing with no shared code. It uses real compute, so it is metered: Free includes 1 a month, Pro includes 12 per billing cycle, and top-ups (5 scans for $10) work on any plan, Free included. Reach for a deep scan at higher-stakes moments, before a release, when you inherit an unfamiliar or messy codebase, or when your agent flags that a lot has changed since your last one. Rule of thumb: local for continuous every-change hygiene, deep for periodic high-confidence audits.
Why did my Vibe Drift Score change after updating the CLI?
When we refine how the score is calculated, we bump an internal scoring version so numbers from before and after are never compared as if they mean the same thing. Your previously saved scores are kept exactly as they were, and the new method applies only to new scans. 0.20.2 is the largest example so far, and worth understanding: the old score could go up when a problem was added, because a category that had found almost nothing was allowed to lift the overall number above what the categories that did measure something reported. Closing that means most repositories score lower on the first scan after upgrading, and many change letter grade. Across nine open-source repositories we scanned before and after, seven moved and six changed grade. Your code did not get worse; the ruler got stricter about what it will average in. Earlier examples were much smaller: 0.20.1 made phantom-export detection syntax-tree-grounded, and 0.16.0 taught the security check to read Python, Go, and Rust routes. When any of this happens, the CLI shows a one-time note pointing to the release notes.
How is this different from CodeRabbit or Qodo?
CodeRabbit and Qodo review diffs, they analyze what changed in a single PR. VibeDrift reviews codebases, it compares files against each other across the entire project. A PR reviewer can't tell you that the new handler you're adding uses raw SQL while 7 siblings use a repository pattern, because it only sees the diff. VibeDrift sees the whole codebase and flags the contradiction.
Does it work on old or legacy codebases?
Yes. VibeDrift reads your git history and weights recent code higher than old code (90-day half-life). If your team has been migrating from raw SQL to a repository pattern over the last 6 months, VibeDrift recognizes the migration and classifies old files as 'legacy' (migrate when convenient) rather than 'drift' (fix now). It also reads your CLAUDE.md and .cursorrules to understand your team's declared conventions.
Does my code get sent anywhere?
The analysis runs on your machine. Signed out, a scan uploads none of your code, file contents, or file paths, and the local MCP tools run entirely on your machine. By default the CLI sends a small anonymous usage beacon after each scan (eleven fields such as language, file count, lines of code, scan time, CLI version, finding count, and score; no code, no file paths, no identifiers) and checks npm about once a day for updates. Turn both off with vibedrift telemetry disable (or set VIBEDRIFT_TELEMETRY_DISABLED=1), or run --local-only for a scan with no network calls at all. Signed in, each scan also saves its results to your dashboard, including repo-relative file paths, function names, and short evidence excerpts from findings; --local-only skips that too. A deep scan, or a deep check your agent asks for, uploads a sample of your functions for AI analysis, which our AI provider, Anthropic, processes. The privacy policy lists everything that leaves your machine and who processes it.
What about configuration drift or data drift?
VibeDrift detects documentation drift (your CLAUDE.md says 'use repository pattern' but the code uses raw SQL) and partially covers configuration drift (inconsistent config access patterns across files). Data drift is a different domain entirely (MLOps, statistical distribution shift in model inputs) and not something we cover. We stay focused on code-level behavioral drift where AI sessions introduce contradictions.
What languages are supported?
TypeScript, JavaScript, Python, Go, and Rust. JavaScript and TypeScript get the fullest coverage today: scoring, duplicate detection, and Security Consistency run on all five, while several convention detectors, including exports, error handling, and test structure, are JavaScript and TypeScript only.
Will it slow down my CI?
Local scans take seconds, and the time grows with the size of the repo. Signed out, the analysis runs on the CI machine itself, and the only network traffic is a small anonymous usage beacon and a daily npm update check, both turned off by --local-only or vibedrift telemetry disable. The GitHub Action runs as its own job, alongside your existing checks.
Who is this really for?
Anyone shipping AI-generated code across multiple sessions. Solo developers feel it after a few weeks, the codebase starts contradicting itself. Teams feel it faster, 5 developers using Cursor or Claude across 500 files means 5 independent AI sessions making different architectural decisions. Engineering leaders at companies with 20+ engineers using AI tools are where VibeDrift's value compounds the most, but the tool works for codebases of any size.
What's the difference between Free, Pro, and Enterprise?
Free ($0) is the full local scanner: unlimited local scans, the full HTML report, the local MCP tools, 1 deep scan per month, a one-time trial of 5 Drift Sessions, and a dashboard with your latest scan. Pro ($15/mo) adds Drift Sessions (watch your agent's session live; Claude Code today) beyond the trial, 12 deep scans per billing cycle with the coherence report and copy-ready fix prompts, watch mode, the git pre-push gate, and full scan history and trends. Enterprise is for teams that need something the plans don't cover: talk to us. Out of deep scans? Top up 5 scans for $10 on any plan, Free included. Credits never expire.
Can I buy more deep scans without upgrading?
Yes. When you run out of deep scans, top up 5 scans for $10, on any plan, Free included. Top-up credits never expire and go into a shared pool used by CLI deep scans and in-editor deep checks.
Still have questions?
Join our Discord for direct support, feedback, and the latest updates.
Join the Discord →