Introduction¶
DeepSeek Harness (DSH) adopts a plugin-based architecture. In multi-agent collaboration, task flow and state tracking between independent windows can easily become chaotic. dsh-flat-teams is a workflow plugin that provides DSH with leaderless flat team capabilities, supports cross-window dispatch of structured tasks, and provides a recorder service and a Web dashboard.
What Is This¶
dsh-flat-teams: Leaderless flat agent teams for DeepSeek Harness. It manages flat teams through tools such as team_create/team_join/team_leave/team_roster, uses task_dispatch for structured task dispatch and state-machine management, has a built-in recorder service to maintain progress.json, and provides a Web dashboard for viewing the main table and secondary tables.
- Maintainer: whateverboy2333
- License: MIT
- Category: Workflow
Core Features¶
Flat Team Management¶
The plugin provides basic team management capabilities:
* team_create: Create a team, with optional preset member specifications.
* team_join: Existing windows can self-register to join.
* team_leave: Leave a team.
* team_roster: View the roster (members/areas/online status).
Structured Task Dispatch¶
- task_dispatch: Assign work by member name or responsible area.
- State machine: Task state transitions are
pending → delivered → claimed → in_progress → completed | failed | cancelled. - Delivery mechanism: Tasks are first persisted and written to the recipient member’s inbox, then a best-effort real-time wake-up is attempted. Tasks delivered to offline recipients remain in
deliveredstatus and persist in the inbox.
Recorder Service and Web Dashboard¶
- Recorder: Subscribes to the event stream to maintain
progress.json, and can be rebuilt at any time fromevents.jsonl. - Web dashboard: After installing to the web profile, a “Team Dashboard” overlay appears in the upper-right corner of the browser. It provides a main table (member count/online count/in-progress count) and secondary tables (roster/task board/progress timeline).
- Query interface: The Web dashboard retrieves data via
GET /plugins/flat-teams/state(5s polling).
Installation and Enablement¶
- Install the plugin:
Use the officially recommended command:
dsh plugin --profile <name> add dsh-flat-teams
Or use the git form:
dsh plugin --profile <name> add github:whateverboy2333/dsh-flat-teams
*Note: The local path form is for development and debugging.*
-
Restart the Profile:
After installation, the profile must be restarted for the change to take effect. -
Verify the installation:
Check whether the plugin loaded successfully through the configuration:
dsh --profile <profile> --dump-config
The configuration tree should include a `flat-teams` line.
Tool Quick Reference¶
| Tool | Purpose |
|---|---|
team_create / team_join / team_leave / team_roster |
Create / join / leave / view roster |
task_dispatch |
Dispatch tasks, supports member name or area |
task_claim / task_complete / task_fail |
Recipient-driven states: claim / completion callback / failure explanation |
task_list / task_status |
Task queries (supports member filtering) |
task_cancel |
Cancel a task (dispatcher only) |
team_status |
Query structured progress maintained by the recorder |
flat_teams_ping |
Plugin self-test |
Notes and Limitations¶
-
Runtime environment:
- DSH 0.1.0-rc.6 or later is required.
- Node 22.19 or Node 24+ is required.
-
Process restrictions:
- Same-process cross-session only: All member windows must be within the same DSH process.
- Cross-workspace: Cross-workspace collaboration within the same process is supported.
-
State persistence:
- Member windows do not automatically revive after restart: Member windows created programmatically are held by the plugin fiber; they are destroyed when the process exits or the plugin is unloaded. The windows must be recreated.
- No automatic redelivery for offline delivery: If the target is offline and cold recovery fails, the task remains in
deliveredstatus and must be manually triggered after the target comes online. - Cancellation does not withdraw:
task_cancelonly changes the state; messages already delivered to the recipient window are not withdrawn.
-
Permissions and rules:
- Area does not enforce exclusivity: Area is only a routing reference; multiple members are allowed, and the member name must be specified during dispatch.
- Permissions are enforced: Cancellation is limited to the dispatcher; claim/complete are limited to the designated recipient.
-
Data directory:
- Team state is stored at the DSH_HOME level, under
<DSH_HOME>/flat-teams/<teamId>/, includingteam.json,tasks/,events.jsonl,inbox/,progress.json.
- Team state is stored at the DSH_HOME level, under
Short Conclusion¶
dsh-flat-teams provides DSH users with a lightweight flat team collaboration solution. Through structured task dispatch and a recorder service, it addresses state synchronization issues in multi-window collaboration. It is suitable for developers who need multi-agent collaboration within a single process.
Ecosystem Context: The DSH philosophy is “everything is a plugin”; the community catalog is an independent site and has no official affiliation with DeepSeek / High-Flyer.
Links:
* Plugin Catalog
* GitHub Repository