Skip to main content

How to use dsh-automation

Introducing standalone session scheduled tasks for DeepSeek Harness: execute self-contained tasks on schedule within the new Agent + Session, with dual access via Web console and Agent tools.

This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.

This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.

Quick start

dsh-automation

— source: plugin_wiki.wiki_content

Install & verify

dsh plugin --profile web add github:titanwings/dsh-automation

Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.

— source: plugins.install

Key points

  • DSH Web: use the Automations conversation tab to create a rule, pause or resume it, run it now, delete it, and inspect recent runs.
  • Any eligible root Agent: ask in natural language. Six scoped tools let the Agent manage automations only for its exact workspace.
  • a new Session ID and fresh root Agent;
  • the saved prompt, not the source conversation history;
  • the captured workspace, cwd, Agent preset, model target, and permission preset;

— source: plugin_wiki.readme_en (fallback readme_raw)

FAQ

Is this plugin adding a cron to DSH?

More strict and safer than cron. Each trigger executes a self-contained prompt in a fresh root Agent + new Session, with permissions limited to read-only or workspace-write, does not accept danger-full-access, and never executes raw shell.

Can automated tasks inherit the current session's context?

No. Each run cannot access source session history, inbox, authorizations, or historical approvals; tasks are explicitly delivered with source.kind = "automation", making behavior auditable.

If the host crashes and misses execution time, will it rerun?

No. Within the default 15-minute fault tolerance window, only the most recent due item will be re-executed, earlier ones will be marked as misfire skipped; write-type side effects will never be silently re-done.

What happens on execution timeout or crash?

Single run is cancelled after 60 minutes and marked as failed; when Host restarts, leftover queued/running records are marked as failed(host_interrupted), never silently retried.

Can it be managed from both Web and Agent?

Yes. Web has an Automations tab (create/pause/run now/delete/view history), any root Agent can call 6 tools: automation_create/list/update/run_now/runs/delete, and tools are bound to the caller's workspace and cannot target other workspaces.

Does deleting a task also delete the history records?

No. Deletion only removes the definition; completed run records are retained for audit; only the oldest completed records are trimmed by historyLimit default 200, running or queued ones are never trimmed.

How many tasks can run concurrently at the same time?

Default global concurrency limit is 2, and each automation is still internally mutually exclusive (when a queued/running exists, the next due item is marked as skipped(overlap)). Can adjust maxConcurrentRuns to 1-32 in cordis.patch.yml.

Can archived sessions from archiveRunSessions be reviewed?

Logs are still in "automation run history", Session ID, summary, and errors are readable; but current DSH host has no unarchive API, after archiving the Session can only be seen with a marker in the regular session list and cannot be opened directly.

— source: plugin_wiki.faq_json

Compatibility

  • DSH: 未声明
  • Node: ^22.19.0 || >=24.0.0
  • Platforms: 跨平台

— source: plugin_wiki.compatibility_json

Pitfalls

Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.

— source: general rule