DeepSeek Harness Hub
← 返回列表

Tamarisk-Du/remote-dsh-macos

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

适用于 macOS 的 DeepSeek Harness 远程模型

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/29 · 已提供中文文档

Native macOS launcher for using DeepSeek Harness with remote models over SSH. | 通过 SSH 让 DeepSeek Harness 使用远程模型的原生 macOS 启动器。

综合分
29.3
GitHub 分
29.3
用户评分
★ Stars
2
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Tamarisk-Du/remote-dsh-macos
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

适用于 macOS 的 DeepSeek Harness 远程模型

功能 ·
架构 ·
快速开始 ·
限制 ·
中文

Release
macOS
Swift
License

在原生 Mac App 中使用运行于远程 GPU 服务器的模型来运行 DeepSeek Harness。

在原生 Mac App 中,让 DeepSeek Harness 使用运行于远程 GPU 服务器的模型。

远程服务器负责运行模型,Mac 获得原生工作流。

远程服务器负责运行模型,Mac 获得原生工作流。

Remote DSH 将现有的 DeepSeek Harness 与远程模型配置整合成原生 macOS
工作流。只需打开一个 App,即可启动或连接 SSH 隧道、启动或连接 Harness、选择
本地代码项目,并安全管理由 App 自己启动的进程。

Remote DSH 将现有的 DeepSeek Harness 与远程模型配置整合成原生 macOS
工作流。只需打开一个 App,即可启动或连接 SSH 隧道、启动或连接 Harness、选择
本地代码项目,并安全管理由 App 自己启动的进程。

常见部署会使用远程 GPU 服务器,但本封装只要求远程模型服务能够通过用户的 SSH
配置访问,不要求也不会检测某一种特定加速器。

常见部署会使用远程 GPU 服务器,但本封装只要求远程模型服务能够通过用户的 SSH
配置访问,不要求也不会检测某一种特定加速器。

功能 / Features

| 能力 / Capability | 作用 / What it does |
| --- | --- |
| 原生 macOS 外壳Native macOS shell | 使用 AppKit 窗口和内嵌 WebKit 工作区呈现 Harness。Presents Harness in an AppKit window with an embedded WebKit workspace. |
| 自动管理 SSH 生命周期Automatic SSH lifecycle | 检测配置的本地回环隧道,仅在需要时启动。Detects the configured loopback tunnel and starts it only when needed. |
| 自动管理 Harness 生命周期Automatic Harness lifecycle | 连接健康的本地 Harness,或启动用户配置的 Harness profile。Attaches to a healthy local Harness instance or launches your configured profile. |
| Finder 项目选择器Finder project picker | 打开原生目录选择器,并将选中的本地项目注册到 Harness。Opens a native directory picker and registers the selected local project with Harness. |
| 安全的进程所有权Safe process ownership | 只停止本 App 亲自启动的 SSH 和 Harness 子进程。Stops only the exact SSH and Harness children started by this app. |
| 本地优先的封装Local-first wrapper | 不增加遥测、凭据存储或额外的项目上传。Adds no telemetry, credential storage, or separate project upload. |

为什么使用 Remote DSH? / Why Remote DSH?

在 Mac 上使用远程模型,通常需要同时维护多个环节。

在 Mac 上使用远程模型,通常需要同时维护多个环节。

终端 / Terminal  → SSH 隧道 / SSH tunnel
终端 / Terminal  → Harness 启动器 / Harness launcher
浏览器 / Browser → Harness UI
Finder           → 项目路径 / Project paths
终端 / Terminal  → 进程清理 / Process cleanup
Remote DSH 将这套流程缩短为一个简单工作流。

Remote DSH.app → Open Project / 打开项目 → Start coding / 开始写代码

App 负责协调本地工作流,模型计算仍然留在远程服务器。如果 SSH 隧道或
Harness 已经健康运行,它会直接连接,不会接管所有权。

Use Cases / 适用场景

适用于 DeepSeek Harness 和代码项目运行在 Mac 本地,而模型服务运行在远程 GPU
服务器,并通过 SSH 隧道访问的场景。

FAQ / 常见问题

DeepSeek Harness 会运行在远程服务器上吗? 不会。Harness 运行在 Mac
本地。

项目会存储在远程服务器上吗? 不会。Finder 选择的是存储在 Mac 本地的项目。

可以使用远程 GPU 服务器吗? 可以。只要模型服务能够通过配置好的 SSH
隧道访问即可。

