6 views
anthropics/claude-plugins-official
Official, Anthropic-managed directory of high quality Claude Code Plugins.
Python★ 42,847+1,175 that day#1 on trending
D51.5/100
Duplication83
2.3% in python, typescript, javascript, bash, tsx, perlDead code48
8.2%Complexity34
79% The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
2.56%duplicated code · 1,087 of 42,522 lines
57clones in code
121code files of 655 scanned
1.94%duplicated over all files · 134 clones
Most complex files
- plugins/claude-security/workflows/scan.js609 cx
- plugins/code-modernization/scripts/proof_pack.py606 cx
- plugins/code-modernization/scripts/build_report.py474 cx
- plugins/security-guidance/hooks/security_reminder_hook.py460 cx
- plugins/code-modernization/scripts/baseline_diff.py406 cx
- plugins/code-modernization/hooks/register.ts393 cx
- plugins/code-modernization/scripts/tests/test_proof_tools.py369 cx
- plugins/security-guidance/hooks/llm.py315 cx
- plugins/receipts/skills/receipts/scripts/mine-transcripts.mjs304 cx
- plugins/claude-security/scripts/patch_artifacts.py303 cx
Dead code 8.19% unused · 82 findings
- plugins/code-modernization/hooks/register.tsunused-file
- plugins/code-modernization/workflows/extract-rules.jsunused-file
- plugins/code-modernization/workflows/uplift-migrate.jsunused-file
- plugins/code-modernization/workflows/harden-scan.jsunused-file
- plugins/code-modernization/workflows/uplift-deltas.jsunused-file
- plugins/receipts/assets/make-sample.mjsunused-file
- plugins/code-modernization/hooks/state.tsunused-file
- plugins/claude-security/workflows/scan.jsunused-file
- plugins/code-modernization/workflows/portfolio-assess.jsunused-file
- plugins/code-modernization/workflows/reimagine-scaffold.jsunused-file
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 37 lines in 2 placestypescript230 tokens
133const MAX_ATTACHMENT_BYTES = 25 * 1024 * 1024 134 135// reply's files param takes any path. .env is ~60 bytes and ships as an 136// upload. Claude can already Read+paste file contents, so this isn't a new 137// exfil channel for arbitrary paths — but the server's own state is the one 138// thing Claude has no reason to ever send. 139function assertSendable(f: string): void { 140 let real, stateReal: string 141 try { 142 real = realpathSync(f)138const MAX_ATTACHMENT_BYTES = 50 * 1024 * 1024 139 140// reply's files param takes any path. .env is ~60 bytes and ships as a 141// document. Claude can already Read+paste file contents, so this isn't a new 142// exfil channel for arbitrary paths — but the server's own state is the one 143// thing Claude has no reason to ever send. 144function assertSendable(f: string): void { 145 let real, stateReal: string 146 try { 147 real = realpathSync(f)First 10 of 37 lines, the second copy on the right.
- 30 lines in 2 placestypescript186 tokens
363 })() 364 } 365} 366 367if (!STATIC) setInterval(checkApprovals, 5000).unref() 368 369// Discord caps messages at 2000 chars (hard limit — larger sends reject). 370// Split long replies, preferring paragraph boundaries when chunkMode is 371// 'newline'. 372357 ) 358 } 359} 360 361if (!STATIC) setInterval(checkApprovals, 5000).unref() 362 363// Telegram caps messages at 4096 chars. Split long replies, preferring 364// paragraph boundaries when chunkMode is 'newline'. 365 366function chunk(text: string, limit: number, mode: 'length' | 'newline'): string[] {First 10 of 30 lines, the second copy on the right.
- 20 lines in 2 placestypescript168 tokens
373function chunk(text: string, limit: number, mode: 'length' | 'newline'): string[] { 374 if (text.length <= limit) return [text] 375 const out: string[] = [] 376 let rest = text 377 while (rest.length > limit) { 378 let cut = limit 379 if (mode === 'newline') { 380 // Prefer the last double-newline (paragraph), then single newline, 381 // then space. Fall back to hard cut. 382 const para = rest.lastIndexOf('\n\n', limit)480function chunk(text: string, limit: number, mode: 'length' | 'newline'): string[] { 481 if (text.length <= limit) return [text] 482 const out: string[] = [] 483 let rest = text 484 while (rest.length > limit) { 485 let cut = limit 486 if (mode === 'newline') { 487 const para = rest.lastIndexOf('\n\n', limit) 488 const line = rest.lastIndexOf('\n', limit) 489 const space = rest.lastIndexOf(' ', limit)First 10 of 20 lines, the second copy on the right.
7 more
- 27 lines in 2 placestypescript165 tokens
- 22 lines in 2 placestypescript165 tokens
- 28 lines in 2 placestypescript145 tokens
- 12 lines in 2 placespython129 tokens
- 41 lines in 2 placestypescript127 tokens
- 27 lines in 2 placestypescript122 tokens
- 26 lines in 2 placestypescript120 tokens
Largest clones over all files, tests and data included
- 176 lines in 2 placestxtdocs and examples1,663 tokensplugins/frontend-design/skills/frontend-design/LICENSE.txt:2–177plugins/skill-creator/skills/skill-creator/LICENSE.txt:2–177
2 Apache License 3 Version 2.0, January 2004 4 http://www.apache.org/licenses/ 5 6TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 81. Definitions. 9 10 "License" shall mean the terms and conditions for use, reproduction, 11 and distribution as defined by Sections 1 through 9 of this document.First 10 of 176 lines.
- 120 lines in 2 placesmarkdowndocs and examples1,149 tokensplugins/plugin-dev/skills/skill-development/SKILL.md:9–128plugins/plugin-dev/skills/skill-development/references/skill-creator-original.md:9–128
9This skill provides guidance for creating effective skills for Claude Code plugins. 10 11## About Skills 12 13Skills are modular, self-contained packages that extend Claude's capabilities by providing 14specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific 15domains or tasks—they transform Claude from a general-purpose agent into a specialized agent 16equipped with procedural knowledge that no model can fully possess. 17 18### What Skills ProvideFirst 10 of 120 lines.
- 7 lines in 2 placesmarkdowndocs and examples585 tokensplugins/math-proof/agents/math-proof-worker-deep.md:9–15plugins/math-proof/agents/math-proof-worker.md:9–15
9You will be given one mathematical task: the path of a query file, the problem statement it concerns (given in full in the message that assigns you the task; t… 10 11After reasoning, write your answer. This task runs as a conversation that can span many messages, each with a bounded output allowance that also covers your pr… 12 13You have no web access and no code execution; this is a pure reasoning task. Results you cite from the literature are cited from memory — say so, and state the… 14 15When the task is resolved, or you have taken it as far as you can, make sure the answer file holds your complete final answer: precise statements with proofs, … - 20 lines in 3 placesmarkdowndocs and examples229 tokens
- 46 lines in 2 placesmarkdowndocs and examples450 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| typescript | 30 | 9,927 | 34 | 611 | 6.15% |
| python | 55 | 24,044 | 19 | 299 | 1.24% |
| javascript | 11 | 4,875 | 4 | 177 | 3.63% |
| bash | 22 | 2,501 | 0 | 0 | 0% |
| tsx | 2 | 1,007 | 0 | 0 | 0% |
| perl | 1 | 168 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| typescript | 55 | 13,796 | 45 | 701 | 5.08% |
| markdown | 236 | 44,069 | 39 | 651 | 1.48% |
| python | 91 | 33,241 | 34 | 420 | 1.26% |
| markup | 10 | 3,658 | 8 | 65 | 1.78% |
| javascript | 18 | 5,088 | 4 | 177 | 3.48% |
| json | 42 | 8,521 | 2 | 86 | 1.01% |
| text | 67 | 1,689 | 1 | 10 | 0.59% |
| txt | 2 | 379 | 1 | 176 | 46.44% |
| bash | 53 | 4,160 | 0 | 0 | 0% |
| yaml | 73 | 2,075 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Oct 19, 2026 | #1 | 42,847 (+1,175) | 655 | 117,929 | 134 | 1.94% | 2.56% | D 51.5 | ea10b21 |
| Oct 18, 2026 | #1 | 41,959 (+1,397) | 655 | 117,929 | 134 | 1.94% | 2.56% | D 51.5 | ea10b21 |
| Oct 17, 2026 | #1 | 40,801 (+1,552) | 655 | 117,929 | 134 | 1.94% | 2.56% | D 51.5 | ea10b21 |
| Oct 16, 2026 | #2 | 39,365 (+307) | 655 | 117,929 | 134 | 1.94% | 2.56% | D 51.5 | ea10b21 |
| Sep 26, 2026 | #2 | 36,975 (+83) | 623 | 110,810 | 124 | 1.98% | 2.63% | D 49.6 | fa59bc9 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.