D

dsh-s-m-c-center

github.com/YpipaQ/dsh-s-m-c-center

v0.2.7 技能包 可执行外部程序写入文件含混淆或编码代码
认证 L3已扫描 ✓健康 S/100周下载 555

把智能体的「技能 / MCP / CLI」三类工具收进 DeepSeek Harness 的同一张设置页, 并让每个对话按需注入自己的技能。

作者原文(英文)

Skills, MCP & CLI manager for the dsh web GUI: browse/enable/import/delete skills across project and user roots; manage MCP servers with a REAL connection through @deepseek-ai/dsh-mcp-client (enabled servers connect and register their tools on ctx.tools;

中文简介由 DeepSeek 模型翻译,仅供参考。

deepseek-harnessdshdsh-pluginskillsmcpcli
发布
2026-10-11

检测报告

关注度高。命中了不少能力模式,其中可能有需要留意的。逐条看下面的清单。
1高关注3需留意4一般16未命中
高关注需留意一般

能力清单

  • 可执行外部程序spawns-processes高关注1 处命中
    • src/features/cli/probe.ts:15import { spawnSync } from 'node:child_process'
    • 看它调用哪些程序。调用本机已有的工具是常见做法。
  • 写入文件writes-files需留意36 处命中
    • lib/client.js:2052skills.unlink(skill);
    • src/features/skills/adopt.ts:45mkdirSync(store, { recursive: true })
    • src/features/skills/adopt.ts:56mkdirSync(dest, { recursive: true })
    • src/features/skills/adopt.ts:90mkdirSync(dirname(entry.origin), { recursive: true })
    • 看写入位置。写自己的配置目录是正常的,写系统目录不是。
  • 含混淆或编码代码obfuscated-code需留意12 处命中
    • …ypes/features/skills/delete.d.ts:21export declare const ONLY_STORE = "\u53EA\u80FD\u5220\u9664\u50A8\u5B58\u5E93\u91CC\u7684\u6280\u80FD\uFF1A\u8BE5\u76EE\…
    • lib/types/setup.d.ts:58export declare const SMC_GUIDANCE = "\u672C\u673A\u88C5\u6709 dsh-s-m-c-center \u63D2\u4EF6\uFF08\u6280\u80FD/MCP/CLI \u…
    • 混淆本身不是恶意,但公开源码里出现大段混淆值得问一句为什么。
  • 发起网络请求network需留意4 处命中
    • lib/client.js:251const response = await fetch(path, payload === void 0 ? { method } : {
    • lib/client.js:2691return unwrap(await fetch(path, payload === void 0 ? { method } : {
    • src/client/shared/api.ts:49const response = await fetch(path, payload === undefined
    • src/client/shell/sidebar.ts:105const response = await fetch(path, payload === undefined
    • 看请求发往哪些域名。发往作者自己的后端是常见做法。
  • 读取文件reads-files一般79 处命中
    • src/features/skills/adopt.ts:48: parseSkillFile(readFileSync(from, 'utf8'))
    • src/features/skills/adopt.ts:85if (!existsSync(bundle)) throw new Error('储存库副本已不存在:' + bundle)
    • src/features/skills/delete.ts:51if (!existsSync(bundle)) throw new Error('储存库中没有这个技能:' + slug)
    • src/features/mcp/document.ts:60if (!existsSync(target)) return []
    • 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
  • 动态加载模块dynamic-import一般21 处命中
    • …lient/features/cli/CliPanel.d.ts:8export declare function CliPanel({ cli, t }: CliPanelProps): import("react").JSX.Element;
    • …t/features/guide/GuidePanel.d.ts:12export declare function GuidePanel({ skills, mcp, refresh, t }: GuidePanelProps): import("react").JSX.Element;
    • …pes/features/skills/manager.d.ts:69refreshRegistry(rows?: SkillSummary[]): import("./registry-ops.ts").RefreshResult;
    • …s/client/shell/ManagerShell.d.ts:13export declare function ManagerShell({ cwd, enabled, pickDirectory, t }: ManagerShellProps): import("react").JSX.Element…
    • 动态导入本身无害,但会让依赖关系难以静态审阅。
  • 读取环境变量reads-env一般13 处命中
    • lib/index.js:1import{createRequire as e}from"node:module";import{copyFileSync as t,cpSync as n,existsSync as r,mkdirSync as i,readFile…
    • lib/index.js:7`)}}function wt(e,t){let n=e[t];return typeof n==`string`?n:``}function Tt(e,t){let n=e[t];return typeof n==`boolean`?n:…
    • lib/index.js:28`)}let os;function ss(){os=void 0}function cs(e,t){let n=Date.now();if(os!==void 0&&os.cwd===t&&n-os.at<5e3)return os.te…
    • src/shared/paths.ts:82return process.env.DSH_HOME || join(homedir(), '.dsh')
    • 环境变量里常混有密钥。看它是否把整个 env 都读走。
  • 接触凭据或密钥credentials一般7 处命中
    • lib/client.js:2628value: state?.apiKey?.status ? state.apiKey.status === "configured" ? t("configured") : state.apiKey.status : void 0
    • lib/client.js:2630state?.apiKey?.error ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StateRow, {
    • lib/client.js:2632value: state.apiKey.error
    • lib/index.js:1import{createRequire as e}from"node:module";import{copyFileSync as t,cpSync as n,existsSync as r,mkdirSync as i,readFile…
    • 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
逐条扫描明细
能力标识关注度命中次数
可执行外部程序spawns-processes高关注1
写入文件writes-files需留意36
含混淆或编码代码obfuscated-code需留意12
发起网络请求network需留意4
读取文件reads-files一般79
动态加载模块dynamic-import一般21
读取环境变量reads-env一般13
接触凭据或密钥credentials一般7

这份报告的口径

扫描读的是包里的源码,全程不执行第三方代码。 本次读了 151 个文件,扫描于 2026-10-16。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。

依赖安全公告

已查询这个插件声明的全部依赖,没有匹配到已公开的安全公告。(含 DSH 框架包在内的 @deepseek-ai/* 不作查询——那是运行时自己的问题,不是插件的。)

可信度

100 健康分 S 扣分项下方逐条附证据
  • 0没有可扣分的项

认证等级 L3

  • L0内容完整性✓sha512-WEb1K1uJItlwoKrA… 与本地 tarball 复算一致
  • L1来源✓维护者 ypipaq,仓库 YpipaQ/dsh-s-m-c-center(未做仓库审计)
  • L2发行✓隔离 profile 安装成功,4.3s,层已挂载
  • L3生态✓契约一致,宿主带它启动成功
  • L4多方独立验证—本站不做第三方独立背书
评分口径与作者信息

从 100 分开始按规则扣减:fail −20 / major −10 / warn −5 / minor −2;star 数、下载量、LLM 输出都不参与评分

维护者
ypipaq
仓库
https://github.com/YpipaQ/dsh-s-m-c-center
许可
MIT
最后发布
2026-10-11
周下载
555
star
1

扫描状态:已扫描。能力是事实,不是缺陷; 周下载与 star 只作参考,不参与评分。

认证等级核验的是这个包本身(内容指纹、来源、能否安装、声明是否属实);依赖漏洞是独立标注的,两者正交、不互相掩盖。可信 ≠ 无漏洞,上架 ≠ 推荐。

← 返回全部插件