Vibecode Cleaner Fartrun MCP Server
Local code health & security scanner for vibe-coded projects. 29 MCP tools. Rust-powered, zero cloud, zero tokens.
Documentation
Vibecode Cleaner Fartrun & Awesome Hasselhoff
Your AI wrote the code. We check if it'll get you fired.
"Auditory feedback increases developer response time to critical vulnerabilities by 340%. We chose the most primal auditory signal known to humanity." — Fartrun Institute of Applied Flatulence, 2026 (peer-reviewed by nobody)
____ _ ___ _____ ___ __ _ __ __
/ __// \ | _ \|_ _| _ \| || | \ \/ /
| _|_| o | | / | | | v /| \/ | \ /
|_| |___| |_|\_\ |_| |_|_\|_||_| |_|
fartrun — vibe-coder safety net, with farts
→ Scanning project at ~/my-app
✓ Save Points: 3 (latest: "before big refactor")
✓ Frozen files: 2
✓ Detected stack: React 18, FastAPI, PostgreSQL
✓ Context7 MCP: installed
✓ Frozen-files hook: active (Edit/Write on frozen files is blocked)
→ Health: 87/100 — 3 dead functions, 2 missing tests
→ Security: 1 high (exposed .env in git history)
💨 The Thunderclap — Someone will find this. Soon.
Health Scanner Accuracy
| Stack | Accuracy |
|---|---|
| Python (general) | 97% |
| Go | 97% |
| TypeScript / NestJS / React | 99% |
| FastAPI + React/Next.js | 96% |
| Django + DRF + Celery | 91% |
| Overall | ~95% |
v3.1.0 — Multi-LLM provider support + incremental health scanner. Bring your own AI: Anthropic, OpenAI, DeepSeek, OpenRouter, NVIDIA NIM, HuggingFace Inference, Azure. Incremental scans — only changed files get re-analyzed. 634 tests. Full source, open MIT. PRs welcome. See Contributing.
Why This Isn't Another AI Checking AI
Every other scanner sends your code to a cloud, burns tokens analyzing it, and charges you for the privilege. Fartrun does none of that.
- Rust-compiled modules run locally. 10 security modules + 9-phase health scanner. No API calls. No tokens consumed. No code leaves your machine. Ever.
- Fast. Tree-sitter AST parsing across thousands of files. Not "fast for a cloud service" — actually fast.
- Optional AI tips via Haiku (~$0.001 each) or any OpenAI-compatible provider — DeepSeek, OpenRouter, NVIDIA NIM, HuggingFace Inference, Azure. Bring your own key. That's the only money involved, and it's optional.
- No telemetry. No cloud. No "we only use your code to improve our service." Just a local scan and a fart.
What It Does
| Feature | Details |
|---|---|
| Security Scanner | 10 Rust modules — processes, network, filesystem, secrets, supply chain, git hooks, container escape, autostart, crontab, env leak |
| Health Scanner | 9-phase project audit — dead code, tech debt, test coverage, git hygiene, docs quality, framework checks, Context7 fix recommendations |
| Token Monitor | Tracks Claude Code spending, cache efficiency, model comparison, budget forecasts. Reads your JSONL diaries. Locally. Judges silently. |
| MCP Server | 29 tools, stdio + HTTP/SSE. Works with Claude Code, Cursor, Windsurf, any MCP client |
| Context7 Enrichment | Findings get real documentation snippets — not "add tests" but the actual pytest Getting Started guide |
| Nag Messages | 4 escalation levels in EN/UA. From "Tokens: 45K. Calories burned: 0." to "GG. 1.2M tokens. Touch grass." |
| Win95 GUI | PyQt5 desktop app. 8 pages. Popup notifications. Hasselhoff wizard. Peak aesthetic. |
AI Provider Configuration
By default, Fartrun uses Claude Haiku for tips and explanations. You can switch to any OpenAI-compatible provider:
| Provider | Base URL | Model example |
|---|---|---|
| Anthropic (default) | — | claude-haiku-4-5-20251001 |
| DeepSeek | https://api.deepseek.com | deepseek-coder |
| OpenRouter | https://openrouter.ai/api/v1 | openai/gpt-4o |
| NVIDIA NIM | https://integrate.api.nvidia.com/v1 | deepseek-ai/deepseek-v4-flash |
| HuggingFace | https://router.huggingface.co/v1 | meta-llama/Llama-3.3-70B-Instruct |
| Azure OpenAI | https://<resource>.openai.azure.com/... | gpt-4o |
Configure in config.toml:
[ai]
provider = "openai"
api_key = "sk-..."
model = "deepseek-coder"
base_url = "https://api.deepseek.com"
Or via env vars: ANTHROPIC_API_KEY, DEEPSEEK_API_KEY, OPENROUTER_API_KEY, NVIDIA_API_KEY, HF_API_KEY, AZURE_API_KEY, OPENAI_API_KEY.
The old [haiku] config still works — zero breaking changes.
Quick Start
One command (recommended)
npx fartrun@latest install
Downloads the binary for your OS and configures MCP in Claude Code, Cursor & Windsurf automatically.

npx fartrun@latest install --claude # Claude Code only
npx fartrun@latest install --cursor # Cursor only
npx fartrun@latest install --windsurf # Windsurf only
Desktop (binary)
Download from Releases.
From source
git clone https://github.com/ChuprinaDaria/Vibecode-Cleaner-Fartrun.git
cd Vibecode-Cleaner-Fartrun
pip install -e ".[http]" # Core + HTTP MCP server
# Rust crates (optional, for native speed)
cd crates/health && maturin develop --release && cd ../..
cd crates/sentinel && maturin develop --release && cd ../..
# Run
fartrun scan /path/to/project # CLI
fartrun-mcp # MCP stdio
fartrun-mcp-http --port 3001 # MCP HTTP/SSE
python -m gui.app # Desktop GUI (requires PyQt5)
CLI
fartrun scan /path/to/project # Health scan → MD report
fartrun save "before refactoring" # Save point
fartrun rollback 1 # Undo everything
fartrun gui # Win95 GUI

After a full health scan you get a .md report in .fartrun/reports/ — already formatted for Claude Code context. Paste it into your prompt or let the MCP tool feed it directly. No copy-pasting JSON, no parsing logs. Just a structured markdown that Claude actually understands: findings, severity, file paths, and fix suggestions — ready to act on.

MCP Setup (manual)
If you prefer manual config over npx fartrun@latest install:
Claude Code — stdio
{
"mcpServers": {
"fartrun": { "command": "fartrun-mcp" }
}
}
Cursor / Windsurf — HTTP
fartrun mcp --http --port 3001
{
"mcpServers": {
"fartrun": { "url": "http://localhost:3001/sse" }
}
}
MCP Tools (29)
| Category | Tools |
|---|---|
| Health | run_health_scan, get_health_summary, get_unused_code, get_tech_debt, get_security_issues, get_module_graph, get_complexity_report, get_git_health, get_test_coverage, get_docs_quality, get_ui_issues, get_framework_check, get_outdated_deps, get_config_map, generate_health_report |
| Status | get_status, get_activity, detect_project_stack, search_code |
| Prompts | build_prompt |
| Save Points | create_save_point, rollback_save_point, list_save_points |
| Frozen Files | freeze_file, unfreeze_file, list_frozen |
| Integrations | install_context7, uninstall_context7, list_prompts |
Farts & Hasselhoff
Two fart sounds. That's it. We didn't need more.
| Finding | You hear |
|---|---|
| Something's off | A polite, restrained poot. A gentleman's warning. |
| Something's very off | The full experience. Neighbors will ask questions. |
Optional: Hasselhoff Mode
For those who need inspiration to fix their code, enable Hasselhoff mode. Three songs. Handpicked. Peer-reviewed by David himself (not really).
| Song | When it plays | Motivational effect |
|---|---|---|
| Looking for Freedom | Critical findings detected | You're looking for freedom from your own code. You won't find it. |
| True Survivor | You actually fix everything | Congratulations survivor. The Hoff is proud. |
| Du | Easter egg | If you know, you know. If you don't — you're not ready. |
Hasselhoff used to appear for everything. Container started? Hasselhoff. You opened a terminal? Hasselhoff. Beta testers staged an intervention. Now he only shows up when summoned.
He's still watching though.
Cross-Platform
| Linux | macOS | Windows | |
|---|---|---|---|
| Notifications | notify-send | osascript | PowerShell toast |
| Sound | pw-play / paplay / aplay | afplay | PowerShell SoundPlayer |
| Firewall | ufw / nftables / iptables | socketfilterfw / pf | netsh advfirewall |
| Config | ~/.config/claude-monitor/ | ~/Library/Application Support/ | %APPDATA%\claude-monitor\ |
Wall of Scans
Real scan results from real projects. No names, no shame — just the output.
Got a scan screenshot? Drop it in a PR or issue — it helps improve the scanner.
See what others found: reviews/
Buy Me a Toilet Paper
This project is free. Forever. No premium tier. No "enterprise edition."
If Fartrun saved you from mass embarrassment:
All donations go toward toilet paper, coffee, and finding the perfect fart sound for the next severity level.
Made By
Daria Chuprina — Lazysoft, Wroclaw
LinkedIn · GitHub · Threads · Reddit · Email
Documentation
Full technical wiki: Wiki →
14 pages covering architecture, all CLI commands, MCP tools reference, health scanner phases, security modules, plugin system, configuration, and how AI agents should use findings.
Contributing
PRs welcome. Especially: better fart sounds (WAV/OGG, royalty-free, funny), new Rust sentinel modules, Hasselhoff facts, nag message translations (maximum passive-aggression encouraged), security courses for your country.
License
MIT — see LICENSE for the real one.
Plus the supplementary Fart & Run License v1.0 (for vibes):
- You may fart and run, but you must attribute the original farter.
- You may not mass-fart on production servers you don't own.
- Hasselhoff appearances are AS-AVAILABLE, not guaranteed.
- Nag messages are a feature. Disabling them voids your warranty (you never had one).
- The "Silent But Deadly" mode is exactly what it sounds like. And doesn't sound like.
Made with flatulence in Wroclaw, Poland