DeepSeek Harness Hub
← 返回列表

macOS 智能体会话客户端kasparovabi/dsh-studio

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

在原生 Mac 窗口里驱动智能体会话与工具审批

暂不能直接安装(需源码编译或环境不满足):仓库缺少 package.json,无法用 dsh 插件安装命令安装。 · 最近上游提交 2026/9/11 · 已提供中文文档

一个非官方的原生 macOS (SwiftUI) 客户端,用于 dsh——DeepSeek 智能体框架——支持会话、实时轨迹、工具审批、模型、目标、子智能体。

综合分
31.8
GitHub 分
31.8
用户评分
★ Stars
3
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add kasparovabi/dsh-studio
仓库缺少 package.json,无法用 dsh 插件安装命令安装,改用 GitHub 源安装
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-studio(未发布到 npm,仅可源码安装)
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件缺少入口声明

仓库缺少 package.json,无法用 dsh 插件安装命令安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 21:09:29

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-studio

一个用于 dsh 的原生 macOS 客户端,dsh 是 @deepseek-ai/dsh 编码智能体框架。使用 SwiftUI,没有 Electron,没有 web 视图。它通过 JSON-RPC 接口和 WebSocket 事件流与本地 dsh 服务器通信,为你提供一个真正的 Mac 应用来驱动智能体会话。

非官方,由社区构建。与 DeepSeek 无关联,也未获其认可。dsh 是一个独立项目,有其自己的许可证和条款。

dsh-studio

▶ 观看 20 秒演示

为什么

dsh 提供了一个功能强大的本地智能体框架,但日常使用都要通过终端进行。dsh-studio 将同一个服务器封装在一个原生窗口中:会话列表、带有流式文本和推理的实时轨迹、工具调用、审批,以及会话控制(模型、推理强度、权限模式、预设、目标)都作为真正的界面元素,而不是斜杠命令。

功能

- 会话。 按日期分组(今天 / 昨天 / 最近 7 天 / 更早)并按最近时间排序的浏览器,显示项目、相对时间、轮次计数,每一行都有一个实时圆点。可按项目筛选、搜索、创建(选择工作目录)、重命名、分叉。磁盘上已有的每个会话都会显示出来,包括早在此应用之前就从 dsh CLI 启动的会话。
- 历史恢复。 dsh 服务器会拒绝提供序列号或帧边界未通过完整性检查的会话日志。发生这种情况时,应用会自行读取日志,跳过无法解析的记录,并显示转录内容而不是错误。
- 实时轨迹。 流式助手文本和推理、可折叠的思考过程、带参数的工具调用,以及渲染的 markdown,其中的围栏代码块可以复制。
- 模型与推理。 按会话切换模型、提供方和推理强度。
- 审批与问题。 以内联方式响应工具审批提示(显示实际参数)和结构化问题。
- 会话控制。 从顶部栏设置权限模式、智能体预设和可用技能。
- 设置。 齿轮按钮会打开一个面板,你可以在其中输入每个提供方的 API 密钥或令牌,并设置默认模型,通过 dsh 自己的凭据存储(~/.dsh/.credentials.yaml)写入,因此全新安装无需任何 shell 设置。
- 目标、任务、子智能体。 设置并驱动会话目标,查看后台任务,检查和中断子智能体。
- 图像。 将图像附加到提示中;从历史记录中查看图像附件。
- 上下文与令牌。 令牌使用明细和上下文压力计量器。
- 金属背景。 一种轻量的动画渐变,会响应鼠标和智能体活动,窗口被遮挡时暂停。

要求

- macOS 14 或更高版本
- dsh 已安装,并可在 ~/.npm-global/bin/dsh 访问。它属于预发布版本,因此请固定你测试过的版本,而不是跟踪标签:npm i -g --ignore-scripts @deepseek-ai/dsh@0.1.0-rc.7。应用会将你的登录 shell 环境交给这个二进制文件,这就是为什么你在这里安装的内容很重要。
- 你所使用模型的提供商凭据。请在应用的 Settings 面板(齿轮按钮)中输入它们,该面板会将每个密钥存储在 dsh 的凭据存储中,并在下一次请求时应用。dsh 还会从 ~/.dsh/settings.yaml 中由 apiKeyEnv 命名的环境变量读取密钥;当应用启动自己的服务器时,它会转发你的登录 shell 环境以及 ~/.hermes/.env 中的每个密钥,因此现有的 shell 配置对任何提供商都能继续生效,而不仅仅是 Anthropic。由环境提供的密钥会显示出来,但无法在面板中编辑,因为 dsh 将启动环境视为权威来源。
- Xcode 和 XcodeGen(brew install xcodegen)
- 如果你想要历史记录抢救路径,需要 Node 22.15 或更新版本,该路径使用 zstdDecompressSync 解压会话日志

构建与运行

git clone https://github.com/kasparovabi/dsh-studio.git
cd dsh-studio
xcodegen generate
open DshStudio.xcodeproj   # then Run, or:
xcodebuild -scheme DshStudio -configuration Debug build

连接方式

启动时,应用会探测 http://127.0.0.1:3080。如果那里已有 dsh 服务器在响应,它就会连接到该服务器;否则它会启动自己的 dsh web --port (转发你的登录 shell 环境以及 ~/.hermes/.env,以便所有已配置的提供商都可用),并在退出时关闭该子进程。可通过 DSH_STUDIO_PORT 环境变量覆盖端口。请求发送到 POST /api/;事件通过 ws://127.0.0.1:/api/events.mux 到达。

注意事项与限制

- dsh 属于预发布版本;其 RPC 接口可能在不同版本之间发生变化,而此客户端跟踪的是它的某个特定快照。
- 凭据取自你的登录 shell 环境以及 ~/.hermes/.env。如果你将密钥保存在其他地方,请在 shell 配置文件中导出它们,或将它们添加到 ~/.hermes/.env。
- 本地 dsh API 按设计未经身份验证,并且仅在回环地址上响应;请像对待任何其他本地开发服务器一样对待它。
- 无遥测,无账户。该应用只与你的 dsh 服务器通信,不与其他任何东西通信。

从另一台机器访问服务器

scripts/tailnet-proxy.js 将 RPC 接口放到你的 Tailscale 地址上,这样手机或第二台计算机就可以驱动同一个服务器。在安装之前,请先了解它的作用:dsh 自身的保护是对 Host 标头的回环检查,而代理必然会绕过它。

该代理用共享密钥替代了这种保护,而不是将其移除:

mkdir -p ~/.dsh && openssl rand -hex 32 > ~/.dsh/proxy-token && chmod 600 ~/.dsh/proxy-token
每个请求都必须以 X-Dsh-Key 的形式携带它(WebSocket 也可以改为通过 dsh-key. 子协议提供它),只有 /api/ 路径会被转发,并且只会响应 100.64.0.0/10 内的对等端。将 DSH_PROXY_PEERS 设置为逗号分隔的列表,可将其缩小到指定的设备。在应用中,将密钥粘贴到 Servers 工作表中地址旁边。

在此之上还有两件事值得做:在 Tailscale ACL 中将端口 3080 限制为你自己的设备,并记住任何持有该密钥的人都会获得 ~/.dsh/settings.yaml 所授予的任何工具策略,而默认情况下是 danger-full-access。

许可证

MIT。参见 LICENSE。

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

💬 加入 DPharness 群聊

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

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