titanwings/dsh-automation

DSH 自动化插件:让 Coding 任务按计划在全新 Agent Session 中运行,并由用户或 Agent 创建和管理定时任务。 / Run coding tasks in fresh Agent sessions and manage schedules from DSH Web or an Agent.

Bundle verified MIT TypeScript v0.1.6
Bundle verified

Listed

53

Workflow

Bundle verified

Versionv0.1.6
LanguageTypeScript
LicenseMIT
View on GitHub

Preview

Preview 1 of 2: titanwings/dsh-automation
Preview 2 of 2: titanwings/dsh-automation

What it does

Scheduled coding runs in fresh agent sessions with auditable history.

Best for

  • Recurring or one-shot coding tasks that are complete enough to run unattended at a scheduled time.
  • Teams that need each occurrence to use a fresh root agent and session within an explicit workspace and permission boundary.
  • Users who need durable run history tied to the exact automation-definition revision.

Not ideal for

  • Same-chat reminders or follow-ups that should retain the current conversation; DSH Core Schedule fits those instead.
  • Tasks that depend on unstated chat history, require interactive approval midway, or trigger on file, HTTP, or process conditions.
  • Workflows requiring automatic retries, multi-workspace DAGs, worktree lifecycle management, or exactly-once external side effects.

README

⏱️ dsh-automation

Run coding tasks on schedule. Manage them from Web or Agent.

DeepSeek Harness Version Node.js License: MIT GitHub stars


🕒  Need recurring or one-shot coding work to run later without relying on an old chat?
🧭  Need each unattended run to stay inside an explicit workspace and permission boundary?
🧾  Need to inspect what ran, which revision it used, and how it ended?
✨ dsh-automation turns all three requirements into one workflow.

Create and manage schedules from DSH Web or any eligible root Agent. Every dispatched occurrence starts in a fresh root Agent and Session, then leaves an auditable record.

Self-contained task + schedule + permission boundary → fresh root Agent + fresh Session + durable run history


Why automation · Features · Install · Quick start · Safety · Technical details

English · 简体中文


dsh-automation — Schedule. Run. Remember.


Automation dashboard showing workspace rules, next runs, and recent outcomes

🎯 Why automation

DSH Core Schedule is the right tool for reminders in the current conversation: “come back to this Session in ten minutes.” dsh-automation handles a different job: “run this complete task independently every weekday and leave me a result I can inspect.”

  DSH Core Schedule dsh-automation
Execution context Returns to the same live Agent Starts a fresh root Agent and Session
Input A follow-up inside existing context A saved, self-contained task
Scope Current Session Log One canonical DSH workspace
History Conversation events Definition revisions and durable run records
Best for Reminders and same-chat follow-ups Repeated or one-shot standalone coding work

If a task depends on unstated chat history, needs an interactive approval halfway through, or should react to a file, HTTP, or process condition rather than time, it is not a good automation yet.


✨ Features

🕹️ One control plane, two ways in
  • 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.

There is no separate bot, daemon UI, or third-party scheduler to operate.

📅 Schedules people can read

Create a one-shot, fixed-interval, daily, or weekly rule. Daily and weekly schedules use an IANA time zone; the friendly form is normalized into a validated RFC 5545 RRULE for persistence and inspection.

Create form with schedule, time zone, and permission boundary

🧼 A clean execution boundary every time

Each dispatched occurrence receives:

  • 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;
  • an explicit automation message source containing the automation ID, run ID, and scheduled time;
  • a terminal result derived from the actual DSH turn end, not merely “message delivered.”
🧾 History that explains failure as well as success

Runs progress through queued, running, and a terminal state such as succeeded, failed, skipped, or cancelled. Each record keeps its definition revision, prompt and target snapshot, scheduled time, result Session ID, bounded summary, and structured error.

Run history with a completed run, an interrupted failure, summaries, and result Session links

Updating a definition increments its revision, so each retained run still identifies what it executed. Deleting the definition does not immediately erase those run records. Retention removes only the oldest terminal records; queued and running records are never pruned.

Set archiveRunSessions: true in the Cordis plugin config to archive completed, failed, cancelled, and other terminal run Sessions from the ordinary DSH conversation list. Their logs are not deleted: the Automations run history keeps the Session ID, summary, and error as an auditable inbox. Current Harness releases do not expose an unarchive API, so an archived result is labeled instead of offering a broken Session-open action. The default is false and preserves ordinary Session navigation.


⚡ Install

Install the GitHub bundle into the DSH Web profile, then restart dsh web:

dsh plugin --profile web add github:titanwings/dsh-automation#v0.1.6

The version tag keeps the install reproducible; a reviewed commit SHA is equally valid. If you run DSH from its source checkout, use pnpm dsh in place of dsh.

Frequently Asked QuestionsFAQ

Use the verified command dsh plugin --profile default add github:titanwings/dsh-automation in a DSH-enabled shell. The command resolves the public package metadata and keeps the plugin attached to the catalog identity shown on this page.