How it works / 工作原理

flowchart LR
subgraph Mac["Local Mac / 本地 Mac"]
App["Remote DSH.appAppKit + WebKit"]
Harness["DeepSeek HarnessLocal process / 本地进程"]
Project["Local coding project本地代码项目"]
Tunnel["SSH tunnel / SSH 隧道Numeric loopback port / 数字形式本地回环端口"]

App -->|Start or attach / 启动或连接| Harness
App -->|Start or attach / 启动或连接| Tunnel
App -->|Finder directory picker / Finder 目录选择器| Project
Harness -->|Read, edit, and run tools / 读取、编辑并运行工具| Project
Harness -->|Model API through localhost / 通过 localhost 调用模型 API| Tunnel
end

subgraph Server["Remote Server / 远程服务器"]
Model["Compatible model service / 兼容的模型服务GPU, CPU, or other accelerator / GPU、CPU 或其他加速器"]
end

Tunnel -->|SSH port forwarding / SSH 端口转发| Model

DeepSeek Harness 和选中的项目都留在 Mac 本地。远程服务器运行模型服务;已有的
SSH alias 决定如何把本地端口转发到该服务。

Quick Start / 快速开始

1. 准备一个 SSH alias,用于建立到远程模型服务所需的本地端口转发。

2. 准备一个可执行启动器,用于启动本地 DeepSeek Harness profile。

3. 克隆本仓库、进入仓库目录,然后安装中性的配置示例。

cd remote-dsh-macos
mkdir -p "$HOME/Library/Application Support/RemoteDSH"
cp Resources/config.example.plist \
"$HOME/Library/Application Support/RemoteDSH/config.plist"

4. 根据自己的 SSH alias、端口和 Harness 启动器修改配置。

${EDITOR:-vi} "$HOME/Library/Application Support/RemoteDSH/config.plist"

5. 从源码运行 App。

swift run RemoteDSHApp

系统要求

- 搭载 Apple Silicon 的 macOS 14 或更高版本
- Swift 6 工具链
- 一个能够为远程模型建立本地隧道的现有 SSH alias
- 一个由用户管理、用于启动本地 Harness profile 的可执行文件
- 一个能够通过该隧道访问的兼容模型服务

Remote DSH 不会生成 SSH 配置、安装 DeepSeek Harness 或管理模型服务商凭据。

配置

实际运行时配置保存在以下路径。

$HOME/Library/Application Support/RemoteDSH/config.plist

| 键 | 必需 | 用途 |
| --- | --- | --- |
| sshAlias | 是 | 用于建立模型隧道的现有 SSH alias。 |
| sshLocalPort | 是 | 由 SSH alias 建立的数字形式本地回环端口。 |
| harnessPort | 是 | Harness Web Host 使用的本地端口。 |
| harnessLauncherPath | 是 | 用于启动指定 Harness profile 的绝对可执行路径,或以 ~/ 开头的路径。 |
| displayModelName | 否 | 仅在 App 界面中显示的非敏感标签。 |

示例文件只使用中性值,不包含凭据字段。两个端口必须都在 1 到 65535 之间,
并且不能相同。

从源码构建和测试

运行行为、打包和隐私检查。

swift run RemoteDSHTestRunner
/bin/bash Scripts/test-public-tree.sh
/bin/bash Scripts/test-public-history.sh
/bin/bash Scripts/test-atomic-install.sh
/bin/bash Scripts/test-build-app.sh
/bin/bash Scripts/verify-public-tree.sh .
/bin/bash Scripts/verify-public-history.sh .

仅在明确指定的绝对路径构建本地 ad-hoc 签名 App,然后验证并打开该副本。

temporary_root="$(mktemp -d)"
/bin/bash Scripts/build-app.sh \
"$temporary_root/Remote DSH for macOS.app"
/bin/bash Scripts/verify-bundle.sh \
"$temporary_root/Remote DSH for macOS.app"
open "$temporary_root/Remote DSH for macOS.app"

build-app.sh 永远不会替你选择 Applications 目录。当替换一个已存在的明确目标路径时,
它会在目标父目录的 .remote-dsh-backups 目录下保留之前的 bundle。
build-app.sh 不会自行选择 Applications 目录。替换用户明确指定的现有目标时,
它会把旧 App 保留在目标父目录下的 .remote-dsh-backups 目录中。

Built to stay out of your way / 尽量不打扰你的现有环境

