[{"data":1,"prerenderedAt":488},["ShallowReactive",2],{"navigation_docs":3,"trending-week-2026-W43":249,"page-views-\u002Ftrending\u002Fweek\u002F2026-W43":486},[4,29,104,124,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Start",false,"\u002Fstart","1.start",[10,14,19,24],{"title":11,"path":7,"stem":12,"icon":13},"What jscpd finds","1.start\u002Findex","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Configuration basics","\u002Fstart\u002Fconfiguration","1.start\u002F4.configuration","i-lucide-settings-2",{"title":30,"icon":6,"path":31,"stem":32,"children":33,"page":6},"Guides","\u002Fguides","2.guides",[34,39,44,49,54,59,64,69,74,79,84,89,94,99],{"title":35,"path":36,"stem":37,"icon":38},"Use jscpd in CI","\u002Fguides\u002Fci","2.guides\u002F01.ci","i-lucide-github",{"title":40,"path":41,"stem":42,"icon":43},"Pre-commit hooks","\u002Fguides\u002Fpre-commit","2.guides\u002F02.pre-commit","i-lucide-git-commit",{"title":45,"path":46,"stem":47,"icon":48},"Fail only on new duplication","\u002Fguides\u002Fbaseline","2.guides\u002F03.baseline","i-lucide-git-compare",{"title":50,"path":51,"stem":52,"icon":53},"Monorepos","\u002Fguides\u002Fmonorepos","2.guides\u002F04.monorepos","i-lucide-folder-tree",{"title":55,"path":56,"stem":57,"icon":58},"Cross-format detection","\u002Fguides\u002Fcross-format","2.guides\u002F05.cross-format","i-lucide-layers",{"title":60,"path":61,"stem":62,"icon":63},"Agents","\u002Fguides\u002Fagents","2.guides\u002F06.agents","i-lucide-cpu",{"title":65,"path":66,"stem":67,"icon":68},"Editors","\u002Fguides\u002Feditors","2.guides\u002F07.editors","i-lucide-code",{"title":70,"path":71,"stem":72,"icon":73},"Duplication over git history","\u002Fguides\u002Fhistory","2.guides\u002F08.history","i-lucide-chart-no-axes-combined",{"title":75,"path":76,"stem":77,"icon":78},"Dashboard and health score","\u002Fguides\u002Fdashboard","2.guides\u002F09.dashboard","i-lucide-layout-dashboard",{"title":80,"path":81,"stem":82,"icon":83},"Dead code","\u002Fguides\u002Fdead-code","2.guides\u002F10.dead-code","i-lucide-ghost",{"title":85,"path":86,"stem":87,"icon":88},"Comparing two codebases","\u002Fguides\u002Fcompare","2.guides\u002F11.compare","i-lucide-git-compare-arrows",{"title":90,"path":91,"stem":92,"icon":93},"Semantic clones","\u002Fguides\u002Fsemantic-clones","2.guides\u002F12.semantic-clones","i-lucide-brain-circuit",{"title":95,"path":96,"stem":97,"icon":98},"Similar functions","\u002Fguides\u002Fsimilarity","2.guides\u002F13.similarity","i-lucide-list-tree",{"title":100,"path":101,"stem":102,"icon":103},"Boundaries","\u002Fguides\u002Fboundaries","2.guides\u002F14.boundaries","i-lucide-fence",{"title":105,"icon":6,"path":106,"stem":107,"children":108,"page":6},"Concepts","\u002Fconcepts","3.concepts",[109,114,119],{"title":110,"path":111,"stem":112,"icon":113},"Types of code clones","\u002Fconcepts\u002Fclone-types","3.concepts\u002F1.clone-types","i-lucide-copy",{"title":115,"path":116,"stem":117,"icon":118},"How detection works","\u002Fconcepts\u002Fhow-detection-works","3.concepts\u002F2.how-detection-works","i-lucide-scan-search",{"title":120,"path":121,"stem":122,"icon":123},"The health score","\u002Fconcepts\u002Fhealth-score","3.concepts\u002F3.health-score","i-lucide-heart-pulse",{"title":125,"icon":6,"path":126,"stem":127,"children":128,"page":6},"Reference","\u002Freference","4.reference",[129,134,139,144,181,186,190],{"title":130,"path":131,"stem":132,"icon":133},"CLI options","\u002Freference\u002Fcli","4.reference\u002F1.cli","i-lucide-terminal",{"title":135,"path":136,"stem":137,"icon":138},"The config file","\u002Freference\u002Fconfig-file","4.reference\u002F2.config-file","i-lucide-settings",{"title":140,"path":141,"stem":142,"icon":143},"Exit codes","\u002Freference\u002Fexit-codes","4.reference\u002F3.exit-codes","i-lucide-log-out",{"title":145,"icon":6,"path":146,"stem":147,"children":148},"Reporters","\u002Freference\u002Freporters","4.reference\u002F4.reporters\u002Findex",[149,151,156,161,166,171,176],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-file-chart-column",{"title":152,"path":153,"stem":154,"icon":155},"HTML reporter","\u002Freference\u002Freporters\u002Fhtml","4.reference\u002F4.reporters\u002F2.html","i-lucide-file-code",{"title":157,"path":158,"stem":159,"icon":160},"JSON reporter","\u002Freference\u002Freporters\u002Fjson","4.reference\u002F4.reporters\u002F3.json","i-lucide-braces",{"title":162,"path":163,"stem":164,"icon":165},"Badge reporter","\u002Freference\u002Freporters\u002Fbadge","4.reference\u002F4.reporters\u002F4.badge","i-lucide-award",{"title":167,"path":168,"stem":169,"icon":170},"SARIF reporter","\u002Freference\u002Freporters\u002Fsarif","4.reference\u002F4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":172,"path":173,"stem":174,"icon":175},"CodeClimate reporter","\u002Freference\u002Freporters\u002Fcodeclimate","4.reference\u002F4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":177,"path":178,"stem":179,"icon":180},"OpenMetrics reporter","\u002Freference\u002Freporters\u002Fopenmetrics","4.reference\u002F4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":182,"path":183,"stem":184,"icon":185},"Supported formats","\u002Freference\u002Fsupported-formats","4.reference\u002F5.supported-formats","i-lucide-languages",{"title":187,"path":188,"stem":189,"icon":38},"GitHub Action","\u002Freference\u002Fgithub-action","4.reference\u002F6.github-action",{"title":191,"path":192,"stem":193,"icon":68},"Rust crates","\u002Freference\u002Frust-crates","4.reference\u002F7.rust-crates",{"title":195,"icon":6,"path":196,"stem":197,"children":198,"page":6},"Project","\u002Fproject","5.project",[199,204,209,214,239,244],{"title":200,"path":201,"stem":202,"icon":203},"Changelog","\u002Fproject\u002Fchangelog","5.project\u002F1.changelog","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"Migrating from v4 to v5","\u002Fproject\u002Fmigration","5.project\u002F2.migration","i-lucide-arrow-right-left",{"title":210,"path":211,"stem":212,"icon":213},"jscpd v4 (TypeScript)","\u002Fproject\u002Fv4","5.project\u002F3.v4","i-simple-icons-typescript",{"title":215,"icon":6,"path":216,"stem":217,"children":218},"Benchmarks","\u002Fproject\u002Fbenchmarks","5.project\u002F4.benchmarks\u002Findex",[219,221,226,230,235],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-gauge",{"title":222,"path":223,"stem":224,"icon":225},"Detection Speed","\u002Fproject\u002Fbenchmarks\u002Fdetection-speed","5.project\u002F4.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":227,"path":228,"stem":229,"icon":58},"Multi-Format Detection","\u002Fproject\u002Fbenchmarks\u002Fcross-format","5.project\u002F4.benchmarks\u002F3.cross-format",{"title":231,"path":232,"stem":233,"icon":234},"AI Token Efficiency","\u002Fproject\u002Fbenchmarks\u002Fai-token-efficiency","5.project\u002F4.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":236,"path":237,"stem":238,"icon":93},"Embedding Models","\u002Fproject\u002Fbenchmarks\u002Fembedding-models","5.project\u002F4.benchmarks\u002F5.embedding-models",{"title":240,"path":241,"stem":242,"icon":243},"Research","\u002Fproject\u002Fresearch","5.project\u002F5.research","i-lucide-graduation-cap",{"title":245,"path":246,"stem":247,"icon":248},"Articles","\u002Fproject\u002Farticles","5.project\u002F6.articles","i-lucide-newspaper",{"week":250,"from":251,"to":252,"days":253,"summary":254,"repos":325},"2026-W43","2026-10-19","2026-10-25",[251],{"repos":255,"sources":256,"lines":257,"tokens":258,"clones":259,"duplicatedLines":260,"duplicatedTokens":261,"percentage":262,"percentageTokens":263,"avgPercentage":264,"medianPercentage":265,"mostDuplicated":266,"cleanest":270,"mostClones":273,"codeRepos":277,"codeSources":278,"codeLines":279,"codeClones":280,"codeDuplicatedLines":281,"codePercentage":282,"codeMedianPercentage":283,"codeMostDuplicated":284,"codeCleanest":287,"generatedFiles":291,"avgHealth":292,"healthiest":293,"leastHealthy":296,"languages":300},8,6548,2073278,13313605,12937,276718,1620872,13.35,12.17,11.64,12.24,{"name":267,"clones":268,"percentage":269},"cursor\u002Fplugins",219,26.44,{"name":271,"clones":272,"percentage":272},"mlabonne\u002Fllm-course",0,{"name":274,"clones":275,"percentage":276},"akitaonrails\u002Fai-memory",4692,9.61,7,2420,1065893,6619,122237,11.47,8.46,{"name":267,"clones":285,"percentage":286},24,26.17,{"name":288,"clones":289,"percentage":290},"Kruk2\u002Fjasna",48,0.99,4,45.13,{"name":271,"score":294,"grade":295},81.8,"B",{"name":297,"score":298,"grade":299},"HKUDS\u002FCLI-Anything",11.6,"E",[301,307,312,318,322],{"language":302,"repos":291,"clones":303,"lines":304,"duplicatedLines":305,"percentage":306},"Python",6970,1292241,183404,14.19,{"language":308,"repos":309,"clones":275,"lines":310,"duplicatedLines":311,"percentage":276},"Rust",1,607235,58383,{"language":313,"repos":309,"clones":314,"lines":315,"duplicatedLines":316,"percentage":317},"Kotlin",1056,115251,19801,17.18,{"language":319,"repos":309,"clones":268,"lines":320,"duplicatedLines":321,"percentage":269},"TypeScript",57230,15130,{"language":323,"repos":309,"clones":272,"lines":324,"duplicatedLines":272,"percentage":272},"Other",1321,[326,353,378,398,418,433,457,477],{"name":327,"url":328,"description":329,"language":302,"stars":330,"starsToday":331,"days":309,"rank":309,"date":251,"total":332,"code":338,"topFinding":344},"anthropics\u002Fclaude-plugins-official","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-plugins-official","Official, Anthropic-managed directory of high quality Claude Code Plugins.",42847,1175,{"sources":333,"lines":334,"clones":335,"duplicatedLines":336,"percentage":337},655,117929,134,2286,1.94,{"sources":339,"lines":340,"clones":341,"duplicatedLines":342,"percentage":343,"generated":272},121,42522,57,1087,2.56,{"format":345,"lines":346,"copies":347,"kind":348,"first":349,"scope":348},"typescript",37,2,"code",{"name":350,"start":351,"end":352},"external_plugins\u002Fdiscord\u002Fserver.ts",133,169,{"name":297,"url":354,"description":355,"language":302,"stars":356,"starsToday":357,"days":309,"rank":291,"date":251,"total":358,"code":364,"topFinding":370},"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FCLI-Anything","\"CLI-Anything: Making ALL Software Agent-Native\" -- CLI-Hub: https:\u002F\u002Fclianything.cc\u002F",54748,589,{"sources":359,"lines":360,"clones":361,"duplicatedLines":362,"percentage":363},1842,389265,2388,76945,19.77,{"sources":365,"lines":366,"clones":367,"duplicatedLines":368,"percentage":369,"generated":309},762,225256,1738,54645,24.26,{"format":371,"lines":372,"copies":373,"kind":348,"first":374,"scope":348},"python",565,49,{"name":375,"start":376,"end":377},"adguardhome\u002Fagent-harness\u002Fcli_anything\u002Fadguardhome\u002Futils\u002Frepl_skin.py",3,567,{"name":274,"url":379,"description":380,"language":308,"stars":381,"starsToday":382,"days":309,"rank":376,"date":251,"total":383,"code":385,"topFinding":391},"https:\u002F\u002Fgithub.com\u002Fakitaonrails\u002Fai-memory","Solution for long term memory for agent coding CLIs and to facilitate handoff between different agent vendors",10666,512,{"sources":384,"lines":310,"clones":275,"duplicatedLines":311,"percentage":276},1132,{"sources":386,"lines":387,"clones":388,"duplicatedLines":389,"percentage":390,"generated":347},484,426561,2843,34960,8.2,{"format":392,"lines":393,"copies":347,"kind":348,"first":394,"scope":348},"rust",110,{"name":395,"start":396,"end":397},"crates\u002Fai-memory-consolidate\u002Fsrc\u002Fconsolidator.rs",1288,1397,{"name":399,"url":400,"description":401,"language":313,"stars":402,"starsToday":403,"days":309,"rank":404,"date":251,"total":405,"code":407,"topFinding":413},"android\u002Fskills","https:\u002F\u002Fgithub.com\u002Fandroid\u002Fskills","",8872,375,5,{"sources":406,"lines":315,"clones":314,"duplicatedLines":316,"percentage":317},607,{"sources":408,"lines":409,"clones":410,"duplicatedLines":411,"percentage":412,"generated":272},61,12211,137,1475,12.08,{"format":414,"lines":415,"copies":404,"kind":348,"first":416,"scope":348},"kotlin",16,{"name":417,"start":309,"end":415},"system\u002Fglance-canonical-layouts\u002Freferences\u002Ftoolbars\u002FSearchToolBarAppWidget.kt",{"name":267,"url":419,"description":420,"language":319,"stars":421,"starsToday":422,"days":309,"rank":347,"date":251,"total":423,"code":425,"topFinding":429},"https:\u002F\u002Fgithub.com\u002Fcursor\u002Fplugins","Cursor plugin specification and official plugins",12829,350,{"sources":424,"lines":320,"clones":268,"duplicatedLines":321,"percentage":269},631,{"sources":426,"lines":427,"clones":285,"duplicatedLines":428,"percentage":286,"generated":272},74,20640,5401,{"format":345,"lines":430,"copies":347,"kind":348,"first":431,"scope":348},1677,{"name":432,"start":309,"end":430},"harness\u002Fpstack\u002Fclaude-code\u002Fskills\u002Fpoteto-mode\u002Fscripts\u002Forch\u002Fstore.ts",{"name":434,"url":435,"description":436,"language":302,"stars":437,"starsToday":438,"days":309,"rank":255,"date":251,"total":439,"code":445,"topFinding":450},"Comfy-Org\u002FComfyUI","https:\u002F\u002Fgithub.com\u002FComfy-Org\u002FComfyUI","The most powerful and modular diffusion model GUI, api and backend with a graph\u002Fnodes interface. The fastest local inference engine in the world.",138836,154,{"sources":440,"lines":441,"clones":442,"duplicatedLines":443,"percentage":444},1169,676951,4104,100574,14.86,{"sources":446,"lines":447,"clones":448,"duplicatedLines":449,"percentage":283,"generated":309},715,285511,1772,24145,{"format":371,"lines":451,"copies":452,"kind":348,"first":453,"scope":348},22,20,{"name":454,"start":455,"end":456},"comfy_api_nodes\u002Fapis\u002F__init__.py",3163,3184,{"name":288,"url":458,"description":459,"language":302,"stars":460,"starsToday":461,"days":309,"rank":277,"date":251,"total":462,"code":468,"topFinding":472},"https:\u002F\u002Fgithub.com\u002FKruk2\u002Fjasna","Video restoration tool",2546,115,{"sources":463,"lines":464,"clones":465,"duplicatedLines":466,"percentage":467},501,108096,344,3599,3.33,{"sources":469,"lines":470,"clones":289,"duplicatedLines":471,"percentage":290,"generated":272},203,53192,524,{"format":371,"lines":473,"copies":347,"kind":348,"first":474,"scope":348},26,{"name":475,"start":476,"end":346},"jasna\u002Fltx\u002Ftrial_shapes.py",12,{"name":271,"url":478,"description":479,"language":480,"stars":481,"starsToday":482,"days":309,"rank":483,"date":251,"total":484,"code":480,"topFinding":480},"https:\u002F\u002Fgithub.com\u002Fmlabonne\u002Fllm-course","Course to get into Large Language Models (LLMs) with roadmaps and Colab notebooks.",null,84175,81,6,{"sources":485,"lines":324,"clones":272,"duplicatedLines":272,"percentage":272},11,{"\u002Ftrending\u002Fweek\u002F2026-W43":487},{"views":309,"visits":272},1792421139074]