Foreword¶
In DeepSeek Harness (DSH), giving agents the ability to “use a computer” commonly involves writing Skill documents by hand, step-by-step describing click paths and shortcuts. Having the user actually demonstrate a workflow on macOS is often more accurate than textual descriptions, but the demonstration itself doesn’t automatically become a callable Skill for the Harness.
humblebanana/dsh-record-replay is a community-maintained workflow-type plugin (SkillHub category: Workflow, GitHub 10 stars). It integrates the Open Record/Replay macOS recorder into DSH, registering the open-record-replay skill and six model-facing orr_* tools. This allows agents to record user demonstrations, validate evidence, and package it for the host Skill Creator.
What This Is¶
dsh-record-replay is maintained by humblebanana, current version v0.2.0, MIT license. The plugin itself does not implement the underlying recording but calls the local bin/orr.js from the open-record-replay repository, exposing the recording session and event stream as Harness tools.
The entire chain is as follows:
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
Core Functionality¶
Skill and Tools¶
The plugin registers the open-record-replay skill and provides the following orr_* tools:
| Tool | CLI Mapping | Function |
|---|---|---|
orr_permissions_check |
permissions check |
Check Accessibility / Input Monitoring permissions before recording |
orr_record_start |
record start |
Start capturing user demonstration |
orr_record_stop |
record stop |
End and finalize the session to disk |
orr_session_events |
session events |
Read the events.jsonl evidence stream; number of entries can be limited via limit |
orr_session_validate |
session validate-recording |
Validate the recording result against the official contract |
orr_skill_prepare |
skill prepare |
Package a skill-input directory for the host Skill Creator |
orr_skill_create |
— (built-in) | Fallback when no host Skill Creator exists: generates a SKILL.md skeleton from the recording session per the Anthropic skills spec and installs it to ~/.agents/skills/<name>/ |
The CLI runs with the session workspace as the current directory, and the recording artifacts and skill package land in a location readable by the agent’s file system tools.
Runtime Requirements¶
- macOS (recording backend is Swift, requires Xcode Command Line Tools)
- Node.js
>= 22.19(Harness runtime) - DeepSeek Harness installed
- A local checkout of open-record-replay for the plugin to call its
bin/orr.js
Installation and Enabling¶
First build, then add the package to the 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 writes the package into the profile’s package.json dependencies and dsh.profile.bundles, and the Harness fixes the profiles/node_modules fallback path to resolve the bundle.
The plugin comes with a cordis.patch.yml that mounts a neutral configuration line. Override repoRoot in the profile’s cordis.patch.yml to point to your open-record-replay path:
- id: record-replay
config:
repoRoot: '/absolute/path/to/open-record-replay'
runsOut: 'runs'
skillInputsOut: 'skill-inputs'
Profile patches support hot loading; the running GUI generally recognizes changes without restart. If not on a live profile, you need to restart the Harness.
Configuration Options¶
| Key | Default | Meaning |
|---|---|---|
cliPath |
Environment variable ORR_CLI_PATH |
Explicit path to bin/orr.js, takes precedence over repoRoot |
repoRoot |
Environment variable ORR_REPO_ROOT |
Root directory of the open-record-replay repository; CLI is <repoRoot>/bin/orr.js |
runsOut |
runs |
Recording directory relative to the workspace |
skillInputsOut |
skill-inputs |
skill-input package directory relative to the workspace |
Typical Usage¶
Below is a reproducible agent-side flow.
- Check permissions before recording:
orr_permissions_check
- Start recording after the user begins demonstration, stop after demonstration ends:
orr_record_start
# User completes operation demonstration on macOS
orr_record_stop
- Validate the recording and read events as needed:
orr_session_validate
orr_session_events
- Package the skill-input and hand it to the host Skill Creator; if no native creator exists, use the built-in fallback:
orr_skill_prepare
# or
orr_skill_create
After the above steps, a desktop demonstration produces session.json, events.jsonl, and a skill-input directory, ready for subsequent Skill generation and installation.
Use Cases and Notes¶
Who It’s For: Developers using DSH on macOS for computer-use or workflow automation; scenarios where turning “let me show you” into a reusable Skill is needed.
Platform Limitation: Supports macOS only, and depends on the local open-record-replay and system Accessibility and Input Monitoring permissions.
Security and Trust: The plugin runs with the current DSH process permissions and calls the local CLI to read/write workspace files. Before installation, please read the GitHub source code and MIT license to confirm repoRoot points to a trusted open-record-replay checkout.
The DSH ecosystem follows “everything is a plugin”; SkillHub is an independent community directory with no official affiliation to DeepSeek / High-Flyer.
Links¶
- SkillHub Directory Page: https://www.skillhub.cn/plugins/humblebanana/dsh-record-replay
- GitHub Repository: https://github.com/humblebanana/dsh-record-replay
- Underlying Recorder: https://github.com/humblebanana/open-record-replay