Preface¶
When composing a longer message in DSH Web that requires careful timing for sending, neither sending it immediately nor manually waiting is convenient. In the DSH plugin ecosystem’s “everything is a plugin” philosophy, such a small need can be implemented as a standalone client plugin. Below, we introduce dsh-sleep-send: it adds a scheduled-send button and configuration panel to the right of the input box, supporting scheduling messages to smart time slots or specific date/time, with automatic sending when the time arrives.
What Is This¶
dsh-sleep-send is a Cordis client plugin for DSH Web, maintained by Awu12277, licensed under MIT. It solves the problem of “write it now, send it later”: queuing the already-typed message into a scheduled task queue instead of sending it immediately.
The runtime environment is the DSH Web browser interface. The package is pure ESM, has zero runtime dependencies, and requires no build step; the package.json declares the Node version requirement as follows:
"node": ">=18"
For scheduling timers, it prioritizes the cordis timer service and automatically falls back to browser timers when unavailable.
Core Features¶
Button on the Right of the Input Box¶
The plugin provides a scheduled-send entry on the right side of the input box, with the slot:
conversation.input.right
The button is disabled when the draft is empty and activates once content is entered.
Smart Time Slots¶
The default smart time slots cover two ranges:
12:00 – 14:00
18:00 – next day 08:00
The plugin automatically selects the nearest available sending time within these ranges.
Custom Date/Time¶
Custom date/time is supported, including a time picker, today/tomorrow/day-after shortcuts, and a native date picker.
Multi-Task Queueing¶
Multiple scheduled tasks can be queued, viewed, and deleted one by one. The toolbar chip displays the task count, next send time, and a real-time countdown; clicking the cancel action on the toolbar chip cancels all tasks.
Persistence and Recovery¶
Tasks and preferences are stored in the current browser’s localStorage under the storage key:
dsh.sched-send.v1
Tasks are automatically restored after a page refresh. The recovery rules are as follows:
- Unexpired tasks are retained;
- Tasks expiring within
15minutes are resent; - Tasks that expired earlier are discarded.
Protection Against Accidental Overwrites¶
Before sending at the scheduled time, if the input box content has been modified, the plugin automatically cancels the send to avoid overwriting new content.
Accessibility and Performance¶
Interactive elements feature focus-visible focus rings; animations respect prefers-reduced-motion; the pulse animation only uses transform / opacity.
Installation and Activation¶
First, install it into the web profile:
dsh plugin --profile web add dsh-sleep-send
After installation, restart dsh web for the changes to take effect.
Typical Usage¶
-
Enter a message in the input box.
-
Click the schedule or configuration button on the right side of the input box to open the configuration panel.
-
Select a smart time slot or a custom time.
-
Click “Add · Send at HH:MM” — the task is added to the list and the input box is cleared; you can continue entering the next message and queue it.
-
The toolbar chip shows the nearest task time and a real-time countdown; to cancel all tasks, click the cancel action on the toolbar chip.
-
The message is automatically sent when the time arrives; modifying the input box content while waiting cancels that task.
Applicable Scenarios and Notes¶
Suitable for users who need to handle “send it later” in DSH Web: for example, drafting a detailed explanation, avoiding automatic sending at inappropriate times, or scheduling multiple messages to specific times.
Before using, note:
- Tasks are only stored in the current browser’s localStorage and are not uploaded to any server;
- Switching browsers, using incognito windows, or clearing site data will result in lost tasks;
- The plugin runs with the current dsh process permissions and accesses the current browser’s localStorage; it is recommended to review the source code and the
MITlicense before installation; - Tasks expiring within
15minutes will be resent after a refresh, while tasks that expired earlier will be discarded.
Links¶
- GitHub:
https://github.com/Awu12277/dsh-sleep-send - Catalog page: If included in your DSH plugin catalog, search for
dsh-sleep-send.