Preface¶
The philosophy of DSH is “everything is a plugin”; daily task management should also be fillable by plugins rather than installing a separate TODO tool. For DSH / AI Agent developers, a common pain point is: tasks are scattered across conversations, notes, and multiple standalone apps, lacking a task board bound to the delivery process, and not knowing how to sync the day’s schedule with others.
DailyBoard is a plugin designed for this scenario. It is the daily task board for DSH Web GUI: a single-month calendar, daily checklist, daily work view, and a draggable 24-hour timeline, supporting recurring tasks, long-term task progress, daily email reminders that can be pushed to WeChat and notify others, and even using natural language to let AI extract tasks. The maintainer is GinoXiang, categorized under workflows. Below is an introduction to its capabilities, installation method, and daily usage workflow.
What is it¶
One-sentence positioning: DailyBoard is a task board hanging in the DSH Web GUI sidebar, facing personal daily schedules and long-term progress records.
It solves three problems:
- Put daily tasks, that day’s schedule, and long-term tasks on the same interface to view, rather than scattered across calendar apps, notepads, and chat windows.
- Send the daily task summary out by email as planned, WeChat can be the receiving channel, and it can also notify others separately.
- Let AI directly read a Chinese schedule and generate an editable task draft, reducing manual form filling.
Core Features¶
DailyBoard’s capabilities can be divided into four parts: Calendar & Timeline, Three Types of Tasks, AI Extraction, and Email Reminders.
Calendar & Timeline¶
- Single-month calendar: A complete natural month grid, containing weeks padded at the start/end of the month, with left/right buttons to switch between previous/next months. Each long-term task is drawn as a colored time bar based on its start/end dates, and scheduled tasks for the day are also drawn on the corresponding date. Long-term tasks are prioritized, displaying a maximum of 5 rows per week; click “There are N items” to expand all; daily tasks are not displayed on the calendar.
- Interaction details: Automatically segments across weeks; double-click a long-term task line to enter drag mode—dragging the line body changes the date, dragging the ends changes the duration; past date segments are marked with light gray matte texture + fine diagonal lines + white frosted glass border. Clicking any line views the subtasks of that task.
- Daily Work View: Buttons switch between two views.
- Task List: 7 vertical columns from Monday to Sunday, with left/right pagination to switch weeks; background of past dates is
#E5ECFD. Only non-daily tasks (scheduled tasks and multi-day long-term tasks) are listed, each row with a completion checkbox, and holding the task row allows dragging to other dates in the current week to reschedule. Clicking a task row with subtasks expands/collapses them (read-only), and there is a “+ Add Task” at the bottom of each column. - Specific Day: On the left are two lists: “Today’s Routine” and “Today’s Tasks”; on the right is a 24-hour vertical timeline. Blocks can be dragged to move, and dragging up/down edges changes start/end (snaps to 15 minutes). Double-clicking empty space on the timeline quickly creates a new one; clicking a block allows editing. Both lists have a “+ Add Task” button at the bottom.
- Task List: 7 vertical columns from Monday to Sunday, with left/right pagination to switch weeks; background of past dates is
Three Types of Tasks¶
- Routine Tasks: Daily repeating habit checklists, with rounded square checkboxes. Completion turns them green solid + white checkmark. Can be added, deleted, or modified.
- Long-term Tasks Completed Daily: When long-term tasks appear in the task list / specific day, checking them only indicates work was done that day, recorded in
doneDates, and does not mark the entire project as complete; unchecking only affects that day. - Subtasks: Both long-term tasks and daily scheduled tasks can have ordered subtasks. Subtasks of long-term tasks are recorded by day and only appear on the day they are added (each subtask has a
datein the data structure); subtasks of daily scheduled tasks belong to the task itself. Subtasks can only be added, deleted, or modified on the “Specific Day” page; the order is fixed and dragging to reorder is not supported.
Recurring tasks support two modes:
- By Day of Week: Select start date, day of week (multi-select, e.g., Monday + Wednesday), and duration in weeks (1–52).
- Every N Days: Select start date, interval in days (1–365), and duration in weeks (1–52).
They automatically appear in the task list and “Specific Day” when due; they can be checked off one by one. Clicking a task allows editing the entire group (mode, day/interval, weeks, start date) or deleting the entire group. A result (subtask) can be added every time it appears, such as blood pressure 120/80, weight 65.2kg, which only belongs to that day.
The entry point for long-term task progress is “Long-term Task Progress” in the top right of the “Calendar” header: a list of tasks on the left, and on the right, a reverse chronological summary of completion marks and daily recorded results for each item, used to review long-term changes. This is a read-only display; click “← Return to Task” to go back to the calendar.
AI Extraction¶
Enter a Chinese schedule at the top of the page, for example:
Complete quarterly reports from next Monday to Friday; exercise 30 minutes every day; hold a meeting today 14:00-15:30
After clicking “Extract”, it calls the current default model to parse it into an editable task draft. Upon confirmation, it writes to the calendar / daily checklist / daily schedule. When the model is unavailable, times out, or returns an abnormal format, it automatically falls back to local rule parsing and provides a prompt. Pressing Enter recognizes directly; Shift+Enter creates a new line.
Date recognition rules:
- When seeing single-day dates like “Today / Tomorrow / Monday / Oct 12” without specific hours, generate “Today’s Task”; with hours, generate a scheduled task.
- Only with explicit start/end date ranges does a long-term task get generated. “Print today” will not be mistakenly judged as a long-term task.
- “This Week / This Month” only counts remaining time: “Revise thesis this week” generates “Today → This Sunday”; “Revise thesis this month” generates “Today → End of Month”; only when semantic words like “Done / Already / Complete / Continue” appear does it cover the whole week or whole month.
- When AI extracts, indented lines automatically fall under the previous task line (assigned to the task’s start date).
Email Reminders¶
Send “Today’s Task Summary” to a specified email at a set time every day. QQ / 163 / 126 / Gmail / Outlook have presets, and you can also customize SMTP server, port, and SSL/STARTTLS; use email authorization code / app-specific password for the password. The settings include a “Send Test” button, and the authorization code is stored locally.
Two extensions:
- Push to WeChat: After enabling and binding “WeChat Reminder” in QQ Mail settings, the email will appear directly in WeChat when it arrives, equivalent to receiving task reminders via WeChat every day. You can also view the email directly without binding WeChat.
- Notify Others: Tasks can be marked “For Others”. The options in the dropdown come from emails added to “Other Recipient Emails” (displayed as “Note (Email)”). These items are listed separately in the summary. Click “+ Add Recipient Email” in the email reminder card to add an email; each email can have a note and a separate scheduled time, and at the scheduled time, the daily summary is sent to the recipient individually.
Installation and Enablement¶
The plugin requires DSH >= 0.2.1-rc.2. Choose any one of the official installation commands:
# Install from npm (available after release)
dsh plugin --profile web add dsh-dailyboard
# Or install directly from GitHub
dsh plugin --profile web add github:GinoXiang/dsh-dailyboard
After installation, restart DSH or refresh the Web GUI. The “DailyBoard” icon will appear in the sidebar; clicking it enters the task panel.
Current version info: the version of dsh-dailyboard in package.json is 1.1.2, license is MIT, author is GinoXiang. Runtime requires Node >=20.
Typical Usage: Remind Others via Email¶
The following workflow comes from the README, suitable for scenarios where you need to remind partners or relatives.
- Click “+ Add Recipient Email” in the “Email Reminders” card at the bottom of the page, fill in the recipient’s email, note (e.g., “Worker Wang”, “Mom”), and separate send time, then save.
- When adding a task, the “For Others” dropdown will list the newly added recipient (displayed as “Note (Email)”), select the corresponding person.
- After selecting “For Others”, save the task; then go back to the email reminder card and click “Test” on that email to confirm the recipient can receive it.
- After the scheduled time, the recipient receives the daily summary, where items marked “For Others” are listed separately (with note and email).
- If the recipient uses QQ Mail and has enabled and bound “WeChat Reminder”, the email will be pushed to WeChat; without binding WeChat, they can still view the email directly.
The “WeChat Reminder” for QQ Mail is bound in the QQ Mail Web version → Settings → Reminder Services.
Data and Permissions¶
- Only read/write the single JSON file
<DSH_HOME>/task-board/data.json(default~/.dsh/task-board/data.json); uninstalling the plugin will not delete this file. - Changes are saved automatically; field validation and atomic renaming are performed before writing; if reading fails, automatic saving is paused to prevent overwriting the original file.
- AI extraction only calls the currently configured default model once when clicking “AI Extract”; it does not automatically request in the background. It does not send file contents, only the text in the input box.
- The Host provides three local HTTP interfaces:
/task-board/load,/task-board/save,/task-board/extract. They only accept loopback addresses and same-origin requests, support only POST, and have a request body limit of 2 MB. - No third-party runtime dependencies; the client uses DSH Web GUI’s built-in React and theme tokens.
Suitable Scenarios and Notes¶
Suitable for:
- Personal developers who use the DSH Web GUI and want to keep daily tasks and long-term progress in one place without introducing heavy schedule tools.
- People who need to push “Today’s Task Summary” to WeChat every day, or need to remind partners to submit materials or remind relatives to take medication/measure blood pressure.
Points to note:
- The plugin runs with the permissions of the current dsh process. Before installing, read the source code and license (MIT appears in package.json), then decide whether to give it email authorization codes and other information. Use email authorization code or app-specific password for email passwords; do not use the original login password here.
- “Push to WeChat” depends on the “WeChat Reminder” channel of QQ Mail, not the plugin directly connecting to WeChat; without binding WeChat, reminders are still delivered via email.
- Page display and interaction details (such as dragging, double-clicking, 15-minute snap) are based on the actual Web GUI version.
- The community directory SkillHub is an independent site with no official affiliation to DeepSeek / Hypersphere; Plugin page information is for search purposes only.
Directory and Source Code¶
Directory page: https://www.skillhub.cn/plugins/GinoXiang/dsh-dailyboard
Source code: https://github.com/GinoXiang/dsh-dailyboard
The value of DailyBoard lies in integrating calendar, checklist, timeline, recurring tasks, and email reminders into DSH Web GUI, with AI extraction responsible for reducing manual entry. If you only need a lightweight daily task board that doesn’t introduce new runtime dependencies and saves data to a single local JSON file, it is worth installing and trying.