Minke v0.2.0:DSH+Tailscale打造跨设备开发环境

当智能体处理代码重构、批量文件处理这类复杂任务时,工作往往不会在单次对话内完成。用户可能需要离开电脑,但仍要随时查看进度、审查代码变更、验证运行结果,或是补充新的指令。近期发布的Minke v0.2.0,正是为了解决这类远程协作的需求,让开发者可以通过手机、平板等设备延续桌面端的智能体工作流,同时完全保留项目、模型和执行环境的本地控制权。
Minke v0.2.0 正式发布,其v0.1.0版本首次将DeepSeek Harness引入桌面应用,而本次更新则进一步将本地电脑打造为可随时访问的智能体宿主。项目开源仓库地址为 https://github.com/lencx/Minke。
传统远程桌面协议大多以还原完整桌面显示为目标,无论是传输压缩画面、绘图指令还是视频编码,在移动设备上都需要额外的缩放或平移操作才能正常使用。而Codex、Claude Code、OpenClaw和Hermes Agent等工具则采用了另一种思路:仅传输任务、消息、状态和工具结果,让其他设备作为智能体的控制面。Minke正是这类工具中的一员,它直接扩展了DSH Web架构,所有项目、模型和执行环境都保留在本地电脑中,无需将数据上传到第三方服务器。
模块化的DSH架构设计
DSH是由Cordis管理的插件式架构,Agent Loop、Session、模型、工具、Web Server和Client UI都以插件形式挂载到共享的Context中。Cordis插件通过inject声明依赖,通过ctx.<service>调用其他模块,还可以通过ctx.effect()管理路由、监听器和运行时资源的注册与释放。这种设计让DSH无需修改固定的“特权核心”,新增功能可以作为同级插件直接挂载。
DSH Web Profile
├─ dsh-base
│ ├─ Session
│ ├─ Agent Loop
│ ├─ Tools
│ └─ LLM
├─ dsh-web-app
│ ├─ Web Server
│ ├─ API Gateway
│ ├─ Connection
│ └─ Web Client
└─ Minke Patch
├─ Model Runtime
└─ Minke Overlay
├─ Host Plugin
└─ Client Plugin
Minke通过DSH的--patch Seam直接接入这个插件树,无需复制或修改原有Agent Loop代码。minke-harness-overlay同时提供两个核心插件模块:
- Host Plugin:注入connection和webServer,注册PWA资源以及/minke Files、Terminal RPC;
- Client Plugin:注入connection、slots、workspaces、sessions和layout,将Tabs、Files、Terminal和移动端布局挂载到现有Web Client。
远程控制并非独立于DSH的附加服务器:对话、Session、Agent和Workspace依旧由DSH原生的/api接口和WebSocket承载,Minke仅新增了/minke RPC接口,用于补充Files、Diff、Terminal和能力协商相关的功能。Tailscale并不参与这些业务协议,仅负责将同一个Web Origin扩展到其他设备,实现跨设备的网络连通。
DSH /api + WebSocket → 对话、Session、Agent、Workspace
Minke /minke RPC → Files、Diff、Terminal、Capabilities
跨设备的统一交互体验
桌面端和移动端运行的是同一个Minke Web Client,仅在宿主能力的接入方式上有所区别:
Electron:Web Client → Preload IPC → Electron Main
浏览器: Web Client → /minke RPC → DSH Host
Client依赖稳定的Tabs、Files和Terminal交互界面,通过Electron Preload是否提供真实能力来选择适配的Adapter,而非依赖User Agent。上层控制器无需感知数据来自IPC还是网络,因此两端可以复用核心交互逻辑,同时采用适合各自设备的布局方案。
复用交互界面并不意味着复制桌面状态:对话和文件数据来自同一个本地Host,但Tabs的打开状态和布局设置属于当前客户端。Electron的<webview>、原生文件打开等能力在浏览器环境中会被标记为不可用,移动端则会采用Details抽屉、触控优化布局和软键盘适配方案,而非直接等比缩放桌面UI。
Minke采用了PWA技术,通过Web App Manifest、Service Worker和HTTPS,为Web应用提供主屏幕安装、独立窗口启动、资源缓存和弱网恢复等能力。Minke主要缓存应用外壳,对话、文件和Terminal等实时数据则始终来自用户本地电脑上的Minke Host。
本地宿主的真实能力保障
所有文件操作都在本地Host上完成:Host会解析真实路径并限制访问根目录,避免通过符号链接绕过权限边界;保存文件时会检查内容版本,防止静默覆盖磁盘上的最新修改;代码Diff功能则由Host读取Git原始版本后,再交由Client渲染展示。
远程Terminal连接的是真实的PTY终端,而非日志回放。当前版本的远程Terminal复用DSH的HTTP RPC,通过Cursor和Long Poll持续读取输出,并限制活动Session和缓存大小;当浏览器断开连接后,Host会自动释放对应的终端进程。未来如果需要更高的吞吐量,可以在保持Terminal交互界面不变的前提下,新增WebSocket Adapter来优化传输效率。
私有接入与安全防护
远程接入采用两阶段生命周期:首先Minke从Tailscale获取准确的*.ts.net Hostname,并加入DSH的Host信任范围;当本地Harness页面启动后,再由Tailscale Serve将私有HTTPS地址转发到本机的随机端口。DSH始终仅监听Loopback地址,也不会开启公网Funnel,最大程度保障本地安全。
Tailscale的设备身份和ACL规则决定了哪些设备可以访问服务;DSH的trustedHosts仅负责Host、Origin和DNS Rebinding防护,并不等同于身份认证。由于远程Terminal可以直接操作宿主机的真实Shell,远程功能默认处于关闭状态,访问权限应按照主机控制权限进行严格管理。
这套分层设计让DSH继续负责智能体与持久Session,Minke Host负责本地宿主能力,Client负责设备交互,Tailscale负责私有网络入口。当需要替换远程协议或新增接入Provider时,无需修改Agent Loop或重写上层UI。目前经过完整验证的接入方式仅为Tailscale Serve over HTTPS,其他接入方式仍需进一步测试。
近期行业动态与工具推荐
Codex Harness的误解
近期OpenAI官方发布了关于Codex harness的文章,在国内自媒体圈引发了不少讨论,甚至有不少人误以为该模块是刚刚开源的。实际上,harness/app-server模块早已开源,并非近期新增的内容,这波讨论更像是一场被放大的误解。
Qwen 3.8 27B模型
Qwen 3.8 27B小模型近期在社区热度颇高,各类模型变体和测评内容层出不穷。技术爱好者Simon Willison也连续多日对该模型进行测试并给出反馈。如果正在使用DSH架构,开发者可以尝试本地部署该模型,社区中有不少量化版本,最小的仅需要几GB内存即可运行。
Ox Alpha匿名模型
近期OpenRouter平台上出现了一款名为Ox Alpha的匿名模型,引发了社区的高度关注。该模型专为编程、持续性智能体任务和生产级工作负载设计,适用于长周期软件工程、复杂推理以及结合文本与视觉上下文的工作流。该模型由第三方匿名提供商开发和运营,仅在预览阶段保持匿名,OpenRouter仅负责请求路由,并非模型的开发者或所有者。提示词和生成结果会由提供商保留,但不会用于模型训练,其他使用场景均受Stealth Model条款约束。
Omarchy开发者Linux系统
由DHH主导开发的Omarchy Linux系统近期讨论度颇高,不少用户表示该系统让老旧、内存不足的设备重新焕发了活力。该系统基于Arch Linux,预装了桌面环境、终端、编辑器、Docker、开发环境和多种AI编程工具,安装后即可直接开始工作。系统采用简洁美观的界面和键盘优先的操作方式,适合喜欢终端和平铺窗口、不愿花费大量时间配置Linux环境的开发者;不过其设计风格与Windows和macOS有明显区别,需要一定的适应周期。
DeepSeek多模态视觉实验模型
DeepSeek推出了实验性多模态视觉理解模型DeepSeek-V4-Flash-Vision-Exp,该模型在保持与V4-Flash正式版相当的文本、推理和智能体能力的同时,大幅提升了视觉理解与多模态智能体表现,相关能力已接近Opus-4.8。该模型可用于生成PPT、重构网站和制作动态前端等场景,用户可以通过model='deepseek-v4-flash-vision-exp'调用API,支持Chat Completions、Messages和Responses三种格式,以及Base64、外部URL和Files API三种图片传入方式。图片最多转换为384个Token,价格与V4-Flash相同,新上线的免费Files API还支持上传后通过file_id重复引用图片,以节省请求带宽。
参考链接
[1] Minke v0.2.0: https://github.com/lencx/Minke/releases/tag/v0.2.0
[2] Cordis: https://github.com/cordiverse/cordis
[3] Codex harness: https://developers.openai.com/blog/codex-as-a-platform
[4] Simon Willison: https://simonwillison.net/2026/Aug/16/qwen-38-27b/
[5] Stealth Model 条款: https://openrouter.ai/terms/stealth
[6] Omarchy: https://github.com/basecamp/omarchy

