DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

honghudavy-star /

DSH_plugins_4U

Verified

DSH 自建插件集合:微信桥接器 + GUI 微信入口补丁,一键安装

★ 2 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@1868796c

DSH Plugins 4U

让 DeepSeek Harness 连接微信、拥有个性壁纸,也能读懂图片。

DeepSeek Harness 插件集合

DSH Plugins 4U 是一组面向 DeepSeek Harness(DSH)的社区插件。仓库根包提供统一的 “自定义插件”设置页,微信、壁纸和识图分别作为独立的 DSH 原生 bundle 安装、配置和启停。

本仓库当前默认兼容目标为 @deepseek-ai/dsh@0.1.0-rc.6。每个包都通过 dsh.bundle.patch 注册 Cordis Host;需要界面的包再通过 dsh.client 加载 Web 客户端模块。 整个过程不改写 DSH 安装目录、npm exec 缓存或已经构建的客户端 bundle。

[!IMPORTANT] 本项目不是 DeepSeek Harness 官方插件。切换到其他 DSH 版本前,请先在测试 profile 中验证 Host、客户端 Slot 和配置读写是否仍兼容。

快速安装 · 首次使用 · 配置与数据 · 开发与验证 · 常见问题

插件一览

包 功能 DSH 扩展点
@dsh-plugins/4u 仓库总插件;在“设置 → 插件”注册“自定义插件”页 Cordis Host + settings.plugins.tab
@dsh-plugins/wechat 微信与 DSH 会话双向桥接;提供微信会话快捷入口 Cordis Host + sidebar.footer.action
@dsh-plugins/wallpaper 使用预设或本地图片作为 DSH Web 背景 Cordis Host + webServer.tapIndex
@dsh-plugins/vision 先分析粘贴/拖入的图片,再把纯文本结果提交给模型 Host HTTP route + conversation.input.right

总插件只负责统一设置页,三个功能插件仍拥有各自的 Host、配置命名空间和生命周期。 因此可以只安装需要的功能,也可以单独停用某一项。

DeepSeek Harness 插件使用场景

运行要求

  • Git、Node.js 20 或更高版本,以及 npm。
  • 已能正常运行的 DeepSeek Harness;安装器默认使用 @deepseek-ai/dsh@0.1.0-rc.6。
  • 使用识图插件时,需要可用的 SiliconFlow API Key。
  • 使用微信插件时,需要在首次启动时用手机微信扫码登录。

快速安装

安装全部三个功能插件:

git clone https://github.com/honghudavy-star/DSH_plugins_4U.git
cd DSH_plugins_4U
./install.sh

只安装指定功能插件(根包 @dsh-plugins/4u 始终会一起安装):

./install.sh wechat
./install.sh wallpaper vision

可用名称为 4u、wechat、wallpaper 和 vision。默认安装到 web profile;可以通过 环境变量覆盖目标版本、profile、DSH 数据目录或 tarball 保存目录:

DSH_VERSION=0.1.0-rc.6 \
DSH_PROFILE=web \
DSH_HOME="$HOME/.dsh" \
DSH_PLUGIN_ARCHIVE_DIR="$HOME/.dsh/plugin-packages" \
./install.sh

安装器会对每个所选包执行 npm pack,把生成的 tarball 保存到 $DSH_PLUGIN_ARCHIVE_DIR,然后调用 DSH 官方插件入口:

dsh plugin --profile web add /absolute/path/to/plugin.tgz

安装完成后,停止并重新启动 DSH Web,让 Host 与客户端插件重新装载:

npm exec --yes --package=@deepseek-ai/dsh@0.1.0-rc.6 -- dsh web

随后进入“设置 → 插件 → 自定义插件”。页面会以三条可展开项目显示微信、壁纸和识图; 已安装功能的配置通过对应 Host 接口读取和保存,不需要手动编辑 cordis.patch.yml。

首次使用

微信

启用微信插件后,Host 会托管一个桥接子进程。首次运行时,二维码会直接输出到 DSH Web 所在终端;扫码后从微信发送一条消息,插件会创建或复用标题为“微信”的 DSH 会话,并把 agent 的最终回复发回微信。侧栏快捷入口会在该会话存在后出现。

