Introduction

For DSH users, if a single delegation handles only one task, facing a batch of dependent tasks requires manual handling of parallelization, isolation, conflict, and recovery. TaskSwarm packages these into a plugin: first dividing tasks into waves based on dependencies, then executing tasks within the same wave in parallel lanes, and finally performing review, merging, and state retention.

Below is an introduction to TaskSwarm’s positioning, core capabilities, installation method, and typical usage.

What is it

TaskSwarm (Swarm) is a multi-agent task orchestration plugin for DeepSeek Harness (DSH). The npm package is named dsh-taskswarm, maintained by february2015, and licensed under MIT. Documentation indicates its upstream is TaskPlane, and this project is a native port.

It organizes a batch of tasks into task packets and provides a collaborative workflow of supervisor, worker, reviewer, and merger within a DSH session.

Core Features

Waves / Lanes Parallel Orchestration

  • Tasks are stratified into waves based on dependency DAG.
  • Tasks within the same wave are executed concurrently, forming parallel lanes.
  • Lane worktrees are created from the taskswarm/orch HEAD, inheriting previously merged outputs.

Git worktree Isolation

  • Each task or lane uses an independent worktree.
  • Results of a lane are merged into taskswarm/orch.
  • taskswarm/orch is the integration branch and should be preserved; do not delete it.

Task packets

  • Each task contains PROMPT.md and STATUS.md.
  • PROMPT.md saves task descriptions, steps, and constraints.
  • STATUS.md saves progress, providing workers with persistent task memory for cross-context resetting.

Checkpoint discipline

  • Automatic git commit at step boundaries.
  • When a worker crashes, committed work is not lost.
  • Persistent disk state, checkpoints, and preserved lane branches collectively support crash recovery.

Cross-model review

  • An independent reviewer scores tasks based on the task’s Review Level.
  • PASS to merge.
  • REVISE to return to the worker for modification.

File mailbox

  • Workers and supervisors communicate asynchronously via files.
  • Communication does not rely on a shared context.

Conversational supervisor

  • The supervisor is shared with the current DSH session.
  • Supports commands such as start, pause, abort, integrate, and open dashboard.
  • Notifications and prompts are bilingual (Chinese/English).
  • Language settings are persisted to .taskswarm/config.json.

Web Dashboard

  • Local real-time dashboard based on node:http + SSE.
  • Dashboard starts automatically when a batch is launched, and a link is printed in the session.
  • Only one instance per workspace; existing instances are reused, no duplicate starts.

LLM merge agent

  • When merging a lane into taskswarm/orch results in a conflict, an independent merger agent performs semantic resolution.
  • If unresolved, the lane enters a conflict state and pauses the batch.

Installation and Enabling

First, install the npm package:

dsh plugin --profile web add dsh-taskswarm

After installation, restart:

Restart dsh web

The plugin takes effect when DSH starts.

Between 2026-08-17 and 2026-08-18, the npm package dsh-taskswarm was removed from the registry and required installation from GitHub; as of 2026-08-19, the npm package has been restored.

When upgrading an installed version, if executed directly:

dsh plugin --profile web add dsh-taskswarm

It may report Already up to date. In this case, you need to explicitly specify the new version:

dsh plugin --profile web add dsh-taskswarm@<new-version>

Or run:

pnpm update --latest

Restart dsh web after completion.

Typical Usage

First, create example task packets:

/tswarm-init

This command creates two example task packets: EXAMPLE-001 and EXAMPLE-002.

Then preview the wave plan:

/tswarm-plan all

This step only previews the task plan after grouping by dependencies, without executing tasks.

Then start the batch:

/tswarm all

Run all tasks in parallel; you can also run a single task:

/tswarm EXAMPLE-002

Check progress at any time:

/tswarm-status

Open the dashboard:

/tswarm-dashboard

You can also start it with the standalone CLI:

npx taskswarm-dashboard --root <repo>

Or, without installing the plugin first, obtain it temporarily via npx:

npx --package dsh-taskswarm taskswarm-dashboard --root <repo> [--port 8100] [--no-open]

When starting a batch, the dashboard starts and prints a link in the session.

Validate task packets:

/tswarm-check

Or:

npm run check:tasks

State and Git Model

Persistent state is located at:

<repo>/.taskswarm/

Batch status files are:

.taskswarm/batches/<batchId>.json

In the Git model, taskswarm/orch is the integration branch where all lane outputs are merged; it should be preserved and not deleted.

The baseline of the lane worktree comes from the taskswarm/orch HEAD, so the lane inherits previously merged outputs.

Applicable Scenarios and Notes

Suitable for scenarios where a batch of related tasks requires dependency sorting, parallel execution, workspace isolation, review merging, and crash recovery.

Notes:

  • The plugin runs with the permissions of the current dsh process and can access the repository, git status, and local ports; you should check the source code, dependencies, and MIT license before installation.
  • taskswarm/orch is the integration branch; do not accidentally delete it.
  • If you remain on an old version after upgrading, you need to explicitly specify the new version or update dependencies, then restart dsh web.
  • It is published in a community directory; the directory is a separate site and should not be regarded as an official app store.

Links

  • Directory page: https://www.skillhub.cn/plugins/february2015/dsh-taskswarm
  • GitHub: https://github.com/february2015/dsh-taskswarm