小刘BOT

我给 Deepseek Harness 做了一个桌面启动器,支持 Windows 和 MacOS

先把链接丢这里了:

https://github.com/Liu-Bot24/dsh-tunnel-client/releases/

image.png

项目提供 Windows 和 Mac 客户端,你可以直接在 GitHub 页面右侧的 Releases 里面下载最新的安装包。

基础功能就是摆脱 PowerShell 和终端命令行,一键启动或关闭本机安装的 DSH。如果你用过秋叶大佬的绘世启动器,应该就很好理解,就是这个按钮的功能。

image.png

DSH 发布第一天我就见到了好几个桌面客户端的项目。桌面端的体验固然好,但对我一个 ChatGPT 20x 订阅会员来说,就显得很鸡肋了。

我甚至可以丢一个暴论在这儿,如果日常使用 Codex 之类桌面 App 作为主 Harness 的话,再用桌面版的 DSH 反而不如 WebUI 方便。话先放这里,后面慢慢解释。

总之,我更需要一个单纯的解决我不想到终端输入命令来启动 DSH 这个问题的启动器。而且我希望它看起来稍微正经一点,不是直接写一个启动脚本丢在桌面上,于是就做了这么一个东西。

image.png

并且内置了 5 套主题,除了上面的,还有这些:

截屏2026-08-21-19.10.jpg

同时还配了小鲸鱼的 Mac 的状态栏菜单和 Windows 系统托盘。

它的核心功能有两个。

第一个就是能够自动识别到本机安装的 DSH,并且能够通过鼠标在图形化界面按钮上点击的形式直接启动或关闭。对于像我这样的非程序员来说,相比于在命令行工具里面敲命令,我还是更喜欢用鼠标点按钮。

第二个功能就是通过 SSH 隧道连接其他设备上的 DSH。这个其他设备可以是局域网内的其他设备,可以是线上服务器,也可以是通过 FRP 中转的其他设备,也可以是 Tailscale 之类的虚拟局域网。比如我就喜欢在 Windows 使用 Mac 上的 DSH,这个功能就是用来实现这件事的。

我现在真的很喜欢用 DSH 的 WebUI。

虽然我一直以 Codex 为我的主力 harness,但是 Codex 和 GPT 5.6 有很多让人讨厌的毛病。

比如对一些简单的修改和验证,喜欢做各种隔离,喜欢写各种门禁,喜欢疯狂做边界测试,尤其是在推理等级比较高的情况下,这种症状非常严重,导致本来 5 分钟能做完的事情,硬生生能拖到两个小时。调低思考等级可以缓解,但不能根治。何况有的时候又需要它严谨一些,所以只用 Codex 的时候会很矛盾。

每到这个时候,我就需要一个其他模型,最好是其他 Harness 把它从这种低效循环里拉出来。

但 Codex APP 的另一个 bug 就是,虽然它支持接入第三方模型,但是只在使用 API 的情况下有效。如果使用 ChatGPT 订阅登录的方式,除非增加第三方的桥接,否则没有办法像 OpenCode 那样随心切换模型。所以如果是在原生的状态,很难实现说使用 GPT 5.6 作为主力工作模型,偶尔用一下 Deepseek。

相比之下,DSH 就开放得多,它跟 OpenCode 一样,本身就支持添加并切换不同的自定义模型。这就方便多了,甚至还省去一个 CC Switch。而比起 OpenCode,DSH 的 WebUI 又可以很方便地嵌入到 Codex 里面去,只要开一个内置浏览器,就可以让 Codex 自己去使用 DSH 了,就像调用子代理一样。

image.png

以前我处理同类问题还有另一种方式,让 Codex 调用其他 AI Agent 的 CLI 工具。比如在 GPT 陷入脑雾循环的时候,我一般会让 Codex 自己去调用Claude Code 或者 AntiGravity CLI、Qoder CLI 等等,让他们帮忙审查或者跟 GPT 头脑风暴几轮。

理论上直接使用命令行工具速度应该是快的,但实际却有诸多细节问题。如果不刻意做约束或者搓成 skill,只是简单的让 Codex 调用 OOO 让他使用 XXX 模型提供一下建议,或者做一下审查,Codex 往往会禁用对方的工具调用,会指定错模型名称,写的 Prompt 不透明,不要求显示调用它就不会打开让你看到,自己还不知道看对方的过程输出只等最终结果,以及沙盒权限多半要折腾一下,在 Windows 下撞两次 PowerShell 的墙也十分正常……最终的体验反而不会特别好。

但得益于 Codex 强大的 Browser Use 能力,直接操作 WebUI 甚至优于让它调用 CLI,不管是时间上还是控制上,都会更舒服。只要打开内置浏览器,打开 DSH 的 WebUI,权限、模型、工作区等等,点两下鼠标就能设置好。Codex 用的 Prompt 和对方模型的实际过程直接就会在页面上显示出来,如果觉得不对,可以随时纠偏。

而且 DSH 的轨迹透明,使用上一篇文章提到的插件,搭配一个廉价快速的模型解读一下,第三方模型在执行过程中都做了什么,有哪些高风险的行为,可以清清楚楚地呈现出来,比起让 Codex 拉其他 CLI 安心多了。

image.png

而且很久以前我也提到过,GPT + Codex 实际上是一个很适合作为监工的组合。它对工程规范和边界测试有一种莫名其妙的执念,以至于会大大拖慢正常工作的速度。但反过来,如果你用它来自动守门,往往效果奇好。如果第三方模型提交上来的成果没有通过它这个包工头的测试,就直接给打回去重做,直到满意为止。

