AI code generation creates structural drift — identical helpers across files, broken layer boundaries, inconsistent error handling. Drift detects it deterministically. No LLM — AST analysis and git history.
$ drift analyze --repo . ─────────────────────────────────────────────────── DRIFT SCORE 0.52 ▼ -0.031 improving ─────────────────────────────────────────────────── Top Signals ■ PFS 0.85 Pattern Fragmentation — error handling split across 4 styles ■ AVS 0.72 Architecture Violation — DB imports in API layer ■ MDS 0.61 Mutant Duplicates — 3 near-identical parsers Modules src/api/routes 0.71 │ 12 findings src/services/auth 0.54 │ 6 findings src/db/models 0.23 │ 2 findings
No config. No sign-up. Your repo, your results.
zero-install · runs locally · nothing uploaded
🔒 Your data never leaves your browser. This viewer runs entirely client-side.
If drift found something you can confirm — that's the proof.
Full walkthrough with detailed viewer →
Install drift-analyzer and run `drift analyze --repo .` on this project. Show me the top 3 findings and explain what each one means.
drift init --mcp
Generates .vscode/mcp.json. Copilot Chat discovers drift tools automatically.
drift init --mcp
Same MCP config. Cursor detects drift tools after reload.
drift init --claude
Generates Claude Desktop config snippet. Merge into your existing config.
drift init --mcp
Windsurf reads .vscode/mcp.json natively. No extra setup.
drift mcp --serve
First-class Model Context Protocol integration. Configure once, use from any MCP-capable editor or agent.
drift scan --max-findings 5
Top 5 critical findings as agent context. Focused, not overwhelming — fits any context window.
drift fix-plan --repo .
Prioritized repair tasks as structured output. Your agent can parse and execute them directly.
drift diff --staged-only
Checks only staged changes. Blocks structural regression before the commit lands.
Every Copilot session, every Cursor tab-complete, every Claude fix: code gets added. But nobody checks whether the codebase still makes structural sense across files. Patterns fragment. Layers leak. Helpers multiply. Linters check style. Type checkers check types.
Drift fills that gap — deterministically, on every commit.
_run_async() helpers in 6 filesMutant Duplicates finds AST-level near-clones instantly. Fix-plan prioritizes consolidation into one shared utility.
Architecture Violation Signal catches forbidden imports. drift diff --staged-only blocks the commit before it lands.
Duplicate utility code from AI-generated scaffolding — the #1 pattern in AI-assisted codebases. Agents generate per-file solutions instead of refactoring. Drift surfaces them across module boundaries, with location, cause, and a concrete fix path.
pip install drift-analyzer
Python 3.11+. No config needed to start.
drift analyze --repo .
Scans AST structure + git history. Findings in seconds.
Each finding has a location, cause, severity, and a concrete next step. Add to CI, track over time.
Linters check files in isolation. Drift detects patterns that only emerge across module boundaries.
No LLM, no cloud, no randomness. Same repo, same commit — same results. Every time.
AST-level analysis finds semantic near-duplicates that text-based clone detectors miss.
Every finding has a severity score and trend. Track architecture health across commits, not just pass/fail.
JSON, SARIF, and MCP — structured output that coding agents can consume and act on directly.
One command, your repo, instant findings. No signup, no cloud, no config.