DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Loop — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
L

dsh-loop

Loop

DeepSeek Harness plugin: a /loop slash command for timed recurring agent loops

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:XiaoWind/dsh-loop#6cd4bc8f7ba3e3d4d8be8b5332289c1039397db3
READMECompatibilityVersions

Compatibility and provenance

Loop is published as dsh-loop and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
github
Registry updated
8/21/2026

Versions

0.1.0stable
8/21/2026
Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
any
License
MIT
Source
github
GitHub
★ 1
Weekly downloads
0
Last push
8/28/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

README

dsh-loop

English | 中文

A DeepSeek Harness (DSH) plugin that adds a human-facing /loop slash command for timed, recurring agent loops.

/loop 30m fires one immediate tick, then re-prompts the agent once per 30-minute interval (measured from the moment the agent returns to idle after the previous tick) until you stop it with /loop stop.

Install

# from GitHub (works immediately — no npm publish required)
dsh plugin --profile web add git+https://github.com/XiaoWind/dsh-loop.git

# or from npm, once published
dsh plugin --profile web add dsh-loop

The dsh plugin command forwards to pnpm inside the web profile directory, then reconciles the profile's dsh.profile.bundles layer list. Because this package declares dsh.bundle.patch, it joins the layer stack automatically. Restart the Web app after installing.

The plugin injects the commands service, so it activates only in profiles that compose a command adapter — the shipped web profile does.

Usage

CommandResult
/loop 30mStart a loop: tick now, then once every 30 minutes. Keeps any current objective.
/loop 30m fix the testsStart a 30-minute loop toward an objective.
/loop fix the testsStart a loop toward an objective at the default interval.
/loop 1h30mCombined durations are supported.
/loop resumeResume the loop saved before a restart.
/loop or /loop statusShow the running loop.
/loop stopStop the loop.
/loop helpShow help.

Intervals are a whitespace-free sequence of <number><unit> tokens where unit is one of ms, s, m, h, d — for example 90s, 30m, 1h30m, 2h.

A leading duration token is the interval and the remainder is the objective; with no leading duration, the whole input is the objective and the default interval applies.

Semantics

  • First tick is immediate. Each later tick fires interval after the agent returns to idle, so a running turn is never interrupted.
  • Saved across restarts. The loop config is persisted to $DSH_HOME/dsh-loop/<sessionId>.json. When you reopen the session after a restart, the plugin asks whether to continue the saved loop (Continue / Stop); /loop resume restarts it manually when no prompt is available. /loop stop discards the saved loop.
  • Manual stop. The loop runs until you run /loop stop, the agent is disposed, or the plugin is unloaded. There is no automatic completion detection.

Configuration

Set config.defaultIntervalMs (milliseconds) to change the interval used by a bare /loop <objective> with no leading duration token. The default is 600000 (10 minutes).

# your profile's cordis.patch.yml
- id: loop
  config:
    defaultIntervalMs: 900000

Development

# syntax check
node --check lib/index.js

# duration-parser unit test
node test/duration.test.mjs

The plugin is a single-file ESM Cordis function plugin (lib/index.js) with no build step. It exports apply, inject, and name, and the bundle layer cordis.patch.yml inserts it into the profile composition.

License

MIT