Run structured workflows with project scripts, tool execution and budget controls.
Install
# from a prebuilt release tarball
dsh plugin --profile web add "https://github.com/gulagala001/dsh-workflow/releases/download/v0.1.2-dsh.0.2.1-rc.2/dsh-workflow-plus-0.1.2-dsh.0.2.1-rc.2.tgz"
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:gulagala001/dsh-workflow
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Quick start
Required environment: DSH 0.2.1-rc.2, Node.js 22.19+.
Subagents use host models and permissions and incur normal model usage. Resume re-executes calls after the successful prefix; check existing artifacts and side effects first.
1. Install
Open Plugins → Add plugin in the DSH instance you use, then paste:
https://github.com/gulagala001/dsh-workflow/releases/download/v0.1.2-dsh.0.2.1-rc.2/dsh-workflow-plus-0.1.2-dsh.0.2.1-rc.2.tgz
Wait for active tasks to finish, then follow the host’s activation/restart prompt. Keep your existing profile and data. See the installation guide · SHA256SUMS.
2. Try this first
In a conversation with a configured model, ask:
Use workflow to review auth and storage in parallel, then summarize the findings. Do not modify files.
Success looks like: The workflow panel shows actual phases, members and status, with agents running as native child conversations.
Turn repeated work into resumable workflows
- Compose steps: use
parallel(),pipeline(),phase()andlog()to express actual dependencies and execution state. - Save and reuse: submit a script directly, use
scriptPath, or save named project workflows. - Resume and isolate: resume after a successful call prefix. Use Git worktrees for file isolation and retain results for review and merging.
A minimal workflow
export const meta = {
name: 'review-modules',
description: 'Review two modules',
phases: [{ title: 'Review' }],
};
phase('Review');
return await parallel([
() => agent('Review auth for correctness. Do not edit files.', { label: 'auth' }),
() => agent('Review storage for correctness. Do not edit files.', { label: 'storage' }),
]);
The workflow entry beside the conversation title shows phases and members; agents run as native child conversations. run_in_background: true uses native Jobs, with job_output for inspection and job_kill to stop. Complete usage
Runtime boundaries
| Capability | Conditions and behavior |
|---|---|
| Nested workflows | One level, sharing concurrency, call limits, cancellation and budget. |
resumeFromRunId |
Reuses an unchanged successful prefix in the same conversation; later calls execute again. |
isolation: 'worktree' |
Creates a separate checkout from current Git HEAD, retaining changes without automatic merging. |
| Shared output-token target | Add +500k or +1m to the user message. Reaching it stops new dispatch while active calls can finish. |
Without trustworthy usage, further dispatch stops. Model requests, network access and file permissions remain with the host and tool providers.
FAQ
Only an eligible successful call prefix is reused; later calls execute again. Check existing artifacts and external side effects. Resume is not transactional replay of arbitrary actions.
The plugin does not actively delete saved scripts, run records or worktrees. Project paths are .omd/workflows/ and .omd/worktrees/; independent run and budget data lives under DSH_HOME/dsh-workflow/.
Development and license
The package is dsh-workflow-plus, distributed through fixed GitHub Releases. Do not substitute another author’s similarly named npm package.
pnpm install --frozen-lockfile --ignore-scripts --config.strict-dep-builds=false
pnpm build
Architecture. Licensed under MIT; see THIRD_PARTY_NOTICES.md for sources.
Documentation and support
| I want to | Where to go |
|---|---|
| Install, update or remove | Installation guide |
| Learn the features and limits | Documentation |
| Read release changes | Releases |
| Report a problem | Issues |
For a bug report, include the full DSH and plugin versions, the entry point, minimal reproduction steps, and expected versus actual behavior. Remove private data before sharing logs or screenshots.
Links
More in this category
loopx-project/loopx#dsh-loopx-plugin★ 6388
LoopX, a provider-neutral, local-first state kernel and control plane for long-horizon agents: keeps Goal, Todo, gate, evidence, quota, recovery, and handoff state above DeepSeek Harness, while the plugin bootstraps the CLI and skills, admits bounded same-session continuation, and adds a loopback GoalBar for the exact bound loop.
Q00/ouroboros#integrations/dsh-plugin★ 6255
Config-only bundle that mounts Ouroboros through the DSH MCP client, exposing 36 interview, Seed, execution, evaluation, and evolution workflow tools in DSH.
chuspeeism/dashi-taskboard#deepseek-harness★ 3376
Embeds the active installed Codex Taskboard runtime in the DeepSeek Harness sidebar, using its launcher runtime descriptor instead of a fixed port.
NanmiCoder/dsh-agent-teams★ 2336
AgentTeams multi-agent teams.
EthanYoQ/AI-Novel-Writer#dsh-ai-novel-writer★ 1705
Installs a dedicated AI novel-writing preset and workbench: revisioned local project assets, a compact side drawer, and native approval-gated single-file changes.
Miaotofu01/Study-Mate★ 1124
Your AI learning companion: helping you plan your studies, understand concepts, and build projects to master a subject.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.