@kinocode/dsh-lcu:在 DSH 里用 LCU 控制 macOS 应用(带审批)

前言

DeepSeek Harness(DSH)通过 MCP 挂载外部能力,让智能体可以调用工具。若要把 LCU(Codex computer use,与 Codex 应用解耦的 macOS 原生应用操控运行时)接到 DSH,会遇到一个具体障碍:DSH 自带的 dsh-mcp-client 无法响应 LCU 按应用发起的 MCP elicitation(审批请求),直接挂载往往会报 createElicitation is unavailable。

社区插件 @kinocode/dsh-lcu(维护者 kinocode-jp,SkillHub 分类为工作流)在 LCU 前加了一层小型适配器 lib/adapter.mjs,由适配器处理审批,再向智能体暴露 mcp__lcu__js 与 mcp__lcu__js_reset,用于读取和操作 macOS 原生应用。下面介绍其定位、安装与配置要点。

这是什么

@kinocode/dsh-lcu 将 LCU 作为 DSH 插件接入:智能体通过上述两个 MCP 工具与 macOS 应用交互。插件仅支持 macOS(Apple Silicon),依赖官方 ChatGPT 桌面应用 与已安装的 LCU(例如 ~/.local/share/lcu,--runtime-only 即可,安装见 LCU INSTALLATION)。许可证为 MIT;npm 包版本在资料中为 0.2.0,要求 DSH >=0.2.0-rc.1、Node >=20.18.1。

环境与权限

使用前需满足:

  1. macOS(Apple Silicon),已安装官方 ChatGPT 桌面应用。
  2. LCU 已按上游文档安装;若路径不是默认位置,可在插件配置里设 prefix,或设置环境变量 LCU_PREFIX。
  3. 系统权限:辅助功能(ChatGPT Computer Use)与屏幕录制(ChatGPT)。

核心能力

适配器在 MCP 侧主要做这些事(与 README 一致):

  • 只暴露 js 与 js_reset;不向智能体暴露仅宿主使用的工具(例如 turn_ended)。
  • 截图保存到 $TMPDIR/dsh-lcu-shots/ 并返回文件路径(可用 read_image 查看),避免 MCP 客户端把图片变成占位符。
  • LCU 进程退出后,下一次调用会尝试重新连接。

安装与启用

在 desktop profile 下添加插件(命令来自官方 README):

dsh plugin --profile desktop add @kinocode/dsh-lcu

安装后重启 DSH,并新开一个会话。其他 profile 若未按文档配置,可能无法按预期加载该插件。

审批模式

在 profile patch 中为 lcu 配置 approval:

- id: lcu
  config:
    approval: ask      # ask (default) | all | deny
approval 行为
ask 弹出 macOS 对话框:拒绝 / 仅本次允许 / 始终允许(Touch ID,与 lcu apps allow 同类)。关闭、超时或过快应答视为拒绝
all 不询问,全部批准
deny 一律拒绝

任意模式下,适配器会拒绝智能体可能用来「自我批准」的应用:DSH、终端、Claude、osascript / System Events 等。还可配置 prefix、toolCallTimeoutMs。

README 建议优先使用 ask:all 会让智能体可操作任意应用(含浏览器、密码管理器等),风险较高。

典型用法(概念)

资料未给出完整对话示例,可复现的路径是:完成安装与权限后,在新会话中让智能体调用 mcp__lcu__js / mcp__lcu__js_reset 执行 LCU 侧的 JavaScript 操控;需要看图时根据返回的截图路径用 read_image 读取。具体脚本与 LCU API 以 LCU 仓库 为准。

适用场景与注意

  • 适合:已在 DSH desktop profile 上开发 macOS 智能体工作流,需要 LCU 级原生应用操控,且能接受每次(或按策略)人工审批的场景。
  • 不适合:非 macOS、无 ChatGPT 桌面应用或未安装 LCU 的环境。
  • 安全与合规:插件以当前 DSH 进程权限运行;安装前请阅读 GitHub 源码 与 MIT 许可证。README 标明其为非官方社区插件,与 OpenAI、amontlabs 无隶属关系;ChatGPT 应用及其运行时仍受各自条款约束,本包不包含 ChatGPT 本体。
  • 生态:DSH 强调「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

@kinocode/dsh-lcu 解决的是 DSH 默认 MCP 客户端无法处理 LCU 应用审批的问题,通过适配器把 js / js_reset 安全地接到智能体工具列表。需要细节、Issue 与更新时,请查阅 GitHub:kinocode-jp/dsh-lcu 与 SkillHub 插件页。

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

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

小夜