Introduction¶
In the DeepSeek Harness (DSH) plugin ecosystem, integrating with business systems (such as EIP systems) through interfaces usually requires clearly defining interface specifications, business steps, and data contracts. Existing documentation is often missing or outdated, and reverse engineering can be costly. dsh-web-recorder provides an alternative: instead of relying on documentation, it records real browser operations and network requests, generates a timeline report that can be analyzed by large models, and infers the interface call sequence and data formats.
Core Capabilities¶
This plugin focuses on “observation and recording”:
* Records real browser operations (clicks, inputs, navigation) and network requests (XHR/Fetch).
* Generates a Markdown summary report (report.md) and a raw event stream (events.jsonl).
* Attaches to an already open browser window (such as a Playwright MCP browser with a debugging port).
* Launches a headed browser for recording.
* Provides tools: recorder_start, recorder_stop, and recorder_status.
Installation and Prerequisites¶
Using this plugin requires the following environment setup:
* DSH host version: @deepseek-ai/dsh ^0.2.0-rc.2
* Node.js >= 18
* pnpm >= 8
* Playwright MCP is an optional dependency and is not required.
Run the following command to install the plugin:
dsh plugin --profile web add dsh-web-recorder@latest
After installation is complete, hard refresh the browser to see the recorder_* tools in the DSH session tool list.
Tool Description¶
The plugin provides three core tools:
recorder_start(url?, waitSeconds?): Starts recording. It preferentially attaches to an existing browser window (such as Playwright MCP on a CDP port); otherwise, it launches a headed browser.waitSecondscan be used to skip page initialization. Events are written toevents.jsonlin real time.recorder_stop(): Stops recording. Generates thereport.mdsummary report. In attach mode, it only disconnects and does not close the browser; in self-launched mode, it closes the window. This operation is idempotent.recorder_status(): Queries the recording status, including whether recording is in progress, event category counts, artifact directory,jobId, and so on.
Usage Flow¶
The plugin’s responsibility is only “recording”; page operations are driven by a real person or automation tools (such as Playwright MCP or browser-use).
- Start recording: Call
recorder_start. - Execute the workflow: Complete the business operations in the monitored browser window (driven by a human or automation tools).
- Stop recording: Call
recorder_stopto generate the report. - Analyze and consolidate: The model reads
report.mdandevents.jsonl, summarizes the business workflow, interface call sequence, and data contract, and further consolidates them into a skill or interface documentation.
Notes¶
- Recording scope: Records only the operations inside the browser window attached to or launched by the plugin.
- Driver separation: The plugin does not directly operate the page; it only records. If using Playwright MCP, ensure that its browser is started with
--remote-debugging-portso that the plugin can attach. - File output: After stopping recording, it generates
report.md(summary) andevents.jsonl(raw event stream).
Conclusion¶
dsh-web-recorder makes invisible interface calls visible by leaving traces of operations. For scenarios where documentation is lacking or interface contracts need to be quickly validated, it is a practical tool for connecting DSH agents with real Web business.