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

界面美化插件集 2154911078-ship-it/dsh-open-source

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

为聊天界面换上动态壁纸、桌宠与 Git 面板

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

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

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

状态速览

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

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

验证判据与等级说明 →

可信度证据

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 48 处,展示前 46 条)
  • 请求外部主机registry.npmmirror.com
    check-dshmarket.mjs:2
    const pkg = await fetch("https://registry.npmmirror.com/dshmarket").then((r) => r.json());
  • 发起网络请求
    check-dshmarket.mjs:2
    const pkg = await fetch("https://registry.npmmirror.com/dshmarket").then((r) => r.json());
  • 发起网络请求
    dsh-at-file/client.js:103
    fetch(url, { cache: "no-store" })
  • 发起网络请求
    dsh-gif-wallpaper/client.js:168
    fetch("/dsh-wallpaper/status", { cache: "no-store" })
  • 发起网络请求
    dsh-gif-wallpaper/client.js:187
    fetch("/assets/wallpapers/manifest.json?v=" + Date.now(), { cache: "no-store" })
  • 读取本地文件
    dsh-gif-wallpaper/lib/index.js:48
    const info = await stat(path);
  • 执行外部命令来自配置/变量
    dsh-gif-wallpaper/lib/index.js:76
    const child = spawn(POWERSHELL, ["-NoProfile", "-NonInteractive", "-Command", script], {
  • 读取本地文件
    dsh-gif-wallpaper/lib/index.js:90
    const bytes = await readFile(path);
  • 读取本地文件
    dsh-gif-wallpaper/lib/index.js:118
    const bytes = await readFile(target);
  • 读取本地文件
    dsh-gif-wallpaper/lib/index.js:155
    const info = await stat(gif);
  • 读取本地文件
    dsh-gif-wallpaper/lib/index.js:161
    if (!existsSync(STATIC_PATH)) {
  • 读取本地文件
    dsh-gif-wallpaper/lib/index.js:184
    const info = await stat(gif);
  • 发起网络请求
    dsh-git-panel/client.js:99
    const response = await fetch("/dsh-git-panel/status" + query, { cache: "no-store" });
  • 发起网络请求
    dsh-git-panel/client.js:132
    const response = await fetch("/dsh-git-panel/diff?" + params.toString(), { cache: "no-store" });
  • 发起网络请求
    dsh-git-panel/client.js:153
    const response = await fetch("/dsh-git-panel/" + action, {
  • 执行外部命令来自配置/变量
    dsh-git-panel/lib/index.js:52
    child = spawn(gitPath, args, {
  • 读取本地文件
    dsh-git-panel/lib/index.js:99
    if (candidate !== "git" && !existsSync(candidate)) continue;
  • 读取本地文件
    dsh-git-panel/lib/index.js:115
    if (typeof fromEnv === "string" && fromEnv.length > 0 && existsSync(fromEnv)) return resolve(fromEnv);
  • 读取本地文件
    dsh-git-panel/lib/index.js:118
    const raw = readFileSync(join(home, "storages", "workspace.json"), "utf8");
  • 读取本地文件
    dsh-git-panel/lib/index.js:122
    if (typeof item?.path === "string" && existsSync(item.path)) return resolve(item.path);
  • 读取本地文件
    dsh-git-panel/lib/index.js:136
    info = statSync(absolute);
  • 读取本地文件
    dsh-git-panel/lib/index.js:250
    text = readFileSync(target, "utf8");
  • 执行外部命令来自配置/变量
    dsh-git-panel/smoke.mjs:56
    return execFileSync(GIT, args, { cwd, encoding: "utf8" });
  • 删除本地文件递归
    dsh-git-panel/smoke.mjs:60
    rmSync(SANDBOX, { recursive: true, force: true });
  • 写入本地文件
    dsh-git-panel/smoke.mjs:61
    mkdirSync(SANDBOX, { recursive: true });
  • 写入本地文件
    dsh-git-panel/smoke.mjs:63
    writeFileSync(join(SANDBOX, "tracked.txt"), "one\n", "utf8");
  • 写入本地文件
    dsh-git-panel/smoke.mjs:66
    writeFileSync(join(SANDBOX, "tracked.txt"), "one\ntwo\n", "utf8");
  • 写入本地文件
    dsh-git-panel/smoke.mjs:67
    writeFileSync(join(SANDBOX, "untracked.txt"), "hello\n", "utf8");
  • 删除本地文件递归
    dsh-git-panel/smoke.mjs:97
    rmSync(SANDBOX, { recursive: true, force: true });
  • 读取本地文件
    dsh-git-panel/smoke.mjs:98
    console.log("\nsandbox removed:", !existsSync(SANDBOX));
  • 发起网络请求
    dsh-image-workbench/client.js:69
    const response = await fetch(API + "/list", { cache: "no-store" });
  • 发起网络请求
    dsh-image-workbench/client.js:157
    const response = await fetch(API + path, {
  • 发起网络请求
    dsh-image-workbench/client.js:208
    await fetch(API + "/delete", {
  • 读取本地文件
    dsh-image-workbench/lib/index.js:46
    if (!existsSync(LIBRARY_DIR)) return [];
  • 读取本地文件
    dsh-image-workbench/lib/index.js:48
    for (const name of readdirSync(LIBRARY_DIR)) {
  • 读取本地文件
    dsh-image-workbench/lib/index.js:52
    const info = statSync(join(LIBRARY_DIR, name));
  • 读取本地文件
    dsh-image-workbench/lib/index.js:72
    if (!existsSync(full)) return { error: "文件不存在:" + name };
  • 读取本地文件
    dsh-image-workbench/lib/index.js:80
    if (candidate.length > 0 && existsSync(candidate)) {
  • 读取本地文件
    dsh-image-workbench/lib/index.js:91
    if (!existsSync(script)) {
  • 执行外部命令来自配置/变量
    dsh-image-workbench/lib/index.js:97
    child = spawn(NODE_BIN, [script, ...args], { env: scriptEnv(), windowsHide: true });
  • 删除本地文件
    dsh-image-workbench/lib/index.js:312
    unlinkSync(target.path);
  • 发起网络请求
    dsh-quota-checker/client.js:33
    const res = await fetch(target.href, { method: "GET", headers, cache: "no-store" });
  • 发起网络请求
    dsh-shark-pet/client.js:394
    fetch("/pet-assets/config.json", { cache: "no-store" })
  • 读取本地文件
    dsh-shark-pet/lib/index.js:29
    if (existsSync(join(repoRel, "pet.png"))) return repoRel;
  • 发起网络请求
    dsh-wallpaper-control/client.js:118
    fetch("/wallpaper/list", { cache: "no-store" })
  • 发起网络请求
    dsh-wallpaper-control/client.js:122
    fetch("/wallpaper/status", { cache: "no-store" })
扫描于 2026/11/5(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
涉及外部主机:registry.npmmirror.com

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • GIF动态壁纸
  • 线条小狗主题
  • @文件选择插件

DeepSeek Harness 本地配置与插件集:GIF 动态壁纸 + @文件选择插件 线条小狗主题

README

由 DeepSeek 最新模型翻译生成
DeepSeek Harness 本地配置与插件集 预览 一套为 DeepSeek Harness(DSH)Web 界面打造的本地插件与壁纸资源合集,全部开源。 作者:线条小狗 (Line Dog) · GitHub:2154911078-ship-it 🚀 想装出和我一模一样的 DSH 界面? 请看 INSTALL.md —— 从零复现完整安装指南(含 DSH 本体安装、模型配置、全部插件、壁纸、桌宠、主题)。 包含 五个插件(GIF 动态壁纸、@文件 选择附加、Git 面板、API 配额查询、鲨鱼帽小熊桌宠)、一套动态壁纸资源库和一个桌宠源项目,以及配套的安装 / 同步脚本。所有代码均为纯 JavaScript + PowerShell,无编译步骤,复制即用。
展开完整文档(README 剩余 1 节)
DeepSeek Harness 本地配置与插件集

预览

一套为 DeepSeek Harness(DSH)Web 界面打造的本地插件与壁纸资源合集,全部开源。

作者:线条小狗 (Line Dog) · GitHub:2154911078-ship-it

🚀 想装出和我一模一样的 DSH 界面? 请看 INSTALL.md —— 从零复现完整安装指南(含 DSH 本体安装、模型配置、全部插件、壁纸、桌宠、主题)。

包含 五个插件(GIF 动态壁纸、@文件 选择附加、Git 面板、API 配额查询、鲨鱼帽小熊桌宠)、一套动态壁纸资源库和一个桌宠源项目,以及配套的安装 / 同步脚本。所有代码均为纯 JavaScript + PowerShell,无编译步骤,复制即用。

插件总览

| 插件 | 功能 | 界面位置 |
| dsh-gif-wallpaper | GIF 动态壁纸、透明度滑块、壁纸库、Cordis 面板汉化 | 页面背景 · 右上角滑块 · 侧栏「插件」 |
| dsh-at-file | 输入 @ 弹出工作区文件选择器,文件内容随消息内联 | 输入框 |
| dsh-git-panel | Git 面板:分支 / 状态 / diff / 提交历史 + 暂存 / 提交 / 推送 | 右侧栏标签页 · 标题栏 ⑂ Git |
| dsh-quota-checker | 手动查询 OpenAI 兼容 API 配额(不自动发起请求) | 侧栏底部 |
| dsh-shark-pet | 鲨鱼帽小熊桌宠(6 个动作、拖拽、互动) | 全屏浮动 |
| dsh-wallpaper-control | 壁纸管理面板 + Cordis 插件面板精简 | 右下角 🖼️ |

目录结构

dsh-open-source/
├── docs/cover.png # 仓库预览图(README 顶部展示) ├── dsh-gif-wallpaper/ # 插件:GIF 动态壁纸(网页背景) │ ├── package.json # 插件元数据(Cordis 客户端注入声明) │ ├── client.js # 浏览器端:透明度滑块 / 暂停播放 / 面板汉化 │ ├── lib/index.js # Host 端:/dsh-wallpaper 等 HTTP 路由 │ └── lib/index.d.ts # 类型声明 ├── dsh-at-file/ # 插件:输入框输入 @ 弹出工作区文件选择器 │ ├── package.json │ ├── client.js # 浏览器端:@ 触发文件选择浮层 │ ├── lib/index.js # Host 端:文件列表接口 + 消息内联扩展 │ ├── lib/index.d.ts │ └── smoke.mjs # Host 端冒烟测试(mock ctx 驱动 apply()) ├── dsh-git-panel/ # 插件:Git 面板(右侧栏标签页) │ ├── package.json │ ├── client.js # 浏览器端:右侧栏标签 + 标题栏入口 + 暂存/提交/推送工具条 │ ├── lib/index.js # Host 端:status/diff/branches + stage/unstage/commit/push │ ├── lib/index.d.ts │ └── smoke.mjs # Host 端冒烟测试 ├── dsh-quota-checker/ # 插件:OpenAI 兼容 API 配额查询(纯前端) │ ├── package.json │ ├── client.js # 浏览器端:配额查询面板 │ └── lib/index.js # Host 端:占位实现(无路由) ├── shark-hood-bear-pet/ # 鲨鱼帽小熊桌宠完整项目 │ ├── README.md # 桌宠项目说明(动作/安装/技术要点) │ ├── pet/ # 桌宠源项目(图集、动作配置、源素材) │ └── plugins/ # 配套插件 │ ├── dsh-shark-pet/ # 桌宠静态插件(页面渲染桌宠) │ └── dsh-wallpaper-control/ # 壁纸控制静态插件(🖼️ 壁纸管理) ├── wallpapers/ # 壁纸库 │ ├── steam-wallpaper.gif # 动态壁纸资源 │ ├── sync-wallpapers.ps1 # 同步脚本:把图片安装到 GUI 壁纸库 │ └── 说明.txt # 使用说明 ├── wallpaper.gif # 默认壁纸(插件自带) ├── 89898.png # 设计图 └── check-dshmarket.mjs # 开发辅助:查询 dshmarket registry 信息

插件一:dsh-gif-wallpaper(GIF 动态壁纸)

把一张 GIF 变成 DSH 网页界面的动态背景。

功能
- Host 端通过内置 webServer 提供同源路由:
- GET /dsh-wallpaper —— 返回当前 GIF 文件(image/gif)
- GET /dsh-wallpaper-static —— 返回 GIF 首帧提取的 JPEG
- GET /dsh-wallpaper/status —— 返回 { ok, version, size, name },供前端检测变更
- 浏览器端右上角「空心星 + 竖条滑块」控制壁纸透明度(0–100%),星标随数值升高变黄
- 侧栏底部暂停 / 播放按钮
- 附带 Cordis 徽标汉化、Cordis 面板宽度对齐、插件栏上方横幅图对齐
- 前端每 15 秒轮询 /dsh-wallpaper/status,替换 GIF 文件即可热切换壁纸,无需重启

壁纸路径(按优先级查找)

1. 环境变量 DSH_WALLPAPER_PATH(显式指定 GIF 文件路径)
2. 进程工作目录下的 wallpaper.gif
3. 内置候选路径(默认值见 dsh-gif-wallpaper/lib/index.js 的 CANDIDATES)

插件二:dsh-at-file(@文件 选择附加)

在输入框输入 @(单词边界处)弹出工作区文件选择器,选中后文件内容随消息发送给 Agent。

功能
- GET /dsh-at-file/list?cwd=&q= —— 返回有界的工作区文件目录,按匹配度排序(仅文件、正斜杠相对路径、最多 2000 个文件、深度 4、结果 60 条)
- agent/pre-step 消息扩展:扫描用户消息中的 @token,在工作区内解析并把文件文本内联进进入模型的那一步;原始会话记录保留 @token 不变
- 解析失败的 token(错字、@user、邮箱、目录、二进制、超大文件)原样保留,不破坏普通文本
- 保留瀑布流调用链:next() 先执行,仅在确实扩展时才替换决策

路径安全:只解析工作区根目录内部的文件,node_modules、.git、dist 等目录一律跳过。

插件三:dsh-git-panel(Git 面板)

在 DSH 右侧栏查看并管理任意本地 Git 仓库:分支、改动、diff、提交历史,并支持暂存 / 提交 / 推送。

功能
- Host 端同源路由(全部通过固定参数 spawn 调用 git,无 shell 注入面):
- GET /dsh-git-panel/status?repo= —— 分支、HEAD、ahead/behind、改动列表、最近 20 条提交
- GET /dsh-git-panel/diff?repo=&file=&staged=&untracked= —— 单文件 diff;未跟踪文件返回内容预览
- GET /dsh-git-panel/branches?repo= —— 本地分支列表
- POST /dsh-git-panel/stage / unstage / commit / push —— 暂存 / 取消暂存 / 提交 / 推送
- 浏览器端以 右侧栏标签页呈现(与「文件」「文档预览」并列),会话标题栏 ⑂ Git 作为入口
- 改动列表按 git 约定着色(M 黄 / A 绿 / D 红 / ?? 灰 / R 紫),点任意一行查看 diff(+ 绿底、- 红底、@@ 蓝字)
- 提交信息框回车即提交;工具条提供「暂存全部 / 取消暂存 / 推送 ↑」
- 面板打开时每 10 秒自动刷新(输入路径时不会被刷新覆盖),也可手动 ↻;仓库路径保存在 localStorage

git 可执行文件解析顺序

1. 环境变量 DSH_GIT_PATH(显式指定)
2. 便携版 tools/git/cmd/git.exe(MinGit,零安装)
3. PATH 中的 git

凭据:插件不读取、不存储任何凭据 —— push 完全交给 git 自己的 credential helper (例如 git config credential.helper store);推送失败时面板会直接显示 git 的原始原因(凭据缺失 / 远端有新提交 / 无 upstream)。

插件四:dsh-quota-checker(API 配额查询)

手动查询 OpenAI 兼容接口的额度 / 余额,不会自动发起请求:在侧栏面板填入接口地址与 Key,点击查询后才发一次请求,返回结果按字段名(quota / balance / remaining / usage …)就地展开。

默认接口是作者自用地址,可在面板里改成任意 OpenAI 兼容端点。

插件五 / 项目:鲨鱼帽小熊桌宠(shark-hood-bear-pet)

一只戴着灰色鲨鱼头套的奶油色小熊桌宠,配套两个 DSH 本地插件,完整项目见 shark-hood-bear-pet/。

动作列表(6 个动作)

| 动作 | 帧数 | 帧率 | 循环 | 说明 |
| idle | 12 | 6fps | 是 | 待机呼吸+眨眼 |
| walk | 16 | 10fps | 是 | 行走 |
| run | 12 | 12fps | 是 | 奔跑 |
| sleep | 8 | 4fps(客户端2fps) | 是 | 休眠 |
| interact | 12 | 8fps | 否 | 点击互动 |
| jump_fall | 8 | 8fps | 否 | 跳跃下落 |

插件功能
- dsh-shark-pet(桌宠):全屏浮动桌宠(shell.overlay),逐帧对齐补偿消除 AI 帧抖动,左键点击互动、拖拽甩出(带惯性奔跑)、右键头顶倒 U 弧形菜单,30 秒无操作自动入睡
- dsh-wallpaper-control(壁纸控制):右下角 🖼️ 壁纸管理面板(选择文件/壁纸列表/透明度/暂停),并精简 Cordis 插件面板

桌宠素材路径(按优先级解析)

1. 环境变量 DSH_PET_BASE(推荐,可移植)
2. 仓库内相对路径 shark-hood-bear-pet/pet/pet(仓库自包含)
3. 原作者机器绝对路径(兼容回退)

安装:把 shark-hood-bear-pet/plugins/ 下的两个插件复制到 DSH profile 的 node_modules,并在 cordis.patch.yml 中加入对应 insert 条目(详见 shark-hood-bear-pet/README.md)。

安装到 DSH

插件是「复制 + 声明」两步安装,无需编译:

1. 把 dsh-gif-wallpaper、dsh-at-file、dsh-git-panel、dsh-quota-checker 四个文件夹(以及 shark-hood-bear-pet/plugins/ 下的 dsh-shark-pet、dsh-wallpaper-control)复制到你的 DSH profile 的 node_modules 目录下(例如 %USERPROFILE%\.dsh\profiles\node_modules\)。
2. 在 profile 的补丁层 cordis.patch.yml(例如 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml)中加入插入条目:

- insert:
- id: "dsh-gif-wallpaper"
name: "dsh-gif-wallpaper"
- insert:
- id: "dsh-at-file"
name: "dsh-at-file"
- insert:
- id: "dsh-shark-pet"
name: "dsh-shark-pet"
- insert:
- id: "dsh-wallpaper-control"
name: "dsh-wallpaper-control"
- insert:
- id: "dsh-git-panel"
name: "dsh-git-panel"
- insert:
- id: "dsh-quota-checker"
name: "dsh-quota-checker"

3. 重启 DSH Web 服务即可生效。

⚠️ 只改 client.js 时可以靠 profile 的热重载生效;改动插件的 host 端(lib/index.js)必须重启 DSH —— Node 会缓存同路径的 ES 模块,热重载不会重新加载它。

Git 面板的前置条件(可选)

dsh-git-panel 需要一个可用的 git,三种方式任选:

- 零安装:下载 MinGit(便携版)解压到 tools/git/;
- 或直接使用系统已安装的 Git(会被自动发现);
- 或设置环境变量 DSH_GIT_PATH 指向任意 git.exe。

壁纸库用法

1. 把想用的壁纸图片(gif / png / jpg / jpeg / webp / bmp)放进 wallpapers/ 文件夹。
2. 运行 wallpapers/sync-wallpapers.ps1(右键 → 使用 PowerShell 运行)。脚本会把图片安装到 GUI 的壁纸库并生成 manifest.json;默认目标目录可通过参数 -DistPaths 覆盖。
3. 打开网页,点击左下角侧栏「插件」→ 壁纸列表点 🔄 刷新,再点击任意壁纸即可切换。

- 当前选择的壁纸自动保存,刷新 / 重启后仍生效。
- 「默认壁纸」= 插件自带的 wallpaper.gif。
- 透明度:右上角星星 + 竖条滑块控制壁纸显示强度(向上减少、向下增加)。

许可

MIT License。详见 LICENSE。

免责声明

- shark-hood-bear-pet/ 项目内的许可声明为「仅供个人学习和非商业用途使用」,见其 README。
- 各插件内默认的壁纸 / 桌宠 / git 路径为原作者机器的实际路径,在其它机器上请通过环境变量(DSH_WALLPAPER_PATH、DSH_PET_BASE、DSH_GIT_PATH)或修改源码适配。
预览分享卡片长什么样 ↓2154911078-ship-it/dsh-open-source
分享 · DeepSeek Harness Hub
2154911078-ship-it/dsh-open-source

为聊天界面换上动态壁纸、桌宠与 Git 面板

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