Remote DSH does not kill processes by name. It retains exact handles only for
the SSH and Harness child processes it launches, then stops those children in
Harness-then-SSH order when the app exits.

Remote DSH 不会按进程名批量终止进程。它只保存自己启动的 SSH 和 Harness
子进程的精确句柄,并在 App 退出时按照先 Harness、后 SSH 的顺序停止它们。

If a healthy tunnel or Harness instance was already running, Remote DSH simply
attaches to it and leaves it running on quit.

如果已有健康的 SSH 隧道或 Harness 实例正在运行,Remote DSH 只会连接,并在退出
时保留它们。

Safety and privacy / 安全与隐私

- The configuration file remains local. Wrapper RPC and embedded Harness
traffic stay on configured numeric loopback origins.
配置文件保留在本地;本封装的 RPC 和内嵌 Harness 流量仅限于配置的数字形式
本地回环地址。
- Embedded navigation is limited to the configured Harness origin; genuine
external HTTP and HTTPS links open in the default browser.
内嵌导航仅允许配置的 Harness origin;真正的外部 HTTP 和 HTTPS 链接会在默认
浏览器中打开。
- The wrapper contains no provider credentials, collects no analytics, and
sends no telemetry.
本封装不包含模型服务商凭据,不收集分析数据,也不发送遥测。
- Project content handled by Harness follows your separately managed Harness
and model configuration. Remote DSH adds no separate project upload.
Harness 处理的项目内容遵循用户单独管理的 Harness 和模型配置;Remote DSH 不会
额外上传项目内容。
- Diagnostics are bounded and sanitized before they are shown.
向用户显示前,诊断信息会受到长度限制并进行敏感信息清理。

For security reports, see SECURITY.md.

安全问题报告方式请参阅 SECURITY.md。

Limitations / 当前限制

- The current public version is source-only and Apple Silicon/macOS 14+ only.
当前公开版本仅提供源码,并且仅支持 Apple Silicon/macOS 14+。
- It does not include a notarized download, DMG, updater, or Homebrew cask.
不提供经过公证的下载、DMG、自动更新器或 Homebrew cask。
- SSH configuration, the remote model service, Harness installation, and
provider credentials remain user-managed.
SSH 配置、远程模型服务、Harness 安装和模型服务商凭据均由用户自行管理。
- The Finder picker selects local Mac project directories; it is not a remote
filesystem browser.
Finder 选择器选择的是 Mac 本地项目目录,不是远程文件系统浏览器。
- Search is not supplied or promised by this wrapper. Any search tool belongs
to your separately managed Harness profile.
本封装不提供也不承诺搜索能力;搜索工具属于用户单独管理的 Harness profile。
- GPU acceleration is a common deployment choice, not a wrapper requirement.
GPU 加速是一种常见部署选择,不是本封装的硬性要求。

Roadmap / 路线图

- [x] Native AppKit/WebKit shell
原生 AppKit/WebKit 外壳
- [x] Automatic SSH and Harness start-or-attach lifecycle
SSH 与 Harness 自动启动或连接生命周期
- [x] Native local-project picker
原生本地项目选择器
- [x] Exact child-process ownership and safe shutdown
精确子进程所有权与安全退出
- [x] First source-only GitHub release (v0.1.0)
第一个仅提供源码的 GitHub Release(v0.1.0)

Future distribution work will be evaluated only after the signing, notarization,
只有在签名、公证和发布流程能够经过验证后,才会评估未来的分发工作。这些内容是
方向,不是交付承诺。

Contributing / 参与贡献

欢迎提交 Issue 和范围明确的 Pull Request。提交变更前请运行:

swift run RemoteDSHTestRunner
/bin/bash Scripts/verify-public-tree.sh .
/bin/bash Scripts/verify-public-history.sh .

示例请保持中性;不要提交凭据、真实 hostname、SSH alias、私人项目路径、会话数据
或生成的 App bundle。

Disclaimer and upstream / 免责声明与上游项目

Remote DSH for macOS 是一个非官方社区项目。本项目与 DeepSeek 没有隶属关系,
也未获得其背书,不是 DeepSeek 官方产品。

上游运行时为
DeepSeek Harness,由上游根据
MIT 许可证
单独分发。本封装不会嵌入该运行时。

License / 许可证

Remote DSH for macOS 根据 MIT License 发布。上游归属信息请参阅
THIRD_PARTY_NOTICES.md。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群