deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
humblebanana/open-record-replay
Open-source macOS record-and-replay workflow recorder for computer use agents. Captures mouse, keyboard, and UI events as structured traces so agents can learn, replay, and automate real desktop tasks.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:humblebanana/open-record-replay
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Teach Computer Use agents by demonstration.
Record a macOS workflow once, save the evidence, and let an agent turn it into a reusable skill.
English | 简体中文
Open Record/Replay is a local-first macOS recorder for workflows that are easier to show than to write down. It captures a user's real desktop actions into structured artifacts such as session.json and events.jsonl, validates the recording quality, and packages the evidence for an agent's skill creation flow.
The goal is simple: if a user can demonstrate a desktop workflow once, an agent should have enough evidence to learn it.
flowchart LR
A["User demonstrates a macOS workflow"] --> B["Open Record/Replay records events"]
B --> C["session.json + events.jsonl"]
C --> D["Validate recording quality"]
D --> E["Prepare skill input package"]
E --> F["Agent creates its own reusable Computer Use skill"]
Some workflows are hard to describe as prompts:
Open Record/Replay gives agents a concrete evidence stream instead of asking them to infer the workflow from a vague description.
Open Record/Replay can capture action-level evidence for workflows such as:
The recorder can capture:
window.changedmouse.clickmouse.dragkeyboard.text_inputkeyboard.submitselection.changedevents.jsonl is the primary evidence. Screenshots are not part of the current core recording path.
This is the typical flow for teaching an agent a new desktop workflow.
git clone https://github.com/humblebanana/open-record-replay.git
cd open-record-replay
npm install
npm run check
Check macOS permissions:
node bin/orr.js permissions check
Request missing permissions:
node bin/orr.js permissions request
Start a recording:
node bin/orr.js record start --name send-file-demo --out runs --request-permissions
Now demonstrate the workflow on your Mac. For example:
When finished, stop the recording:
node bin/orr.js record stop latest
Validate the evidence:
node bin/orr.js session validate-recording latest
Prepare a skill input package:
node bin/orr.js skill prepare latest --runs runs --out skill-inputs
The package will be written to:
skill-inputs/<session-id>/
├── README.md
├── events.jsonl
└── session.json
Give this directory to the current agent's skill creation flow.
Recording output:
runs/sessions/<session-id>/
├── session.json
├── events.jsonl
├── orr_session.json
└── recording_manifest.json
Skill input package:
skill-inputs/<session-id>/
├── README.md
├── events.jsonl
└── session.json
session.json records the recording boundary, timing, and event path. events.jsonl is the source of truth for what happened during the demonstration.
This repository includes a host instruction skill:
skills/open-record-replay/SKILL.md
An agent should use it to understand when to start recording, when to stop, how to inspect events.jsonl, and how to hand the evidence package to its own skill creation flow.
Expected agent flow:
session.json and events.jsonl.node bin/orr.js permissions check
node bin/orr.js permissions request
node bin/orr.js record start --name my-workflow --out runs --request-permissions
node bin/orr.js record stop latest
node bin/orr.js session list
node bin/orr.js session inspect latest
node bin/orr.js session events latest
node bin/orr.js session validate-recording latest
node bin/orr.js skill prepare latest --runs runs --out skill-inputs
The stable public path is recording, validation, and skill input packaging.
The core recorder does not require Screen Recording.
Recordings are local by default, but events.jsonl can contain sensitive data:
Review recordings before sharing them. Do not publish raw recordings that contain secrets, private documents, customer data, internal URLs, or personal information.
See Privacy.
Open Record/Replay is alpha software.
Current public scope:
macOS native recorder
+ CLI
+ session.json / events.jsonl
+ recording validation
+ skill input package
+ host-agent skill creation handoff
Future work may include richer adapters or optional visual evidence. They are not part of the current stable public path.
English | 简体中文
Open Record/Replay 用来通过一次真实演示,让 Computer Use Agent 学会一个 macOS 桌面工作流。
它会把用户在 Mac 上的真实操作录制成 session.json 和 events.jsonl,检查录制质量,并打包成 Agent 可以读取的 Skill 输入包。最终 Skill 不由 Open Record/Replay 直接生成,而是交给当前 Agent 使用自己的 Skill 创建流程完成。
核心目标很简单:如果用户可以演示一次工作流,Agent 就应该有足够的证据去学习它。
flowchart LR
A["用户演示 macOS 工作流"] --> B["Open Record/Replay 录制事件"]
B --> C["session.json + events.jsonl"]
C --> D["验证录制质量"]
D --> E["打包 Skill 输入"]
E --> F["Agent 创建自己的可复用 Computer Use Skill"]
有些工作流很难直接写成提示词:
Open Record/Replay 给 Agent 的不是模糊描述,而是一份真实事件证据流。
典型场景包括:
录制器可以捕捉:
window.changedmouse.clickmouse.dragkeyboard.text_inputkeyboard.submitselection.changedevents.jsonl 是最关键的证据。截图不是当前核心录制链路的一部分。
安装并检查项目:
git clone https://github.com/humblebanana/open-record-replay.git
cd open-record-replay
npm install
npm run check
检查 macOS 权限:
node bin/orr.js permissions check
请求缺失权限:
node bin/orr.js permissions request
开始录制:
node bin/orr.js record start --name send-file-demo --out runs --request-permissions
然后在 Mac 上演示你的工作流。比如:
完成后停止录制:
node bin/orr.js record stop latest
验证录制质量:
node bin/orr.js session validate-recording latest
准备 Skill 输入包:
node bin/orr.js skill prepare latest --runs runs --out skill-inputs
产物会写入:
skill-inputs/<session-id>/
├── README.md
├── events.jsonl
└── session.json
把这个目录交给当前 Agent 的 Skill 创建流程即可。
录制输出:
runs/sessions/<session-id>/
├── session.json
├── events.jsonl
├── orr_session.json
└── recording_manifest.json
Skill 输入包:
skill-inputs/<session-id>/
├── README.md
├── events.jsonl
└── session.json
session.json 记录录制边界、时间和事件路径。events.jsonl 是判断用户到底做了什么的 source of truth。
仓库里包含一个给 Agent 使用的说明 Skill:
skills/open-record-replay/SKILL.md
Agent 应该通过它理解什么时候开始录制、什么时候停止、如何读取 events.jsonl,以及如何把证据包交给自己的 Skill 创建流程。
推荐流程:
session.json 和 events.jsonl。node bin/orr.js permissions check
node bin/orr.js permissions request
node bin/orr.js record start --name my-workflow --out runs --request-permissions
node bin/orr.js record stop latest
node bin/orr.js session list
node bin/orr.js session inspect latest
node bin/orr.js session events latest
node bin/orr.js session validate-recording latest
node bin/orr.js skill prepare latest --runs runs --out skill-inputs
当前稳定公开路径是:录制、验证、打包 Skill 输入。
核心录制器不需要 Screen Recording 权限。
录制默认保存在本地,但 events.jsonl 可能包含敏感信息:
分享录制前必须先检查内容。不要公开包含密钥、私有文档、客户数据、内部 URL 或个人信息的原始录制。
详见 Privacy。
Open Record/Replay 目前是 alpha 版本。
当前公开范围:
macOS 原生录制器
+ CLI
+ session.json / events.jsonl
+ 录制质量验证
+ Skill 输入包
+ 交给宿主 Agent 创建最终 Skill
未来可能会增加更丰富的适配器或可选视觉证据,但这些不是当前稳定公开路径。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: skills。