使用这种监工模式,就可以让一部分本来需要人盯着的任务变成无人值守。并且,在现在 Plus 会员的 5 小时限额回归的情况下,如果 Codex 5 小时的额度不够用,这种方式也可以作为一种用量管理的手段。

实际使用中,比如说我要让 Codex 安排 DSH 做一次代码审查。

我只要在内置浏览器打开 DSH 的 WebUI,然后选好模式和模型,再去让 Codex 使用 Browser User 就可以了。(当然模式和模型也可以让 Codex 选,但我觉得这种情况下显然手选更快。)

确实比用 CLI 清晰。

image.png

甚至还可以给它再开一个 ChatGPT。

image.png

直接跟 Codex 说,让它找 DSH 进行审查,并持续讨论到所有分歧消失。达成共识后,把代码推送到临时仓库,然后打开 ChatGPT 标签页,选择 Pro,给他仓库链接和你们的结论,让 ChatGPT 再审核一遍。然后根据审核结果的批复,直接去修改。

然后我们人就可以去楼下喝咖啡了,只需要必要的时候掏出手机 ChatGPT APP 远程看一眼。甚至如果你不介意跑偏的话,可以再把要求给得激进一点,让它双重复核完继续进入下一步,直接 Loop 起来。

我真心觉得 WebUI 可以算是一个甜品点,比调用 CLI 看得更清楚,比 Computer Use 应用程序又更高效。

接下来就得说到 DSH Tunnel 第二个功能了,通过 SSH 隧道连接其他设备上的 DSH。

这个功能对于多设备的朋友比较好用。

我自己现在就习惯把不同的事情放在不同的设备来做。比如一些单纯的小工具的开发,我通常就放在 Mac mini 上做,省心,功耗低,Codex 功能也全;而需要用到我的 4090 显卡和 64G 内存的,比如本地 ASR、本地生图、本地 Qwen 27b 相关的,我一般就会放到 Windows 上做。

这是基于主力工具的平台选择,比如说在开发 Comfyui 节点和工作流的时候,就是要把 Codex 接上 Comfyui 的本地 API,但其实一些内部的组件开发或者代码和流程审查并不需要这样。

举个最常见的例子。

PowerShell 这根绊倒一切的绳子。

image.png

在 Windows 下面,不管用啥模型,总是要在 PowerShell 上面绊一跤。这个现象可以改善,不能杜绝。

而且大家都说 Deepseek 在 DSH 的极简模式下才是满血版,但问题是Windows 上没有 bash,用不了极简模式。

于是就到了这个 SSH 隧道连接功能起作用的时候了。把局网的主机添加进来,就可以在本机的指定端口打开局网下另一台设备上 DSH 的 WebUI。

image.png

比如说,在局网下有一台开启了 DSH 的 Mac mini,局域网 IP 是 192.168.1.102,那就在 SSH 地址里面填写这个 IP,SSH 用户就填写 Mac 对应的用户,SSH 端口一般是 22,DSH 端口就是 Mac 上监听 DSH 的端口,本地端口就是你想在本地使用的一个未占用过的端口。

image.png

只要两台设备的磁盘驱动器在局域网里相互挂载,我就可以把 Codex 和另一台设备的 DSH 设置成相同的工作区,一主一辅共同服务于我的项目。

但要注意一下,如果是连接 Mac ,需要先到 Mac 设置里面打开远程登录,并且添加上相应的用户才行。

image.png

互联网的远程也是同理,需要在服务端开启 22 端口,经常连接服务器的应该也不用我多说。

现在只是转发了 WebUI,如果单纯做代码审查的话已经没什么问题了。但如果是做一些可视化的开发,就稍微复杂一点,需要在开启 DSH 的设备上安装产物预览插件。我已经把插件整合在设置里了,Mac 和 Windows 的包都有,点击安装插件就可以安装,非常简单。

image.png

我用一个案例来解释这个插件的作用吧。

比如说我现在是在 Windows 设备操作,在 Mac 设备上开启了 DSH,并把 3080 端口转发到了 Windows 的 13080 端口。所以我现在是在 Windows 设备上打开了我 Mac 设备上 DSH 的 WebUI。

image.png

现在直接对它使用,进行开发和文字显示都没有任何问题。比如说上图里绘制了一个鹈鹕骑自行车的 SVG 动画,已经成功绘制了。

但由于本质上这个项目和项目成果,都是在另一台 Mac 设备上的。所以当我试图点击打开这个 HTML 查看鹈鹕骑自行车动画的时候。虽然我是在 Windows 上点击的,但其实这个网页会在 Mac 设备上打开,而在 Windows 上毫无反应。这是由于只有这个 3080 端口的 WebUI 被转发,但是图片和网页的预览并没有被转发过来。

而这个问题的解决方案就是安装这个 DSH 插件,注意要安装在远程设备上,不是查看的设备。

image.png

插件安装以后,文件链接就会被转发,点击它就可以在查看设备打开了。

image.png

于是我现在就可以直接在 Windows 上查看这个鹈鹕骑自行车的动画了。

image.png

插件只在带有远程标记的页面生效,本机开启的 DSH WebUI 页面还是维持原模式。

OK,就这么多,希望大家的 DSH 用起来都更丝滑。

项目开源,欢迎使用和修改。

https://github.com/Liu-Bot24/dsh-tunnel-client