dsh 插件:扫描 dsh 插件生态系统——按插件收集 stars/npm 下载量/发布资产,细分市场,根据快照计算增长增量,并呈现高增长插件和细分领域。
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 121212165/dsh-plugin-eco-scan该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 17 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-plugin-eco-scan(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/3 12:27:21
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 50 处,展示前 50 条)
- 写入本地文件lib/eco/snapshot.js:22
mkdirSync(this.dataDir, { recursive: true }); - 写入本地文件lib/eco/snapshot.js:23
appendFileSync(this.fileFor(date), `${JSON.stringify(record)}\n`, 'utf8'); - 读取本地文件lib/eco/snapshot.js:29
if (!existsSync(this.dataDir)) - 读取本地文件lib/eco/snapshot.js:31
for (const name of readdirSync(this.dataDir).filter(validName).sort()) { - 读取本地文件lib/eco/snapshot.js:32
for (const line of readFileSync(join(this.dataDir, name), 'utf8').split(/ ? /)) { - 写入本地文件lib/core/db.js:148
mkdirSync(dirname(path), { recursive: true }); - 读取本地文件lib/core/defaults.js:102
if (existsSync(path)) - 写入本地文件lib/core/defaults.js:104
mkdirSync(dirname(path), { recursive: true }); - 写入本地文件lib/core/defaults.js:105
writeFileSync(path, content, 'utf8'); - 写入本地文件lib/core/defaults.js:108
mkdirSync(paths.exportDir, { recursive: true }); - 发起网络请求lib/core/http.js:117
const result = await this.request(url, options); - 读取本地文件lib/core/segmentation.js:31
const stat = statSync(this.filePath, { throwIfNoEntry: false }); - 读取本地文件lib/core/segmentation.js:38
this.load(readFileSync(this.filePath, 'utf8')); - 读取本地文件lib/core/segmentation.js:89
const stat = statSync(path, { throwIfNoEntry: false }); - 读取本地文件lib/core/segmentation.js:93
const stat = statSync(path, { throwIfNoEntry: false }); - 读取本地文件lib/core/segmentation.js:97
return readFileSync(path, 'utf8'); - 写入本地文件lib/core/exporters.js:44
mkdirSync(dir, { recursive: true }); - 写入本地文件lib/core/exporters.js:47
writeFileSync(path, content, 'utf8'); - 读取本地文件lib/core/alerts.js:37
return parseAlertRules(readFileSync(path, 'utf8')); - 读取本地文件lib/core/migrate.js:9
if (!existsSync(dir)) - 读取本地文件lib/core/migrate.js:11
return readdirSync(dir) - 读取本地文件lib/core/migrate.js:52
const lines = readFileSync(file, 'utf8').split(/ ? /); - 读取本地文件lib/core/scan.js:131
const awesomeText = options.awesomePath && existsSync(options.awesomePath) ? readIfPresent(options.awesomePath) : null; - 读取本地文件lib/core/scan.js:275
if (!existsSync(path)) - 读取本地文件lib/core/scan.js:278
return readFileSync(path, 'utf8'); - 读取本地文件src/core/alerts.ts:64
return parseAlertRules(readFileSync(path, 'utf8')); - 写入本地文件src/core/db.ts:162
if (path !== ':memory:') mkdirSync(dirname(path), { recursive: true }); - 读取本地文件src/core/defaults.ts:116
if (existsSync(path)) continue; - 写入本地文件src/core/defaults.ts:117
mkdirSync(dirname(path), { recursive: true }); - 写入本地文件src/core/defaults.ts:118
writeFileSync(path, content, 'utf8'); - 写入本地文件src/core/defaults.ts:121
mkdirSync(paths.exportDir, { recursive: true }); - 写入本地文件src/core/exporters.ts:75
mkdirSync(dir, { recursive: true }); - 写入本地文件src/core/exporters.ts:78
writeFileSync(path, content, 'utf8'); - 发起网络请求src/core/http.ts:171
const result = await this.request(url, options); - 读取本地文件src/core/migrate.ts:29
if (!existsSync(dir)) return []; - 读取本地文件src/core/migrate.ts:30
return readdirSync(dir) - 读取本地文件src/core/migrate.ts:68
const lines = readFileSync(file, 'utf8').split(/ ? /); - 读取本地文件src/core/scan.ts:191
const awesomeText = options.awesomePath && existsSync(options.awesomePath) ? readIfPresent(options.awesomePath) : null; - 读取本地文件src/core/scan.ts:336
if (!existsSync(path)) return null; - 读取本地文件src/core/scan.ts:338
return readFileSync(path, 'utf8'); - 读取本地文件src/core/segmentation.ts:56
const stat = statSync(this.filePath, { throwIfNoEntry: false }); - 读取本地文件src/core/segmentation.ts:61
this.load(readFileSync(this.filePath, 'utf8')); - 读取本地文件src/core/segmentation.ts:108
const stat = statSync(path, { throwIfNoEntry: false }); - 读取本地文件src/core/segmentation.ts:113
const stat = statSync(path, { throwIfNoEntry: false }); - 读取本地文件src/core/segmentation.ts:116
return readFileSync(path, 'utf8'); - 写入本地文件src/eco/snapshot.ts:43
mkdirSync(this.dataDir, { recursive: true }); - 写入本地文件src/eco/snapshot.ts:44
appendFileSync(this.fileFor(date), `${JSON.stringify(record)}\n`, 'utf8'); - 读取本地文件src/eco/snapshot.ts:51
if (!existsSync(this.dataDir)) return { records, skipped }; - 读取本地文件src/eco/snapshot.ts:52
for (const name of readdirSync(this.dataDir).filter(validName).sort()) { - 读取本地文件src/eco/snapshot.ts:53
for (const line of readFileSync(join(this.dataDir, name), 'utf8').split(/ ? /)) {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-base@deepseek-ai/schemastery@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 扫描插件生态数据
- 计算增长增量
- 呈现高增长赛道
README
由 DeepSeek 最新模型翻译生成dsh-plugin-eco-scan
🧩 dsh 插件家族(22 件):总目录 dsh-plugin-family | 明星插件:ide-hub 跨 IDE 统一管理 · task-forge 跨窗口无损交接 · quota 实时用量仪表
EN · dsh 插件生态的市场扫描:按仓库统计星标、npm 周下载量和 release 资产下载量,划分细分赛道,增长按每日快照之间的差值计算,而不是从单日数据推断(/eco-scan)。· 12 个 node --test 全部通过 · 在本机扫描了真实 GitHub + npm 数据 · npm 包与仓库的匹配启发式未做穷尽校验。
DeepSeek Harness (dsh) 插件:插件生态市场扫描器。抓取 dsh 插件生态(GitHub topic: dsh-plugin / dsh-plugins)的全部仓库,采集星标、npm 周下载、release 资产下载量三类真实数据,按细分赛道归类,把每日扫描写入快照,用差值算增长,找出高增长插件与高增长赛道。
适合回答:"dsh 生态里哪个赛道在涨?哪些插件是高增长标的?我下个插件该卡哪个位?
展开完整文档(README 剩余 1 节)
dsh-plugin-eco-scan 🧩 dsh 插件家族(22 件):总目录 dsh-plugin-family | 明星插件:ide-hub 跨 IDE 统一管理 · task-forge 跨窗口无损交接 · quota 实时用量仪表 EN · dsh 插件生态的市场扫描:按仓库统计星标、npm 周下载量和 release 资产下载量,划分细分赛道,增长按每日快照之间的差值计算,而不是从单日数据推断(/eco-scan)。· 12 个 node --test 全部通过 · 在本机扫描了真实 GitHub + npm 数据 · npm 包与仓库的匹配启发式未做穷尽校验。 DeepSeek Harness (dsh) 插件:插件生态市场扫描器。抓取 dsh 插件生态(GitHub topic: dsh-plugin / dsh-plugins)的全部仓库,采集星标、npm 周下载、release 资产下载量三类真实数据,按细分赛道归类,把每日扫描写入快照,用差值算增长,找出高增长插件与高增长赛道。 适合回答:"dsh 生态里哪个赛道在涨?哪些插件是高增长标的?我下个插件该卡哪个位?" 同系列:price-aware · cost-ledger · relay-quota · transcript · transcript-search · obsidian-push · session-insights。 用法 - /eco-scan / eco_scan 工具:执行一次扫描,输出: 1. 生态规模(仓库数) 2. 细分赛道表:成本预算 / 遥测分析 / 记忆上下文 / UI 客户端 / 工具开发 / 搜索知识 / 归档导出 / 框架运行时——各赛道的仓库数、星标、周下载、中位星标 3. 高增长 Top N:按 增长率 × √规模 评分排序(速度主导、体量加权),只收正增长 4. 细分赛道增长中位:哪个赛道整体在涨 - 快照差值:每次扫描写入 ~/.dsh/eco-scan/snapshots-YYYY-MM.jsonl,同日重扫覆盖,跨日差值即增长。第一天只有规模,从第二天起才有增长判断。 细分规则 按仓库名 + 描述关键词,规则有序、首个命中生效:cost-budget → telemetry-analytics → memory-context → ui-client → archive-export → search-knowledge → tools-devx → framework-runtime → other。 增长口径(诚实声明) GitHub 没有仓库级下载量。本插件用三个可得的代理指标,按可用性择优: 1. npm 周下载(api.npmjs.org/downloads/point/last-week,与生态关键词匹配的包) 2. release 资产下载计数(GitHub Releases API 求和) 3. 星标(感知度,不是下载) npm 包与仓库的匹配是名称启发式(dsh-plugin-<x> ↔ 仓库 <x>),可能有漏配——这是已知局限。 配置 | 字段 | 默认 | 说明 | | tokenEnv | [GITHUB_TOKEN, GH_TOKEN] | GitHub token(无 token 60 次/小时限流,建议设置) | | dataDir | ~/.dsh/eco-scan | 快照目录 | | topGrowth | 15 | 高增长榜行数 | 安装 三步,实测于 @deepseek-ai/dsh@0.1.7-alpha.1(需 pnpm 在 PATH 上): ① 装进 profile:dsh plugin 把参数原样转发给 pnpm,git 包会自动跑 prepare 构建 lib/ dsh plugin --profile web add github:121212165/dsh-plugin-eco-scan ② 把本仓库根目录 cordis.patch.yml 的内容并进 $DSH_HOME/profiles/web/cordis.patch.yml。 该文件默认是 [],所以要么整份替换,要么把 insert 条目并进同一个数组;不要直接追加——追加会形成两个 YAML 文档,启动即报 failed to parse overlay ... end of the stream or a document separator is expected(本机实测踩过)。 ③ 重启 dsh。配置层与 client 半都要重启才生效(客户端按 boot 时算出的内容 rev 下发,硬刷新浏览器没用)。 自检挂载:dsh --profile web --dump-config | grep dsh-plugin-eco-scan,应看到该条目。 验证状态 - 细分/增长/快照为纯函数,12 个 node --test 全绿。 - 真实扫描已在本机执行(结果见本仓库 early scan 记录)。 - npm 包-仓库匹配启发式未全面校验。 借鉴来源与差异(非盲目复制) | 借鉴来源 | 借鉴了什么 | 我们的差异 | | AdamPlatin123/dsh-plugin-radar(1466★) | 「dsh 生态雷达」这个方向本身 | radar 是重基建(2.1 万候选、k8s 运行级实测、15 分钟快照);本插件是轻量在 harness 内的细分市场分析器:赛道关键词细分、npm 周环比 live 榜、增长率×√规模评分、本地快照差值。数据口径与排名算法为独立设计,未参考其代码 | | OpenRouter npm range API | 用 downloads/range 做周环比的数据源用法 | — |
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
121212165/dsh-plugin-eco-scan
dsh 插件:扫描 dsh 插件生态系统——按插件收集 stars/npm 下载量/发布资产,细分市场,根据快照计算增长增量,并呈现高增长插件和细分领域。
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
智能体运行框架路由HarnessRouter/harnessrouter
智能体 harness 的统一接口。
★ 3,984已汉化DSH
71.3
这是你的仓库?认领条目