在“自定义插件 → 微信”中可以设置:

  • 是否启用桥接。
  • 本地主动发送端口,默认为 8790。
  • 固定的微信 owner ID;留空时由第一个成功收到的微信用户自动绑定。
  • 固定的 DSH 会话 ID;留空时自动创建或复用“微信”会话。
  • 是否自动调用识图插件分析微信入站图片。

配置保存后,桥接监督器会重新加载子进程。子进程异常退出时会自动重试;如果端口已被占用, 监督器会等待端口释放,避免启动重复实例。

桥接器还提供只监听 127.0.0.1 的主动发送接口。请求必须携带本地 Bearer token:

curl -s -X POST http://127.0.0.1:8790/send \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $(cat "$HOME/.dsh-wechat/bridge-token")" \
  -d '{"text":"通知内容"}'

发送文件时,在 JSON 中增加 "file":"绝对路径"。插件只接受现有的绝对路径普通文件, 拒绝相对路径、目录和符号链接。

查看微信插件详细说明

壁纸

在“自定义插件 → 壁纸”中可以:

  • 选择 midnight、aurora、forest、sunset 四个内置预设。
  • 从文件选择器上传 PNG、JPEG、WebP 或 GIF。
  • 填写本地图片绝对路径。
  • 设置 0 到 1 的透明度,或直接停用壁纸。

上传内容会先检查媒体类型与文件签名,再以私有权限复制到插件数据目录。Host 在每次返回 DSH Web 首页时通过 webServer.tapIndex 注入一段受管 CSS,不修改客户端 bundle;保存后 刷新页面即可看到变化。

midnight 深夜蓝壁纸
midnight
aurora 极光壁纸
aurora
forest 深林绿壁纸
forest
sunset 暮色壁纸
sunset

查看壁纸插件详细说明

识图

在“自定义插件 → 识图”中填写 API Key,或在启动 DSH Web 前提供同名环境变量:

export SILICONFLOW_API_KEY="your-api-key"
npm exec --yes --package=@deepseek-ai/dsh@0.1.0-rc.6 -- dsh web

设置页还可以调整 Credential 名称、模型、每次图片数、单图大小、最大输出 Token、 Temperature 和失败重试次数。默认模型为 deepseek-ai/DeepSeek-OCR,默认每次最多 3 张图片, 单图上限 5 MiB。

使用时,在对话框中粘贴或拖入图片,输入问题,然后点击“识图发送”。客户端会把草稿图片交给 Host 的 /plugins/dsh-vision/analyze 路由;Host 返回视觉结果后,客户端移除原始图片草稿, 将“问题 + 视觉分析结果”作为纯文本提交给 DSH。

这样可以适配当前 stable Host 对文本模型 image block 的准入限制,也不会修改 DSH runtime 或绕过模型能力检查。支持 PNG、JPEG、WebP 和 GIF。

查看识图插件详细说明

配置与数据

项目 默认位置或来源 说明
安装 tarball ~/.dsh/plugin-packages/ 可由 DSH_HOME 或 DSH_PLUGIN_ARCHIVE_DIR 覆盖
微信运行数据 ~/.dsh-wechat/ 登录凭据、owner、会话、同步游标、Bearer token、媒体和转发水位
壁纸上传文件 ~/.dsh-plugins/wallpaper/uploads/ 设置页上传的当前图片;目录和文件使用私有权限
壁纸 CLI 兼容状态 ~/.dsh-plugins/wallpaper/config.json Host 在没有显式 source 配置时兼容读取
插件配置 DSH settings 服务 使用 dsh-plugins-wechat、dsh-plugins-wallpaper、dsh-plugins-vision 命名空间
识图密钥 DSH credential 或环境变量 默认 Credential 名称为 SILICONFLOW_API_KEY,保存后不回显

设置页的写接口要求同源请求和正确的 JSON/媒体类型。微信配置变化会重启其受管子进程; 识图配置即时用于后续请求;壁纸配置在刷新页面时生效。

