dsh-record-replay:把 macOS 桌面操作演示录成 Agent Skill

前言

在 DeepSeek Harness(DSH)里给智能体加「会用电脑」的能力,常见做法是手写 Skill 文档、逐步描述点击路径和快捷键。用户在 macOS 上实际演示一遍工作流,往往比文字描述更准,但演示本身不会自动变成 Harness 能调用的 Skill。

humblebanana/dsh-record-replay 是社区维护的工作流类插件(SkillHub 分类:工作流,GitHub 10 stars)。它把 Open Record/Replay 这套 macOS 录制器接入 DSH,注册 open-record-replay skill 和六个面向模型的 orr_* 工具,让 Agent 能录制用户演示、校验证据,并打包给宿主 Skill Creator。

这是什么

dsh-record-replayhumblebanana 维护,当前版本 v0.2.0,MIT 许可证。插件本身不实现底层录制,而是调用本地 open-record-replay 仓库里的 bin/orr.js,把录制会话和事件流暴露为 Harness 工具。

整条链路如下:

user demonstrates a workflow
  -> orr_record_start            (capture session.json + events.jsonl)
  -> orr_record_stop             (finalize)
  -> orr_session_validate        (check the evidence against the contract)
  -> orr_session_events          (read what the user actually did)
  -> orr_skill_prepare           (package a skill-input directory)
  -> host skill creator

核心功能

Skill 与工具

插件注册 open-record-replay skill,并提供以下 orr_* 工具:

工具 CLI 映射 作用
orr_permissions_check permissions check 录制前检查 Accessibility / Input Monitoring 权限
orr_record_start record start 开始捕获用户演示
orr_record_stop record stop 结束并落盘会话
orr_session_events session events 读取 events.jsonl 证据流,可通过 limit 限制条数
orr_session_validate session validate-recording 按官方契约校验录制结果
orr_skill_prepare skill prepare 为宿主 Skill Creator 打包 skill-input 目录
orr_skill_create —(内置) 无宿主 Skill Creator 时的回退:按 Anthropic skills spec 从录制会话生成 SKILL.md 骨架,并安装到 ~/.agents/skills/<name>/

CLI 以会话工作区为当前目录运行,录制产物和 skill 包会落在 Agent 文件系统工具可读的位置。

运行环境要求

  • macOS(录制后端为 Swift,需 Xcode Command Line Tools)
  • Node.js >= 22.19(Harness 运行时)
  • 已安装 DeepSeek Harness
  • 本地 checkout 一份 open-record-replay,供插件调用其 bin/orr.js

安装与启用

先做构建,再把包加入 profile:

git clone https://github.com/<you>/dsh-record-replay.git
cd dsh-record-replay
pnpm install
pnpm build
pnpm pack                      # produces dsh-record-replay-0.1.0.tgz
dsh plugin --profile web add ./dsh-record-replay-0.1.0.tgz

dsh plugin add 会把包写入 profile 的 package.json 依赖和 dsh.profile.bundles,Harness 会修复 profiles/node_modules 回退路径以便解析 bundle。

插件随附 cordis.patch.yml 挂载一行中性配置。在 profile 的 cordis.patch.yml 里覆盖 repoRoot,指向你的 open-record-replay 路径:

- id: record-replay
  config:
    repoRoot: '/absolute/path/to/open-record-replay'
    runsOut: 'runs'
    skillInputsOut: 'skill-inputs'

profile patch 支持热加载,运行中的 GUI 一般无需重启即可识别;若不在 live profile 上,需重启 Harness。

配置项

Key 默认值 含义
cliPath 环境变量 ORR_CLI_PATH bin/orr.js 的显式路径,优先于 repoRoot
repoRoot 环境变量 ORR_REPO_ROOT open-record-replay 仓库根目录,CLI 为 <repoRoot>/bin/orr.js
runsOut runs 相对工作区的录制目录
skillInputsOut skill-inputs 相对工作区的 skill-input 包目录

典型用法

下面是一条可复现的 Agent 侧流程。

1、录制前检查权限:

orr_permissions_check

2、用户开始演示后启动录制,演示结束再停止:

orr_record_start
# 用户在 macOS 上完成操作演示
orr_record_stop

3、校验录制并按需读取事件:

orr_session_validate
orr_session_events

4、打包 skill-input,交给宿主 Skill Creator;若无原生创建器,可用内置回退:

orr_skill_prepare
# 或
orr_skill_create

经过上面的步骤,一次桌面演示会落成 session.jsonevents.jsonl 和 skill-input 目录,供后续 Skill 生成与安装。

适用场景与注意

适合谁: 在 macOS 上用 DSH 做 computer-use 或工作流自动化的开发者;需要把「我做给你看」转成可复用 Skill 的场景。

平台限制: 仅支持 macOS,且依赖本机 open-record-replay 与系统辅助功能、输入监控权限。

安全与信任: 插件以当前 DSH 进程权限运行,会调用本地 CLI 读写工作区文件。安装前请阅读 GitHub 源码 与 MIT 许可证,确认 repoRoot 指向可信的 open-record-replay checkout。

DSH 生态遵循「一切皆插件」;SkillHub 是独立社区目录,与 DeepSeek / 幻方无官方从属关系。

链接

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

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

小夜