入门TypeScript

jscpd源代码复制粘贴检测利器,支持223种格式

jscpd 是一个高效的源代码复制粘贴检测工具,支持223种编程语言和文件格式。它专为AI流水线设计,提供token高效的报告器、技能和MCP服务器,帮助开发者快速定位代码克隆,提升代码质量和可维护性。

5.7K 星标
235 分叉
48 问题
7 浏览
TypeScript
MIT
收录日期

项目概述

jscpd 是一个高效的源代码复制粘贴检测工具,支持223种编程语言和文件格式。它专为AI流水线设计,提供token高效的报告器、技能和MCP服务器,帮助开发者快速定位代码克隆,提升代码质量和可维护性。

代码重复是个老问题。你接手一个项目,打开某个文件,发现大段大段的代码块似曾相识——要么是复制粘贴留下的痕迹,要么是团队协作时没清理的冗余。手动找?不现实。grep?只能搜关键词,没法定位结构相似的片段。这时候你需要一个专业的检测工具,jscpd 就是一个不错的选择。

为什么选择 jscpd?

jscpd 的全称是“JavaScript Copy/Paste Detector”,但它早已不局限于 JS。目前支持 223 种格式,从主流语言(Python、Java、C++)到配置文件、Markdown 都能处理。它的检测引擎基于抽象语法树(AST)与文本相似度结合,既能识别精确复制,也能发现 经过变量重命名或换行调整的克隆。这在实际项目中很常见:开发者复制一段逻辑,改了变量名和注释,但结构本质相同。

对于大型代码库,jscpd 的性能也经过优化。它支持 增量检测,只扫描变更的文件,并且可以设置最小 token 数来过滤掉短小的重复片段(比如 getter/setter 样板代码)。输出格式多样:JSON、HTML、XML 等,方便集成到 CI/CD 流水线中。

AI 时代的独特设计

jscpd 的维护者特意为 AI 工作流做了适配。它提供了 token-efficient reporter,能够以极少的 token 量输出检测结果,方便传给大语言模型做进一步分析或修复建议。此外还内置了 Skill 和 MCP 服务器(Model Context Protocol),允许 AI Agent 直接调用 jscpd 的能力。这意味着你可以写一段自然语言指令:“检测当前项目中的重复代码,并生成重构方案”,然后由智能体完成整个流程。

听起来挺玄,但实际跑一遍就懂。它的 CLI 使用简单:

  • jscpd ./src – 扫描 src 目录下的所有文件
  • jscpd --formats typescript,markdown – 只检测特定格式
  • jscpd --min-lines 5 --min-tokens 50 – 设置阈值,避免误报

结果会列出重复片段的位置、行数和相似度百分比,并用颜色标记。直观且精准。

实际使用场景:代码审查与重构

想象一下你在做一次大型重构:需要把某个功能模块抽取成独立库。先跑一遍 jscpd,迅速定位哪些地方有重复实现。然后你就能集中精力合并这些代码,而不是在数千个文件中凭感觉猜测。对于新加入团队的开发者,jscpd 也能作为代码质量检查的一环——在 CI 中一旦发现克隆比例超过阈值,就阻断合并或发出警告。

一个值得注意的细节是 jscpd 不依赖外部服务,所有检测都在本地完成,保证了代码安全。这点对金融、医疗等合规要求严格的行业尤其有意义。

局限与说明

没有任何工具是完美的。jscpd 更擅长检测结构相似的“语法克隆”,对于语义相同但实现差异巨大的片段(比如一个用递归、一个用迭代),它可能无法识别。此外,检测结果需要人工甄别:有些“重复”可能是业务需要的统一逻辑(如校验规则),不应盲目删除。最后,对于超大型单体仓库(百万行级别),初始扫描仍需要一些时间,虽然比同类工具已经快不少。

jscpd 是一个实用、专注且持续更新的开源项目。如果你正在为代码重复感到头疼,不妨给它几分钟时间——也许能省下之后几小时的排查功夫。

代码克隆检测复制粘贴检测jscpd源代码质量编程工具代码审查重复代码检测开源工具AST检测CI集成

项目评分

0.0 (0 评价)

分享

常见问题

jscpd: 源代码复制粘贴检测利器,支持223种格式 是什么?

jscpd 是一个高效的源代码复制粘贴检测工具,支持223种编程语言和文件格式。它专为AI流水线设计,提供token高效的报告器、技能和MCP服务器,帮助开发者快速定位代码克隆,提升代码质量和可维护性。

jscpd: 源代码复制粘贴检测利器,支持223种格式 用什么语言开发?

jscpd: 源代码复制粘贴检测利器,支持223种格式 主要使用 TypeScript 开发。

jscpd: 源代码复制粘贴检测利器,支持223种格式 使用什么开源协议?

jscpd: 源代码复制粘贴检测利器,支持223种格式 基于 MIT 协议开源。

相关项目

暂无结果

探索更多

相似工具

Cursor

Cursor

一款基于 VS Code 二次开发的智能代码编辑器,以“原生内置 AI”为核心卖点。它不依赖插件,而是将 AI 深度植入编辑器底层,能够理解整个项目的上下文代码库,支持无缝迁移 VS Code 的所有配置和插件。

Google Antigravity

Google Antigravity

Antigravity 支持多模型,包括 Gemini 3 Pro、Claude Sonnet 4.5、GPT-OSS,开发者可以在同一环境中选择最适合任务的模型。

Codex

Codex

OpenAI Codex 是由 OpenAI 开发的 AI 编程模型和助手,可将自然语言指令翻译成对应的源代码,为开发者提供智能补全、代码生成等功能。它最初于 2021 年作为 OpenAI API 的代码模型推出,曾为 GitHub Copilot 提供核心支持。随着 OpenAI 技术的迭代,Codex 在 2025 年以“AI 编程智能体”的全新姿态回归,能够理解复杂需求并自动编写、调试代码,显著提升开发效率和软件交付速度。

Kiro

Kiro

Kiro 是由 AWS 推出的 AI 编程 IDE,采用规范驱动的开发模式,将自然语言需求转化为明确的规格文档和任务,再由内置 AI 代理生成代码并调试优化,全流程辅助大型项目开发。

Trae

Trae

Trae(官网 trae.ai)是由 字节跳动(ByteDance)推出的一款 AI 原生集成开发环境(IDE)。它不是简单地作为一个编程助手,而是一个「协作伙伴」,通过深度整合大型语言模型(LLM),帮助开发者从需求、构建代码,到调试和部署,实现更智能化、自动化的软件开发。

Claude

Claude

Claude 是由美国人工智能公司 Anthropic 打造的智能语言交互平台,它融合了深度文本理解、信息整理、代码辅助和任务分析等能力,能在聊天对话之外应对更复杂的问题,例如长文摘要、图像解析、逻辑推理及编程协助等。相比一些单一问答机器人,Claude 更像一个具备推理逻辑、可扩展功能的智能工具。

评论

评论

0
0/500 字符

暂无评论

成为第一个评论的人

开源项目

探索、学习和贡献开源AI项目,推动人工智能技术的发展

查看全部