8 views
TencentCloud/Octop
A smarter, self-hosted AI assistant — multi-user, multi-agent.
Python★ 4,026+569 that day#6 on trending
C65.5/100
Duplication66
5.1% in python, tsx, typescript, bash, javascript, go, sql, powershell, perlDead code83
2%Complexity53
46.2% The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
4.82%duplicated code · 13,484 of 279,642 lines
551clones in code
1,273code files of 3,789 scanned
4.68%duplicated over all files · 1,731 clones
Most complex files
- src/octop/infra/agents/manager.py649 cx
- dashboard/src/pages/KnowledgeBases/index.tsx636 cx
- dashboard/src/pages/Agent/Connectors/index.tsx531 cx
- dashboard/src/pages/Chat/hooks/chatStore.ts530 cx
- src/octop/infra/agents/experts/library/clinical-learning-subscription/scripts/clinical_profile.py458 cx
- src/octop/infra/skills/skills_hub.py412 cx
- src/octop/infra/agents/experts/library/meituan-living-assistant/skills/meituan-deals/scripts/run.js344 cx
- dashboard/src/pages/Agent/Channels/components/ChannelDrawer.tsx337 cx
- dashboard/src/pages/Agent/Workspace/components/WorkspaceDrawer.tsx333 cx
- dashboard/src/pages/Chat/hooks/useChat.ts322 cx
Dead code 2.01% unused · 150 findings
- src/octop/cli/commands/channel.pyunused-file
- src/octop/cli/support/offline_ops.pyunused-file
- dashboard/src/components/BackendBuilder.tsxunused-file
- src/octop/cli/commands/chats.pyunused-file
- src/octop/cli/repl/render.pyunused-file
- src/octop/cli/commands/models.pyunused-file
- src/octop/cli/commands/agent.pyunused-file
- src/octop/cli/commands/service.pyunused-file
- src/octop/cli/commands/backup.pyunused-file
- dashboard/src/components/MarkdownCopy/MarkdownCopy.tsxunused-file
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 797 lines in 3 placespython3,868 tokenssrc/octop/infra/agents/experts/library/office-automation/skills/docx/scripts/office/validators/base.py:1–797src/octop/infra/agents/experts/library/office-automation/skills/pptx/scripts/office/validators/base.py:1–797src/octop/infra/agents/experts/library/office-automation/skills/xlsx/scripts/office/validators/base.py:1–797
1""" 2Base validator with common validation logic for document files. 3""" 4 5import re 6from pathlib import Path 7 8import defusedxml.minidom 9import lxml.etree 10First 10 of 797 lines.
- 418 lines in 3 placespython1,902 tokenssrc/octop/infra/agents/experts/library/office-automation/skills/docx/scripts/office/validators/docx.py:1–418src/octop/infra/agents/experts/library/office-automation/skills/pptx/scripts/office/validators/docx.py:1–418src/octop/infra/agents/experts/library/office-automation/skills/xlsx/scripts/office/validators/docx.py:1–418
1""" 2Validator for Word document XML files against XSD schemas. 3""" 4 5import os 6import random 7import re 8import tempfile 9import zipfile 10First 10 of 418 lines.
- 609 lines in 2 placesbash2,992 tokens
88 --mirror <URL> Use a specific PyPI mirror (e.g. https://mirrors.aliyun.com/pypi/simple) 89 -h, --help Show this help 90 91Note: Playwright Chromium is not downloaded by default. Pass 92 --extras browser to install it, or install later from the dashboard. 93 If a system Chrome/Chromium already exists, that download is skipped 94 even with --extras browser. 95 96Environment variables: 97 OCTOP_HOME Install directory (default: ~/.octop)First 10 of 609 lines.
7 more
- 262 lines in 3 placespython1,080 tokenssrc/octop/infra/agents/experts/library/office-automation/skills/docx/scripts/office/validators/pptx.py:1–262src/octop/infra/agents/experts/library/office-automation/skills/pptx/scripts/office/validators/pptx.py:1–262src/octop/infra/agents/experts/library/office-automation/skills/xlsx/scripts/office/validators/pptx.py:1–262
- 240 lines in 3 placespython1,071 tokenssrc/octop/infra/agents/experts/library/office-automation/skills/docx/scripts/office/validators/redlining.py:1–240src/octop/infra/agents/experts/library/office-automation/skills/pptx/scripts/office/validators/redlining.py:1–240src/octop/infra/agents/experts/library/office-automation/skills/xlsx/scripts/office/validators/redlining.py:1–240
- 196 lines in 3 placespython1,047 tokenssrc/octop/infra/agents/experts/library/office-automation/skills/docx/scripts/office/helpers/simplify_redlines.py:1–196src/octop/infra/agents/experts/library/office-automation/skills/pptx/scripts/office/helpers/simplify_redlines.py:1–196src/octop/infra/agents/experts/library/office-automation/skills/xlsx/scripts/office/helpers/simplify_redlines.py:1–196
- 192 lines in 3 placespython1,043 tokenssrc/octop/infra/agents/experts/library/office-automation/skills/docx/scripts/office/helpers/merge_runs.py:1–192src/octop/infra/agents/experts/library/office-automation/skills/pptx/scripts/office/helpers/merge_runs.py:1–192src/octop/infra/agents/experts/library/office-automation/skills/xlsx/scripts/office/helpers/merge_runs.py:1–192
- 155 lines in 3 placespython805 tokens
- 372 lines in 2 placesbash1,494 tokens
- 190 lines in 2 placespython1,472 tokens
Largest clones over all files, tests and data included
- 797 lines in 3 placespython3,868 tokenssrc/octop/infra/agents/experts/library/office-automation/skills/docx/scripts/office/validators/base.py:1–797src/octop/infra/agents/experts/library/office-automation/skills/pptx/scripts/office/validators/base.py:1–797src/octop/infra/agents/experts/library/office-automation/skills/xlsx/scripts/office/validators/base.py:1–797
1""" 2Base validator with common validation logic for document files. 3""" 4 5import re 6from pathlib import Path 7 8import defusedxml.minidom 9import lxml.etree 10First 10 of 797 lines.
- 418 lines in 3 placespython1,902 tokenssrc/octop/infra/agents/experts/library/office-automation/skills/docx/scripts/office/validators/docx.py:1–418src/octop/infra/agents/experts/library/office-automation/skills/pptx/scripts/office/validators/docx.py:1–418src/octop/infra/agents/experts/library/office-automation/skills/xlsx/scripts/office/validators/docx.py:1–418
1""" 2Validator for Word document XML files against XSD schemas. 3""" 4 5import os 6import random 7import re 8import tempfile 9import zipfile 10First 10 of 418 lines.
- 609 lines in 2 placesbash2,992 tokens
88 --mirror <URL> Use a specific PyPI mirror (e.g. https://mirrors.aliyun.com/pypi/simple) 89 -h, --help Show this help 90 91Note: Playwright Chromium is not downloaded by default. Pass 92 --extras browser to install it, or install later from the dashboard. 93 If a system Chrome/Chromium already exists, that download is skipped 94 even with --extras browser. 95 96Environment variables: 97 OCTOP_HOME Install directory (default: ~/.octop)First 10 of 609 lines.
- 262 lines in 3 placespython1,080 tokenssrc/octop/infra/agents/experts/library/office-automation/skills/docx/scripts/office/validators/pptx.py:1–262src/octop/infra/agents/experts/library/office-automation/skills/pptx/scripts/office/validators/pptx.py:1–262src/octop/infra/agents/experts/library/office-automation/skills/xlsx/scripts/office/validators/pptx.py:1–262
- 240 lines in 3 placespython1,071 tokenssrc/octop/infra/agents/experts/library/office-automation/skills/docx/scripts/office/validators/redlining.py:1–240src/octop/infra/agents/experts/library/office-automation/skills/pptx/scripts/office/validators/redlining.py:1–240src/octop/infra/agents/experts/library/office-automation/skills/xlsx/scripts/office/validators/redlining.py:1–240
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 532 | 123,102 | 262 | 8,183 | 6.65% |
| tsx | 332 | 101,126 | 239 | 3,199 | 3.16% |
| typescript | 302 | 38,527 | 24 | 342 | 0.89% |
| bash | 70 | 11,347 | 18 | 1,680 | 14.81% |
| javascript | 16 | 3,068 | 8 | 80 | 2.61% |
| go | 17 | 1,705 | 0 | 0 | 0% |
| powershell | 3 | 593 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 1,031 | 202,437 | 766 | 14,118 | 6.97% |
| tsx | 387 | 107,833 | 275 | 3,635 | 3.37% |
| less | 116 | 37,924 | 204 | 3,229 | 8.51% |
| typescript | 449 | 52,590 | 117 | 1,781 | 3.39% |
| markup | 70 | 4,603 | 77 | 627 | 13.62% |
| markdown | 793 | 178,922 | 59 | 1,832 | 1.02% |
| bash | 173 | 15,704 | 37 | 2,079 | 13.24% |
| javascript | 33 | 4,573 | 33 | 551 | 12.05% |
| sql | 32 | 1,804 | 31 | 588 | 32.59% |
| css | 15 | 2,188 | 30 | 400 | 18.28% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Sep 19, 2026 | #6 | 4,026 (+569) | 3,789 | 655,920 | 1,731 | 4.68% | 4.82% | C 65.5 | 757fd12 |
| Sep 18, 2026 | #12 | 3,599 (+367) | 3,707 | 643,836 | 1,616 | 4.59% | 4.82% | — | ae65fe4 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.