安全边界

  • 仓库和发布包不包含微信登录凭据或第三方 API Key。
  • 微信桥接只接受单一 owner;本地主动发送接口只监听 127.0.0.1,并始终要求 Bearer token。
  • 微信凭据目录和私密文件分别收紧为 0700 与 0600。
  • 微信回复关联使用一次性 bridge origin,外发文件必须是非符号链接的绝对路径普通文件。
  • 壁纸上传同时校验 Content-Type、文件签名和大小,不接受 SVG。
  • 识图只接受 PNG、JPEG、WebP、GIF,并限制图片数量、单图体积和总请求体积。
  • 所有插件通过公开的 Cordis 服务、DSH 路由或客户端 Slot 扩展,不修改 DSH build 产物。

升级与重新安装

更新仓库后重新运行安装器,即可重新打包并通过目标 profile 的官方插件管理器安装:

git pull --ff-only
./install.sh

如果只升级某个功能插件,可以只传对应名称。升级后重启 DSH Web;微信状态、壁纸上传和 DSH credential 均保存在仓库之外,不会因重新打包而写入 Git。

切换 DSH 版本时,请显式设置 DSH_VERSION,并优先使用独立 profile 验证:

DSH_VERSION=<目标版本> DSH_PROFILE=<测试-profile> ./install.sh

开发与验证

npm ci
npm test
npm pack --dry-run
npm pack --workspaces --if-present --dry-run

测试覆盖当前仓库最重要的插件契约:

  • 四个包的 manifest、Cordis patch 和 Host 入口。
  • 根设置页与微信/识图客户端 ModuleLoader bundle。
  • 三个实时配置命名空间与配置接口。
  • 壁纸注入、上传文件签名和大小边界。
  • 微信端口占用检测、私密 token、owner/origin 和外发文件边界。

每个可安装包的核心结构如下:

package.json         # dsh.bundle / 可选 dsh.client
cordis.patch.yml     # 向目标 profile 插入 Host Loader 行
index.mjs            # Host 插件:导出 apply(ctx, config)
client.js            # 需要 Web UI 时提供的 ModuleLoader bundle
README.md            # 插件级使用说明

仓库结构:

DSH_plugins_4U/
├── index.mjs                    # 根 Host 入口(用于发现总插件客户端)
├── client.js                    # “自定义插件”统一设置页
├── cordis.patch.yml             # 根包 Loader patch
├── install.sh                   # 打包并调用 DSH 官方插件安装入口
├── docs/DSH_PLUGIN_SPEC.md      # DSH bundle、Cordis 与客户端准入说明
├── packages/
│   ├── wechat/                  # 微信 Host、侧栏入口和桥接器
│   ├── wallpaper/               # 壁纸 Host、预设和兼容 CLI
│   └── vision/                  # 识图 Host、输入按钮和预编译客户端
└── tests/plugin-format.test.mjs # 原生插件格式与安全边界回归测试

查看 DSH 插件格式与 Cordis 准入规则

常见问题

安装后看不到“自定义插件”页面怎么办?
确认安装输出中包含 @dsh-plugins/4u,目标 DSH_PROFILE 与当前启动的 profile 一致,并完整停止后重新启动 DSH Web。仅刷新浏览器不会重新加载 Host 或客户端 bundle。 微信没有显示二维码怎么办?
二维码只在没有可复用登录凭据时输出到 DSH Web 所在终端。若日志显示会话已经过期,先停止 DSH,把 ~/.dsh-wechat/credentials.json 移到备份位置,再重新启动并扫码;不要提交或分享该文件。 微信桥接一直等待或无法启动怎么办?
检查 DSH 终端中的 dsh-plugins-wechat 日志,并确认设置的桥接端口没有被其他进程占用。 插件检测到端口冲突时不会启动第二个桥接实例,而是按配置延迟重试。 识图提示 Credential 未配置怎么办?
在“自定义插件 → 识图”保存 API Key,或确保 SILICONFLOW_API_KEY 已导出到启动 DSH Web 的同一个进程环境。修改环境变量后需要重新启动 DSH Web。 壁纸保存后没有变化怎么办?
刷新 DSH Web 页面。若使用绝对路径,确认 Host 进程能够读取该文件;若使用上传,确认图片不超过 默认 10 MiB 限制,且真实文件内容与 PNG、JPEG、WebP 或 GIF 类型一致。
Built for people who want to keep their DSH setup reproducible.
—/ 5

No ratings yet

Verified DSH bundle

Commit 1868796c12d9

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout