deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:lbwnb666-ai/DeepSeekHarnessRemoteGateway
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
让 DeepSeek Harness Web 获得可被手机远程访问的能力
不修改 DeepSeek Harness 本体代码,默认生成随机公网 URL、随机 6 位密码和扫码二维码,手机端仅需浏览器即可访问。
安装说明 · 常见问题 · 发布检查清单 · Release 附件策略 · Release 文案模板 · 许可证
让DeepSeek Harness 可以手机远程访问、操作的轻量 sidecar 网关。
在保留 DeepSeek Harness 现有 Web UI 的前提下,为本地运行中的 DSH 增加一层远程访问能力:
topics/dsh-plugin| 分享页 | 手机登录页 | 手机对话页 |
|---|---|---|
![]() |
![]() |
![]() |
dsh web,并确认它可通过 http://127.0.0.1:3080 访问。cloudflared,放到 remote-gateway/bin/,或者确保系统 PATH 中可直接调用。npm run doctor 做一次环境检查。start_Windows.bat、start.ps1、start_Mac_or_Linux.sh、start.sh 或 start.command。更完整的安装和排障说明见 INSTALL.md。
正常启动后,网关会自动完成以下动作:
127.0.0.1:8787 启动本地 HTTP 网关cloudflared 可用时,自动启动 Cloudflare Quick Tunnelruntime/share.html 生成本地分享页这个默认流程非常适合插件分发场景:不需要固定域名、不需要公网 IP、也不需要改动 DSH 核心代码。
当前远程状态下,无法直接从手机端主动打开本地尚未打开的工作区。
如果需要切换工作区,仍然需要先在电脑端打开目标工作区,再从远程端继续访问和切换。
项目主体是纯 Node.js。平台差异主要集中在:
cloudflared 二进制HttpOnly Cookie 维护会话/api/*/api/events.mux/api/events.host可编辑配置文件:
remote-gateway/config.json
如果 auth.password 为 null,则每次启动都会生成一个新的随机 6 位密码。
如需使用固定密码,直接在 config.json 中手动填写即可。
{
"server": {
"bindAddress": "127.0.0.1",
"bindPort": 8787
},
"upstream": {
"origin": "http://127.0.0.1:3080",
"loopbackMode": null
},
"auth": {
"password": null,
"sessionSecret": null,
"cookieName": "dsh_remote_session",
"sessionTtlHours": 168,
"secureCookies": false
},
"dsh": {
"command": null
},
"tunnel": {
"enabled": true,
"mode": "quick",
"cloudflaredPath": null
},
"share": {
"openOnStart": true
}
}
默认隧道模式是 quick,会生成一个随机的 *.trycloudflare.com 地址。
当 upstream.loopbackMode 保持为 null 时,网关会在 Quick Tunnel 模式下自动启用 loopback 风格的上游请求头。这样每次随机域名变化时,不需要反复重启 dsh web。
这非常适合临时分享和插件分发,但它不是固定域名部署的最终形态。
cloudflared 二进制默认查找顺序如下:
remote-gateway/bin/cloudflared.exeremote-gateway/bin/cloudflared如果本地 bin/ 目录中没有对应文件,网关会回退到系统 PATH 中的 cloudflared。
你也可以在 config.json 或环境变量中显式指定 cloudflaredPath。
如果将二进制放到 remote-gateway/bin/ 中,记得先赋予可执行权限:
chmod +x remote-gateway/bin/cloudflared
如果桌面环境没有 xdg-open,网关仍然可以正常启动,只是不会自动打开分享页,此时可手动打开输出的分享页路径。
以下主要配置项都可以通过环境变量覆盖:
REMOTE_GATEWAY_BIND_ADDRESSREMOTE_GATEWAY_BIND_PORTREMOTE_GATEWAY_UPSTREAM_ORIGINREMOTE_GATEWAY_UPSTREAM_LOOPBACK_MODEREMOTE_GATEWAY_PASSWORDREMOTE_GATEWAY_SESSION_SECRETREMOTE_GATEWAY_COOKIE_NAMEREMOTE_GATEWAY_SESSION_TTL_HOURSREMOTE_GATEWAY_SECURE_COOKIESREMOTE_GATEWAY_DSH_COMMANDREMOTE_GATEWAY_TUNNEL_ENABLEDREMOTE_GATEWAY_TUNNEL_MODEREMOTE_GATEWAY_CLOUDFLARED_PATHREMOTE_GATEWAY_SHARE_OPEN_ON_STARTnode src/index.js
如果 share.openOnStart 为 true,会自动打开本地分享页。否则可以手动打开:
remote-gateway/runtime/share.html
按平台选择合适的启动入口:
remote-gateway/start_Windows.batremote-gateway/start.batremote-gateway/start.ps1remote-gateway/start_Mac_or_Linux.shremote-gateway/start.shremote-gateway/start.command这些启动器会自动完成三件事:
npm installconfig.json 启动网关macOS/Linux 首次使用前,建议先执行:
chmod +x remote-gateway/start.sh remote-gateway/start.command
首次启动前,建议先运行一次环境检查:
npm run doctor
它会检查:
config.json 是否可解析cloudflared 是否能被发现remote-gateway/.gitignore 忽略remote-gateway/.gitignore 忽略remote-gateway/bin/README.md 说明了如何替换或内置 cloudflaredremote-gateway/INSTALL.md 提供首次安装步骤remote-gateway/FAQ.md 提供常见问题答案remote-gateway/RELEASE_CHECKLIST.md 提供发布前检查项remote-gateway/RELEASE_ASSETS.md 说明 GitHub Release 附件策略remote-gateway/RELEASE_TEMPLATE.md 提供 GitHub Release 文案模板src/ 网关核心运行代码scripts/ 启动、自检、打包脚本bin/ 本地开发或直接运行时使用的 cloudflaredvendor/cloudflared/ 按平台打包发布时使用的源二进制目录runtime/ 运行时生成的分享页和临时产物docs/screenshots/ 仓库首页和 Release 使用的截图目录INSTALL.md 安装说明FAQ.md 常见问题RELEASE_CHECKLIST.md 发布检查清单RELEASE_ASSETS.md GitHub Release 附件说明RELEASE_TEMPLATE.md GitHub Release 文案模板GET /_gateway/health
该接口会返回网关状态、上游探测结果、当前公网 URL 和当前生效密码。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。