Preface¶
DSH’s plugin ecosystem emphasizes “everything is a plugin”. In multi-session workflows, developers often encounter issues not only with single-turn performance but also with the sessions themselves: cold sessions need to be remounted, archived sessions need temporary restoration, deletion requires explicit confirmation, and a session needs to hand off tasks or context to another session.
dsh-session-nexus is a non-official DeepSeek Harness community plugin, maintained by qiushi-dev, and is licensed under the MIT license. It provides session lifecycle control and cross-session messaging capabilities in a single installation, targeting DSH agent developers. It is a community plugin and has not been reviewed or endorsed by DeepSeek; the community directory is an independent site and is not equivalent to the DeepSeek / FlashForward official app store.
What is it¶
The positioning of dsh-session-nexus is to make DSH sessions actionable, addressable objects:
- Manage session lifecycle via slash commands.
- Deliver messages to other sessions via commands and model tools.
- Get titles, timelines, and recent message summaries of other sessions via model tools.
- Provide enhanced display of session IDs and
/addressresults in the Web UI.
Below is an introduction to its core capabilities, installation commands, typical usage, and limitations.
Core Features¶
Session Lifecycle Control¶
/resume <id>: Explicitly remount a cold session by id, without sending a message; parses preset from logs./unarchive <id>: Best-effort unarchiving./rm-session <id> --yes: Two-step deletion fallback, disabled by default, requireslifecycle.allowDelete: trueto enable.
Cross-session Messaging¶
/send-to <address> <message>: Wakeup delivery, becomes the target’s next turn; cold sessions are auto-resumed./notify <address> <message>: Quiet delivery, enters the target’s next model context without waking it./address [address]: Outputs the canonical address of a session, including URI and mention, for copying; no arguments means current session.session_send_message: Model tool for delivering messages to other sessions.session_overview: Model tool to get session title, timeline, and recent message summary.
Address Format¶
Session addresses support the following forms:
- composer mention
dsh-session:URI- session id
- Title, etc.
Delivery Presentation¶
Delivery presentation supports two modes:
bubblecontext
Web UI Enhancements¶
- Session header displays session ID chip.
/addressresults are displayed as cards for easy viewing and copying.
Security Limits¶
The plugin adds the following restrictions to cross-session messaging:
- Sender attribution.
- Untrusted content warnings.
- Reject self-delivery.
- Message length limit:
maxMessageCharsis16384. - Rate limit: Default
10per/300seconds.
Installation and Enabling¶
Use the command below to install the plugin:
dsh plugin --profile web add dsh-session-nexus
After installation, the plugin provides the slash commands and model tools listed above. By default, mailbox.enableTool: true, and the model will gain the session_send_message tool.
If you need to enable session deletion capabilities later, you must explicitly enable it:
lifecycle:
allowDelete: true
The following configuration example shows common configuration options:
- id: session-nexus
name: dsh-session-nexus
config:
lifecycle:
allowDelete: false
mailbox:
enableTool: true
maxMessageChars: 16384
presentation: bubble
rateLimitCount: 10
rateLimitWindowSeconds: 300
Note that presentation can be set to bubble or context.
Typical Usage¶
- Remount a cold session:
/resume <id>
- Try to unarchive:
/unarchive <id>
- Send a wake-up message to another session:
/send-to dsh-session:... continue processing failed cases
- Inject context into the target session only, without triggering immediate response:
/notify dsh-session:... the reason for the decision here is A, do not repeat troubleshooting B in the future
- Copy the canonical address of the current session:
/address
- Let the model view the title, timeline, and recent message summary of another session:
Use the session_overview model tool.
Use Cases¶
Suitable for the following workflows:
- Multi-session parallelism, requiring unified mounting, unarchiving, or deletion of sessions.
- One session acting as a coordinator to send tasks or context to other sessions.
- Models needing to get titles, timelines, and recent message summaries of other sessions.
- Quickly viewing session IDs or copying session addresses in the Web UI.
Notes¶
- This is a non-official community plugin and has not been reviewed or endorsed by DeepSeek.
- The plugin runs with the current
dshprocess permissions. You should check the source code, license, and configuration items before installation to ensure that the commands, deletion, and messaging capabilities fit your risk boundaries. /rm-sessionis disabled by default. It only removes the JSONL session directory; derived indexes, caches, and statistics require lazy loading reconciliation, and correct deletion depends on the upstreamdeleteoperation./unarchiveis limited by the workspace registry private memory cache; subsequent workspace writes may be rolled back before a restart.- Quiet delivery to cold sessions from the plugin is not feasible and requires upstream mailbox seam support.
- The sidebar session row does not have a copy address menu item; you need to use
/addressor the composer mention picker instead. - License is MIT.
Links¶
- GitHub: https://github.com/qiushi-dev/dsh-session-nexus
- Directory Page: https://www.skillhub.cn/plugins/qiushi-dev/dsh-session-nexus