Introduction¶
In DeepSeek Harness (DSH) conversation flow development, monitoring background tasks (run_in_background) often relies on manual queries or page refreshes. This makes it difficult for developers to intuitively understand task status, elapsed time, and progress. This plugin addresses this pain point and provides real-time rendering.
What Is This¶
This is a real-time task progress plugin for DeepSeek Harness (DSH) conversation flows. It is maintained by sssueason. It renders status, elapsed time, progress bars, ETA, and a stop button for background tasks without refreshing the page.
Core Features¶
- Real-time status display: Supports five states—running, stopping, completed, stopped, and failed—and displays elapsed time and exit code.
- Progress bar rendering: Automatically parses
N/MorNN%formats from the model’sjob_outputand generates a visual progress bar. - Estimated time of arrival (ETA): Outputs progress-based estimates; if there is no progress, it calculates based on the historical average.
- Stop button: Supports one-click invocation of
jobs.killto terminate the task. - General coverage: Supports background task display for multiple tools such as PowerShell, Bash, and Subagents.
Installation and Activation¶
Use the following command to install the plugin:
dsh plugin --profile web add "github:sssueason/dsh-pwsh-progress#main"
After installation, you need to restart dsh web to make the configuration take effect.
Typical Usage¶
After installing and restarting dsh web, when you initiate a background PowerShell command from a conversation flow, a real-time progress card is automatically displayed.
For example, to run a loop task:
1..25 | ForEach-Object { Write-Output "step $_/25" }
The interface will display:
* Task status: Running
* Progress bar: [██████████████░░░░░░░░] 56%
* Elapsed time and ETA
* Stop button
Use Cases and Notes¶
- Scenarios: Suited for scenarios requiring long-running background tasks (such as data migration, script execution, and large-file processing).
- Notes:
- Slot semantics: This plugin replaces the official card with the same name (Slot semantics) and takes effect in
pwshscenarios. - Output limitation: There is no output tail (output is still displayed via
job_output), and it depends on the output stream from the model side. - Process dependency: The historical ETA estimation feature runs within the host process; this data will be lost after restarting
dsh web.
- Slot semantics: This plugin replaces the official card with the same name (Slot semantics) and takes effect in
Conclusion¶
The plugin follows non-consuming jobs.get tracking, avoiding blocking the model’s job_output and ensuring real-time task feedback. For more details, see GitHub.