dsh-pwa:DeepSeek Harness 的手机端 PWA

前言

DeepSeek Harness (DSH) 采用插件化架构,其官方 Web UI 主要针对桌面端优化。对于需要在移动端处理会话、审批或查看 Agent 问题的用户,直接使用浏览器访问桌面界面往往体验不佳。dsh-pwa 插件旨在解决这个问题,它通过将一套运行在手机浏览器中的全屏应用界面挂载到 DSH 服务器上,提供类似原生 App 的体验,且无需在手机上安装任何应用。

插件定位

dsh-pwa 是一个由 jackxu925 维护的客户端插件。它本身是一个纯静态文件的 Web 应用,挂载在 DSH Web 服务器的 /m 路径下。插件与桌面 GUI 使用相同的 /api 接口,这意味着它直接复用了 DSH 的会话管理和 Agent 能力。

核心功能

插件提供了手机端操作所需的核心交互能力:

  • 会话管理:支持会话列表展示、工作区分组、搜索以及下拉刷新。具备真实的“待处理”筛选功能,可快速定位待审批会话和 Agent 问答。
  • 流式对话:支持流式响应,包含乐观发送、队列消息可见性、每日时间分割线和时间戳。支持代码块的复制按钮和全屏图片查看器。
  • 审批与交互:将审批请求和 Agent 问题呈现为可点击卡片。对于危险命令,界面会显示红色二次确认提示。
  • 多媒体支持:支持从相机、相册或剪贴板粘贴发送图片,并自动压缩至模型限制以内。
  • 会话创建:支持在新建会话时选择 Agent 预设。
  • 交互细节:支持触觉反馈、深色/浅色主题切换、会话草稿自动保存,以及带有手动重连按钮的连接状态指示。
  • 桌面端联动:桌面 GUI 的“设置”菜单中会新增“手机端”入口,显示当前手机访问地址并提供一键复制功能。

安装与启用

安装前需确保桌面端已安装 dsh CLI。

  1. 创建或复用一个 Web 专用的配置文件,例如 ~/.dsh/profiles/web/package.json,并在 dependencies 中引入 dsh-pwa。
{
  "name": "dsh-profile-web",
  "private": true,
  "dependencies": {
    "dsh-pwa": "latest"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-pwa"
      ]
    }
  }
}
  1. 进入该配置目录并执行安装。
cd ~/.dsh/profiles/web && npm install
  1. 启动 DSH Web 服务器。为了在手机上访问,需配置 --trusted-host 以允许跨域访问。
dsh --profile web --host 0.0.0.0 --port 3080 --trusted-host <your-access-domain>

典型用法

  1. 手机访问:在手机浏览器中打开 http://<host>:3080/m/,点击“分享”或“添加到主屏幕”,即可获得全屏 PWA 应用体验。
  2. 远程访问:若在非局域网环境使用,可配合 Tailscale。确保手机和服务器均在同一账号的 Tailnet 中,并在服务器启动命令中添加 Tailscale 的主机名到 --trusted-host,随后访问 http://<tailscale-hostname>:3080/m/。

注意事项

  • 无需安装 App:这是一个网页应用,但通过 PWA 机制可以实现类似原生 App 的全屏体验。
  • 安全模型:与 dsh web 保持一致。任何能够访问该 URL 的人都可以控制你的 Agent。
  • 离线限制:插件不支持离线使用,手机必须保持与 DSH 服务器的网络连接。
  • 版本依赖:由于插件直接调用 DSH 的 /api 接口,它会跟随 DSH 版本更新。若 DSH API 发生破坏性变更,插件可能需要同步更新。

总结

dsh-pwa 为 DeepSeek Harness 提供了一个轻量级且无需安装 App 的移动端解决方案。它通过复用现有的 API 协议,在手机浏览器中实现了会话管理、流式对话、审批交互及多媒体支持。对于需要在移动端处理 Agent 任务的开发者而言,这是一个务实的工具。

相关链接:
GitHub 仓库
社区目录

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