voyager
Nagi-ovo
Enhancement suite for Gemini, AI Studio, Claude & ChatGPT — plus a prompt manager for any web UI, DeepSeek Harness included. / 面向 Gemini、AI Studio、Claude 与 ChatGPT 的增强套件;提示词管理器可用于任意 Web UI,含 DeepSeek Harness。
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:honghudavy-star/DSH_plugins_4U
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
让 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-ai/dsh@0.1.0-rc.6。安装全部三个功能插件:
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。配置保存后,桥接监督器会重新加载子进程。子进程异常退出时会自动重试;如果端口已被占用, 监督器会等待端口释放,避免启动重复实例。
桥接器还提供只监听 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 四个内置预设。0 到 1 的透明度,或直接停用壁纸。上传内容会先检查媒体类型与文件签名,再以私有权限复制到插件数据目录。Host 在每次返回
DSH Web 首页时通过 webServer.tapIndex 注入一段受管 CSS,不修改客户端 bundle;保存后
刷新页面即可看到变化。
![]() midnight |
![]() aurora |
![]() forest |
![]() 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/媒体类型。微信配置变化会重启其受管子进程; 识图配置即时用于后续请求;壁纸配置在刷新页面时生效。
127.0.0.1,并始终要求 Bearer token。0700 与 0600。更新仓库后重新运行安装器,即可重新打包并通过目标 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
测试覆盖当前仓库最重要的插件契约:
每个可安装包的核心结构如下:
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-plugins/4u,目标 DSH_PROFILE 与当前启动的
profile 一致,并完整停止后重新启动 DSH Web。仅刷新浏览器不会重新加载 Host 或客户端 bundle。
~/.dsh-wechat/credentials.json 移到备份位置,再重新启动并扫码;不要提交或分享该文件。
dsh-plugins-wechat 日志,并确认设置的桥接端口没有被其他进程占用。
插件检测到端口冲突时不会启动第二个桥接实例,而是按配置延迟重试。
SILICONFLOW_API_KEY 已导出到启动
DSH Web 的同一个进程环境。修改环境变量后需要重新启动 DSH Web。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: chatbot、wechat、wechat-bot、mcp、ocr、vision、wallpaper。