VibeDrift/VibeDrift

GitHub: VibeDrift/VibeDrift

一款通过 MCP 协议检测和预防 AI 生成代码偏移的本地代码一致性工具,帮助开发者在 AI 辅助编程中保持代码库的统一风格与架构规范。

Stars: 1 | Forks: 0

VibeDrift # VibeDrift **代理式交付。保持一致性。** [![网站](https://img.shields.io/badge/vibedrift.ai-f0c000?style=flat&labelColor=1a1a1a)](https://vibedrift.ai) [![npm](https://img.shields.io/npm/v/@vibedrift/cli.svg?color=f0c000)](https://www.npmjs.com/package/@vibedrift/cli) [![许可证: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
VibeDrift 专门检测 AI 生成代码中的偏移(drift):即新代码偏离代码库其余部分已遵循模式的情况。它在本地运行,根据代码库自身的约定对仓库进行评分,并精准指出存在问题的代码文件。你的代码永远不会离开你的本地计算机。 保持代码一致性的最快方法是在 Agent 编写代码的*同时*检查偏移。[MCP server](#mcp-server) 让 Claude Code 和 Cursor 能够实时、循环地访问你仓库的约定,从而确保新代码在首次编写时就能保持匹配。 ## 快速开始 ``` npx @vibedrift/cli ``` 就这么简单。无需安装,无需注册。它会扫描当前目录并打开一个交互式 HTML 报告。 如果你愿意,也可以全局安装: ``` npm i -g @vibedrift/cli vibedrift # scan ./ vibedrift ./path/to/project # scan a specific path ``` ## 支持的语言 JavaScript, TypeScript, Python, Go, Rust。 ## 检测内容 - 架构不一致(例如:一半的 handler 使用了 repository 模式,而另一半直接执行了原生 SQL) - 隐性重复:两个功能相似但名称不同的函数 - 命名、导入、错误处理、异步风格和日志记录方面的约定偏移 - 安全漏洞:硬编码的密钥、注入风险、未经过滤的输入 - 死代码、复杂度热点,以及未完成或占位的实现 VibeDrift 会学习你代码库的主导模式,并标记出偏离该模式的代码。请参阅[评分指南](https://vibedrift.ai/guide)了解检测结果是如何汇总为分数的。 ## 命令 ``` vibedrift [path] Scan a project (default command) vibedrift watch [path] Re-scan on file changes (requires login) vibedrift mcp Run the MCP server (Claude Code / Cursor) vibedrift login / logout Account auth vibedrift status Account, plan, and token vibedrift hook Install or remove a git pre-push drift gate vibedrift doctor Diagnose install, auth, and API vibedrift update Update to the latest version ``` 常用扫描选项: ``` --format output format (html is the default) --fail-on-score exit 1 if the score is below n (CI gate) --diff [ref] scan only files changed in git (vs HEAD, or vs a ref/branch) --deep AI-powered deep analysis (requires login) --include / --exclude filter the files scanned (repeatable) --write-context write committable .vibedrift/ context files --local-only skip every network call (fully offline) ``` 运行 `vibedrift --help` 获取完整列表。 ## 深度扫描 `vibedrift --deep` 增加了本地静态检查无法实现的云端分析功能:语义重复检测、名称与行为意图校验,以及生成综合性一致性报告。你可以使用 `--diff` 将其范围限定在你的改动集内: ``` vibedrift login vibedrift . --deep # full-repo deep scan vibedrift . --deep --diff # deep-scan only what you changed (fast pre-PR check) vibedrift . --deep --diff main # deep-scan everything that differs from a branch ``` 深度扫描仅发送代码片段(绝不包含完整文件或文件路径),并且在内存中处理且不予存储。它需要一个免费账号。请访问 [vibedrift.ai](https://vibedrift.ai) 了解深度扫描包含的具体内容。 ## MCP server VibeDrift 内置了 MCP server,让 AI 编码 Agent 在编写代码时能够参考你仓库自身的约定,从而将偏移检测转化为偏移预防。它暴露了五个工具: - `get_intent_hints` 读取你的 `CLAUDE.md` / `AGENTS.md` / `.cursorrules` 中声明的约定 - `get_dominant_pattern` 返回仓库在某个维度上的主流模式,并提供可供参考的示例 - `check_file_drift` 检查文件是否符合仓库的模式 - `find_similar_function` 查找现有的近似重复代码,以便 Agent 复用而非重写 - `validate_change` 检查拟定的新函数是否会引入偏移或导致代码重复 这些工具在你的本地计算机上运行,不发送任何代码,也无需登录。它们会在首次使用时自动构建仓库的基准线。 ### 在任何 MCP client 中安装 VibeDrift 是一个标准的 [MCP](https://modelcontextprotocol.io) server,通过 stdio 使用 `npx -y @vibedrift/cli mcp` 启动。 **Claude Code**(会自动为你写入配置): ``` claude mcp add vibedrift -- npx -y @vibedrift/cli mcp ``` **Cursor, Claude Desktop, Windsurf, Cline, VS Code, Zed 及其他工具** 在其 MCP 配置中使用相同的命令: ``` { "mcpServers": { "vibedrift": { "command": "npx", "args": ["-y", "@vibedrift/cli", "mcp"] } } } ``` 如果工具返回 `no_baseline`,请在该仓库中运行一次 `vibedrift` 以构建基准线。 ### 不使用 MCP 对于不支持 MCP 的 Agent,同样的五个工具也可以作为普通的导入包或基于同一引擎的 Agent Skill 使用: - **导入:** `import { validateChange, findSimilarFunction } from "@vibedrift/cli/tools"`(参见 [docs/tools-api.md](./docs/tools-api.md)) - **Agent Skill:** 位于 [`skills/vibedrift/`](./skills/vibedrift/SKILL.md) 的独立技能包 ## CI 集成 GitHub Action 会在 Pull Request 上运行 VibeDrift,发布分数差异评论,并可以使检查失败: ``` # .github/workflows/vibedrift.yml name: VibeDrift on: [pull_request] permissions: pull-requests: write jobs: drift-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: skhan75/vibedrift-actions@v1 with: fail-on-score: 70 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ``` 请查看 [Action 仓库](https://github.com/skhan75/vibedrift-actions) 获取所有输入和输出信息。 ## 隐私 - **你的代码永远不会离开你的计算机。** 绝不会发送任何源码、文件内容或文件路径。 - **匿名扫描信标,默认对所有人开启。** 每次扫描后,VibeDrift 会发送一个微小的匿名信标:包括语言、文件数量、代码行数、扫描时间、CLI 版本、检测结果数量以及分数。不包含任何代码、路径或标识符。可以通过 `vibedrift telemetry disable`、`VIBEDRIFT_TELEMETRY_DISABLED=1` 或 `--local-only` 关闭此功能。 - **更新检查。** 每天一次,扫描时会检查 npm registry 是否有更新的版本(已缓存,静默失败,在 `--local-only` 下跳过)。 - **`--local-only`** 会跳过所有的网络请求,即使在已登录的情况下也是如此。 - 认证状态保存在 `~/.vibedrift/config.json`(权限为 0600);扫描历史记录保存在 `~/.vibedrift/scans/`,绝对不会出现在你的项目目录树中。 ### 环境变量 | 变量 | 用途 | |---|---| | `VIBEDRIFT_TOKEN` | 用于 CI 或非交互环境的 Bearer token | | `VIBEDRIFT_API_URL` | 覆盖默认的 API 基础 URL | | `VIBEDRIFT_TELEMETRY_DISABLED` | 设置为 `1` 可关闭信标和更新检查 | ## 许可证 MIT。请参阅 [LICENSE](./LICENSE)。CLI 完全在你的本地机器上运行;与之通信的可选云端深度扫描服务是一个独立的托管产品。 ## 链接 - **文档与评分指南:** [vibedrift.ai/guide](https://vibedrift.ai/guide) - **网站:** [vibedrift.ai](https://vibedrift.ai) - **问题反馈:** [GitHub Issues](https://github.com/VibeDrift/VibeDrift/issues) - **社区:** [Discord](https://discord.gg/YVcQ65Jt3Q)
标签:AI编程助手, MCP, MITM代理, SOC Prime, 代码一致性检测, 可视化界面, 开发工具, 数据可视化, 日志审计, 暗色界面, 自动化攻击, 逆向工具, 错误基检测, 静态代码分析