🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

插件套件合集 xuediner-source/dsh-plugin-suite

DeepSeek Harness
xuediner-source34 天前有提交已提供中文文档扫描:含敏感能力

按需挑选六个独立插件,统一维护入口

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add xuediner-source/dsh-plugin-suite
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/10/04·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 34 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 173 处,展示前 108 条)
  • 读取本地文件
    packages/dsh-antigravity-boost/lib/index.js:414
    if (abs && existsSync(abs) && isGitRepo(abs)) {
  • 执行外部命令来自配置/变量
    packages/dsh-antigravity-boost/lib/verify.js:67
    const result = spawnSync(trimmed, {
  • 执行外部命令固定命令
    packages/dsh-antigravity-boost/lib/worktree.js:30
    return execFileSync('git', ['-C', cwd, ...args], {
  • 执行外部命令固定命令
    packages/dsh-antigravity-boost/lib/worktree.js:37
    return execFileSync('git', ['-C', cwd, ...args], {
  • 读取本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:84
    if (lstatSync(file).isSymbolicLink()) return null;
  • 读取本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:85
    const state = JSON.parse(readFileSync(file, 'utf8'));
  • 读取本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:107
    if (lstatSync(path).isSymbolicLink()) throw new Error(`refusing symlink in boost state path: ${path}`);
  • 写入本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:112
    mkdirSync(dir, { recursive: true });
  • 读取本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:115
    if (lstatSync(target).isSymbolicLink()) throw new Error(`refusing symlink state file: ${target}`);
  • 写入本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:119
    writeFileSync(target, JSON.stringify(state, null, 2), 'utf8');
  • 读取本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:135
    if (existsSync(excludeFile)) {
  • 读取本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:136
    const content = readFileSync(excludeFile, 'utf8');
  • 写入本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:138
    writeFileSync(excludeFile, `${content.trimEnd()}\n.dsh-boost\n`, 'utf8');
  • 写入本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:141
    mkdirSync(infoDir, { recursive: true });
  • 写入本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:142
    writeFileSync(excludeFile, '.dsh-boost\n', 'utf8');
  • 写入本地文件
    packages/dsh-antigravity-boost/lib/worktree.js:206
    mkdirSync(boostDir, { recursive: true });
  • 读取本地文件
    packages/dsh-grok-memory/lib/dream.js:40
    try { return JSON.parse(readFileSync(statePath(paths), 'utf8')); }
  • 写入本地文件
    packages/dsh-grok-memory/lib/dream.js:45
    mkdirSync(paths.projectDir, { recursive: true });
  • 写入本地文件
    packages/dsh-grok-memory/lib/dream.js:46
    writeFileSync(statePath(paths), JSON.stringify(state, null, 2), 'utf8');
  • 读取本地文件
    packages/dsh-grok-memory/lib/dream.js:77
    if (existsSync(lp)) {
  • 读取本地文件
    packages/dsh-grok-memory/lib/dream.js:78
    const age = (now - statSync(lp).mtimeMs) / 1000;
  • 删除本地文件
    packages/dsh-grok-memory/lib/dream.js:80
    rmSync(lp, { force: true });
  • 写入本地文件
    packages/dsh-grok-memory/lib/dream.js:82
    mkdirSync(paths.projectDir, { recursive: true });
  • 写入本地文件
    packages/dsh-grok-memory/lib/dream.js:83
    writeFileSync(lp, String(now), 'utf8');
  • 删除本地文件
    packages/dsh-grok-memory/lib/dream.js:87
    export function releaseLock(paths) { rmSync(lockPath(paths), { force: true }); }
  • 读取本地文件
    packages/dsh-grok-memory/lib/dream.js:137
    if (existsSync(sessions)) {
  • 读取本地文件
    packages/dsh-grok-memory/lib/dream.js:138
    for (const f of readdirSync(sessions).filter((n) => n.endsWith('.md'))) {
  • 读取本地文件
    packages/dsh-grok-memory/lib/dream.js:139
    ingest(readFileSync(join(sessions, f), 'utf8'));
  • 写入本地文件
    packages/dsh-grok-memory/lib/dream.js:144
    mkdirSync(topics, { recursive: true });
  • 写入本地文件
    packages/dsh-grok-memory/lib/dream.js:151
    writeFileSync(file, `${header}${body}\n`, 'utf8');
  • 写入本地文件
    packages/dsh-grok-memory/lib/search.js:54
    mkdirSync(dirname(path), { recursive: true });
  • 读取本地文件
    packages/dsh-grok-memory/lib/search.js:101
    if (!existsSync(dir)) return;
  • 读取本地文件
    packages/dsh-grok-memory/lib/search.js:102
    for (const name of readdirSync(dir)) {
  • 读取本地文件
    packages/dsh-grok-memory/lib/search.js:105
    try { st = statSync(full); } catch { continue; }
  • 读取本地文件
    packages/dsh-grok-memory/lib/search.js:124
    try { st = statSync(file); } catch { continue; }
  • 读取本地文件
    packages/dsh-grok-memory/lib/search.js:133
    const text = readFileSync(file, 'utf8');
  • 读取本地文件
    packages/dsh-grok-memory/lib/suggest.js:32
    if (!existsSync(this.file)) return [];
  • 读取本地文件
    packages/dsh-grok-memory/lib/suggest.js:34
    try { text = readFileSync(this.file, 'utf8'); } catch { return []; }
  • 写入本地文件
    packages/dsh-grok-memory/lib/suggest.js:46
    mkdirSync(dirname(this.file), { recursive: true });
  • 写入本地文件
    packages/dsh-grok-memory/lib/suggest.js:50
    writeFileSync(tmp, body ? `${body}\n` : '', 'utf8');
  • 写入本地文件
    packages/dsh-grok-memory/lib/suggest.js:51
    renameSync(tmp, this.file);
  • 删除本地文件
    packages/dsh-grok-memory/lib/suggest.js:53
    try { unlinkSync(tmp); } catch { }
  • 执行外部命令固定命令
    packages/dsh-grok-memory/lib/tracks.js:111
    const out = execFileSync('git', ['-C', key, 'rev-parse', '--abbrev-ref', 'HEAD'], {
  • 读取本地文件
    packages/dsh-grok-memory/lib/tracks.js:243
    try { return readFileSync(path, 'utf8'); } catch { return ''; }
  • 写入本地文件
    packages/dsh-grok-memory/lib/tracks.js:248
    mkdirSync(dirname(file), { recursive: true });
  • 写入本地文件
    packages/dsh-grok-memory/lib/tracks.js:251
    writeFileSync(tmp, text, 'utf8');
  • 写入本地文件
    packages/dsh-grok-memory/lib/tracks.js:252
    renameSync(tmp, file);
  • 删除本地文件
    packages/dsh-grok-memory/lib/tracks.js:254
    try { unlinkSync(tmp); } catch { }
  • 读取本地文件
    packages/dsh-grok-memory/lib/tracks.js:288
    if (existsSync(loc.file) && readText(loc.file) === '') {
  • 读取本地文件
    packages/dsh-grok-memory/lib/tracks.js:493
    if (existsSync(loc[target].file)) files.push(loc[target].file);
  • 读取本地文件
    packages/dsh-grok-memory/lib/tracks.js:495
    if (existsSync(loc.daily.file)) files.push(loc.daily.file);
  • 读取本地文件
    packages/dsh-grok-memory/lib/tracks.js:497
    if (!existsSync(dir)) continue;
  • 读取本地文件
    packages/dsh-grok-memory/lib/tracks.js:498
    for (const name of readdirSync(dir)) {
  • 删除本地文件递归
    packages/dsh-grok-memory/lib/tracks.js:510
    rmSync(path, { recursive: true, force: true });
  • 写入剪贴板
    packages/dsh-subs-hub/lib/client.js:210
    navigator.clipboard.writeText(text).catch(() => {});
  • 执行外部命令固定命令
    packages/dsh-subs-hub/lib/index.js:91
    return execFileSync("/usr/bin/security", [
  • 读取本地文件
    packages/dsh-subs-hub/lib/index.js:111
    return readFileSync(credentialsFilePath(), "utf8");
  • 执行外部命令固定命令
    packages/dsh-subs-hub/lib/index.js:131
    const output = execFileSync("/usr/bin/security", [
  • 执行外部命令固定命令
    packages/dsh-subs-hub/lib/index.js:180
    execFileSync("/usr/bin/security", [
  • 读取本地文件
    packages/dsh-subs-hub/lib/index.js:201
    raw = readFileSync(path, "utf8");
  • 读取本地文件
    packages/dsh-subs-hub/lib/index.js:210
    if (!existsSync(dir)) mkdirSync(dir, {
  • 写入本地文件
    packages/dsh-subs-hub/lib/index.js:210
    if (!existsSync(dir)) mkdirSync(dir, {
  • 写入本地文件
    packages/dsh-subs-hub/lib/index.js:214
    writeFileSync(path, updated, {
  • 写入本地文件
    packages/dsh-subs-hub/lib/index.js:218
    chmodSync(path, 384);
  • 读取本地文件
    packages/dsh-subs-hub/lib/index.js:282
    text = await readFile(path, "utf8");
  • 读取本地文件
    packages/dsh-subs-hub/lib/index.js:287
    text = await readFile(legacyAuthFilePath(), "utf8");
  • 删除本地文件
    packages/dsh-subs-hub/lib/index.js:294
    await rm(legacyAuthFilePath(), { force: true });
  • 发起网络请求
    packages/dsh-subs-hub/lib/index.js:793
    return await fetch(url, init);
  • 读取本地文件
    packages/dsh-subs-hub/lib/index.js:1090
    text = await readFile(path, "utf8");
  • 写入本地文件
    packages/dsh-subs-hub/lib/index.js:1104
    await mkdir(dirname(path), { recursive: true, mode: 448 });
  • 写入本地文件
    packages/dsh-subs-hub/lib/index.js:1107
    await writeFile(tmp, JSON.stringify(store, null, 2));
  • 写入本地文件
    packages/dsh-subs-hub/lib/index.js:1108
    await rename(tmp, path);
  • 删除本地文件
    packages/dsh-subs-hub/lib/index.js:1110
    await rm(tmp, { force: true });
  • 发起网络请求
    packages/dsh-subs-hub/lib/index.js:1983
    const response = await fetch(CODEX_TOKEN_URL, {
  • 发起网络请求
    packages/dsh-subs-hub/lib/index.js:2003
    const response = await fetch(CODEX_TOKEN_URL, {
  • 发起网络请求
    packages/dsh-subs-hub/lib/index.js:2271
    response = await this.request(options, session, watchdog.signal);
  • 发起网络请求
    packages/dsh-subs-hub/lib/index.js:2278
    response = await this.request(options, session, watchdog.signal);
  • 执行外部命令固定命令
    packages/dsh-subs-hub/lib/index.js:2701
    const match = execFileSync("claude", ["--version"], {
  • 发起网络请求
    packages/dsh-subs-hub/lib/index.js:2727
    const response = await fetch(CLAUDE_PROFILE_URL, { headers: { authorization: `Bearer ${accessToken}` }, signal });
  • 读取密钥环境变量
    packages/dsh-subs-hub/lib/index.js:4363
    return process.env.ANTIGRAVITY_CLIENT_SECRET || ANTIGRAVITY_PUBLIC_CLIENT_SECRET;
  • 请求外部主机openrouter.ai
    packages/dsh-subs-hub/lib/index.js:6396
    const r = await fetch("https://openrouter.ai/api/v1/usage", { headers: { authorization: `Bearer ${s}` }, signal });
  • 发起网络请求
    packages/dsh-usage-board/lib/client.js:92
    const res = await fetch(PATH, { cache: "no-store" });
  • 写入剪贴板
    packages/dsh-usage-board/lib/client.js:103
    navigator.clipboard.writeText(text).catch(() => {});
  • 发起网络请求
    packages/dsh-usage-board/lib/http.js:155
    const req = transport.request(reqOpts, collect);
  • 发起网络请求
    packages/dsh-usage-board/lib/http.js:163
    const connect = http.request({
  • 发起网络请求
    packages/dsh-usage-board/lib/http.js:178
    const req = https.request({ ...reqOpts, socket, agent: false }, collect);
  • 读取本地文件
    packages/dsh-usage-board/lib/index.js:67
    if (!existsSync(path) || statSync(path).size > MAX_CONFIG_BYTES) return {};
  • 读取本地文件
    packages/dsh-usage-board/lib/index.js:67
    if (!existsSync(path) || statSync(path).size > MAX_CONFIG_BYTES) return {};
  • 读取本地文件
    packages/dsh-usage-board/lib/index.js:68
    const parsed = parseJsonText(readFileSync(path, "utf8"));
  • 读取本地文件
    packages/dsh-usage-board/lib/index.js:115
    const st = statSync(join(dir, file));
  • 读取本地文件
    packages/dsh-usage-board/lib/index.js:125
    if (!existsSync(dir)) return [];
  • 发起网络请求
    packages/dsh-usage-board/lib/provider-runner.js:73
    const result = await withTimeout(provider.fetch({
  • 发起网络请求
    packages/dsh-xuediner-gateway/src/codearts-auth.ts:70
    response = await fetch(STS_TOKEN_ENDPOINT, {
  • 读取密钥环境变量
    packages/dsh-xuediner-gateway/src/commandcode.ts:160
    const fromEnv = process.env.COMMANDCODE_API_KEY?.trim();
  • 读取密钥环境变量
    packages/dsh-xuediner-gateway/src/nine-router.ts:97
    const apiKey = process.env.NINE_ROUTER_API_KEY?.trim() || readCredential('NINE_ROUTER_API_KEY');
  • 读取密钥环境变量
    packages/dsh-xuediner-gateway/src/pool-hub.ts:37
    return process.env.XUEDINER_API_KEY
  • 读取密钥环境变量
    packages/dsh-xuediner-gateway/src/pool-hub.ts:38
    ?? process.env.XUEDINER_GATEWAY_API_KEY
  • 读取密钥环境变量
    packages/dsh-xuediner-gateway/src/pool-hub.ts:39
    ?? process.env.WORKBUDDY_GATEWAY_API_KEY
  • 发起网络请求
    packages/dsh-xuediner-gateway/src/pool-hub.ts:219
    const response = await fetch(GATEWAY_STATUS_URL, {
  • 发起网络请求
    packages/dsh-xuediner-gateway/src/pool-hub.ts:273
    const res = await fetch(`${zcodeCfg.baseUrl}/models`, {
  • 请求外部主机chatgpt.com
    packages/dsh-xuediner-gateway/src/pool-hub.ts:319
    const res = await fetch('https://chatgpt.com/backend-api/wham/usage', {
  • 发起网络请求
    packages/dsh-xuediner-gateway/src/pool-hub.ts:319
    const res = await fetch('https://chatgpt.com/backend-api/wham/usage', {
  • 发起网络请求
    packages/dsh-xuediner-gateway/src/pool-hub.ts:522
    const response = await fetch(`${GATEWAY_BASE}/panel/api/login/start`, {
  • 发起网络请求
    packages/dsh-xuediner-gateway/src/pool-hub.ts:550
    const response = await fetch(
  • 发起网络请求
    packages/dsh-xuediner-gateway/src/pool-hub.ts:580
    const response = await fetch(`${GATEWAY_BASE}/panel/api/school/run_all`, {
  • 执行外部命令固定命令
    packages/dsh-xuediner-gateway/src/pool-hub.ts:830
    const child = execFile(
  • 读取密钥环境变量
    packages/dsh-xuediner-gateway/src/qoder.ts:214
    const envToken = process.env.QODER_ACCESS_TOKEN?.trim() || readCredential('QODER_ACCESS_TOKEN');
  • 读取密钥环境变量
    packages/dsh-xuediner-gateway/src/zcode.ts:99
    process.env.ZCODE_PROXY_API_KEY?.trim()
扫描于 2026/11/4(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
涉及外部主机:openrouter.ai、chatgpt.com

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery@deepseek-ai/dsh-llm@deepseek-ai/dsh-agent@deepseek-ai/dsh-commands@deepseek-ai/dsh-tools@deepseek-ai/dsh-settings@deepseek-ai/dsh-authorization@deepseek-ai/dsh-credentials
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 六个独立插件按需挑选
  • 统一维护入口
  • 插件经过审计

六个经过审计、可独立安装的 DeepSeek Harness 插件:订阅、记忆、工作树、上下文纠正、用量与账号网关。

README

由 DeepSeek 最新模型翻译生成
DSH Plugin Suite 六个插件,一个维护入口。按需安装,与原生 DeepSeek Harness 协作。 下载插件 · 上游对照 · 修复记录 · 开发说明 把 dsh-subs-hub、dsh-antigravity-boost、dsh-grok-memory、dsh-autocompact、dsh-usage-board 和 dsh-xuediner-gateway 整合在同一个 workspace。每个插件都保留自己的入口、配置、许可证和独立安装包,先完成兼容修复与针对性测试,再打包发布。原有六个仓库已按所有者要求于 2026-10-02 删除,整合发布已验证通过;准确的来源提交保存在本仓库的 source/<package> 标签中。 本仓库不包含 Xueness。 对照的 DSH 版本为 0.2.0-rc.2,上游与原插件的准确 commit 见 来源清单。不替换 DSH 内核,也不自动把六个插件全部启用。
展开完整文档(README 剩余 1 节)
DSH Plugin Suite

六个插件,一个维护入口。按需安装,与原生 DeepSeek Harness 协作。

下载插件 · 上游对照 · 修复记录 · 开发说明

把 dsh-subs-hub、dsh-antigravity-boost、dsh-grok-memory、dsh-autocompact、dsh-usage-board 和 dsh-xuediner-gateway 整合在同一个 workspace。每个插件都保留自己的入口、配置、许可证和独立安装包,先完成兼容修复与针对性测试,再打包发布。原有六个仓库已按所有者要求于 2026-10-02 删除,整合发布已验证通过;准确的来源提交保存在本仓库的 source/<package> 标签中。

本仓库不包含 Xueness。 对照的 DSH 版本为 0.2.0-rc.2,上游与原插件的准确 commit 见 来源清单。不替换 DSH 内核,也不自动把六个插件全部启用。

插件与原生能力的分工

| 插件 | 保留的能力 | 与原生 DSH 的分工 |
| Subscriptions Hub | 订阅账号、额外供应商协议、登录管理 | 原生已有通用模型配置和部分 OAuth;Hub 避让已有 provider 路由 |
| Antigravity Boost | 临时工作树、验证与修复迭代、交付检查 | 原生已有并行与工作流;工作树隔离仍是插件增量 |
| Grok Memory | 五轨跨会话记忆、检索注入、建议确认队列 | 原生会话历史不能替代用户/项目长期记忆 |
| Autocompact | 可选错误分类、观测与窗口上限纠正 | 自动压缩和 /compact 使用原生实现;不再修改旧预设目录 |
| Usage Board | 订阅额度、窗口与重置时间面板 | 原生 token meter 负责请求/上下文 token,不等同账号剩余额度 |
| Xuediner Gateway | 统一 provider、多账号协议、号池面板与 Go 网关 | 作为可选 xuedinerAPI 路由使用,保留供应商专用增量 |

安装

从 Release 选择需要的 .tgz。使用你正在运行的 profile 名称(下面以 desktop 为例):

dsh plugin --profile desktop add /absolute/path/dsh-grok-memory-0.3.1.tgz

也可以在插件管理器中填入对应 Release 附件的完整 URL。根仓库是 workspace,不能把仓库根目录当作一个 DSH 插件安装。六个插件互不要求全部安装;选择实际需要的包,并按该插件 README 完成配置后重启宿主。

- 已由原生 llm-pi-ai 管理的 provider,应继续使用该 owner;Hub 会避让已注册的同名路由。
- Memory 的模型建议不会直接改写注入轨道,需用户通过确认命令接受。
- Autocompact 默认 observe;只有明确设置 mode: correct 才纠正错误分类和模型窗口。
- Boost 只在主动调用时工作;验证未通过会阻止成功交付。
- 网关面板限定本机同源请求。启用 provider 插件不会替你安装、启动或登录外部网关服务。

升级前请查看各包 README。本轮不迁移或删除用户原有的登录、会话和记忆数据;新的 provider 状态与磁盘数据仍位于用户自己的本机目录。

开发与验收

需要 Node.js 22.19+ 或 24+,Go 用于 bundled gateway 回归;CI 使用 Node 24.20.0 和 Go 1.27.1。

npm ci --ignore-scripts --no-audit --no-fund
npm run build
npm run typecheck
npm run check
npm test
npm run pack:plugins

artifacts/ 生成六个可独立安装的包、SHA256SUMS 和安装包清单。检查包括真实发布 DSH runtime 的协议测试、临时工作树与本机 HTTP 回归、TypeScript、Go 回归及安装包内容检查。缺失工具链不会被记为成功。

验收范围: 无真实账号登录、无收费模型请求、无供应商额度实测。测试中的模拟响应仅验证协议、状态和错误处理,不能证明所有供应商当前可用,也不代表模型性能。详细范围和已知限制见 修复记录。

一个经过审计的工作区,内含六个可独立安装的 DeepSeek Harness 插件。这套插件保留了原生压缩与工作流基础,修复了过期的宿主契约,并保留了实用的订阅、记忆、配额和账号池扩展。请安装选定的发布归档,而不是工作区根目录。兼容性对照 DSH 0.2.0-rc.2 审查;测试不使用真实账号或付费推理。

许可证与来源

MIT。各包的声明均予保留,包括原先随附的 Go 网关署名。见 NOTICE 和固定的源码提交。
预览分享卡片长什么样 ↓xuediner-source/dsh-plugin-suite
分享 · DeepSeek Harness Hub
xuediner-source/dsh-plugin-suite

按需挑选六个独立插件,统一维护入口

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部