Preface

When using DSH (a type of agent workbench), a specific problem often arises: To-do items chatted about—such as “run a test another day” or “review a plan next week”—are scattered across various sessions and forgotten when the window is closed. External to-do tools can record them, but they don’t integrate with the agent, and the agent cannot write them into your schedule for you.

dsh-schedule solves this problem: it installs schedule management directly into the DSH Web interface and exposes it as an agent tool. While you operate in the panel, the agent can also handle it in the conversation. Below are its features, installation methods, and typical usage.

What is this

dsh-schedule is a local schedule plugin for DeepSeek Harness (DSH). Author: magicOF2, License: MIT, Current version 0.2.0 (as indicated in package.json). In one sentence, its positioning is: sidebar entry plus a full-height drawer schedule panel, supporting schedule-session linking, inline editing and detail views, checkmark completion, recurring schedules, and agent tools, with data long-term stored in local files.

The plugin depends on two peer packages: @deepseek-ai/cordis and @deepseek-ai/dsh-tools. It targets the web platform and needs to be installed into a web profile to be used.

Core Features

Panel and Entry

The plugin provides two entries: the “Schedule” text button on the right side of the session title bar, and the schedule entry at the bottom of the sidebar. After clicking, it opens a full-height drawer panel sliding from the right (not a floating small window). Internally, it has three tabs:

  • Today: split into “Incomplete” and “Completed” areas;
  • This Week: grouped by day;
  • History: a monthly calendar, plus statistics for this week, this month, this year, and consecutive completions.

During the panel open, it automatically syncs every 30 seconds, so schedules modified by agents in other sessions will also appear. Close by pressing Esc or clicking the blank area outside the panel.

Add and Edit

The add form is collapsed by default as a “+ Add” button; it only expands the full form (Title + Date/Repeat/Time + Note input) when clicked, reserving more space for the schedule list.

Editing has two ways: The ✎ button on the right side of the schedule item allows direct inline editing of name, date, repeat, time, note, and delay toggle; clicking the schedule title enters the detail view, where you can view full notes (auto-wrapped, no truncation), completion statistics, delay history dates, and associated sessions, and supports checking, associating, and deleting.

Recurring schedules support three types: One-time, Daily, and Weekly (Monday to Sunday multi-select).

Checkmark Completion and Auto-delay

Complete an item by clicking the circle on the left. Completion records are accumulated by day; recurring schedules record daily independently. Checked items enter the “Completed” area; the next day, the daily record is automatically cleared, but history is permanently retained and can be viewed in the History tab.

One-time schedules can check “Auto-delay if incomplete”: when due but not completed, the next time the panel opens, it automatically delays to the current day. Delayed past dates are retained in the calendar and show a “Delayed” marker; the day of completion shows the final status.

Schedule-Session Linking

This is a distinctive feature of the plugin: schedules can jump to each other.

  1. The ⊕ button on the right side of the schedule item links the current session in one click;
  2. The 🔗 button on the right side of the input box pops up the schedule list for selection;
  3. One schedule can be associated with multiple sessions;
  4. Clicking a session tag jumps back to the associated session.

Agent Tools

The plugin exposes six tools to the agent: dailytask_add, dailytask_list, dailytask_set_done, dailytask_update, dailytask_delete, dailytask_link_session. This means that in any conversation, saying “Help me record a schedule” allows the model to write directly via the tool without you manually opening the panel.

Storage and Data Security

Data is saved in a local file ~/.dsh/dsh-schedule-data.json, with structure items (schedule definition) + done (completion records accumulated by schedule ID to date). Completion history is never deleted; old data files are automatically migrated. If the file is corrupted, the plugin backs up the original file as .corrupt-timestamp before launching with empty data, never overwriting the original. The backup only requires copying this one file.

Installation and Enablement

The official installation method is to build from source and load it into the web profile. First clone the repository and build, run tests:

git clone https://github.com/magicOF2/dsh-schedule.git
cd dsh-schedule
pnpm build
pnpm test

pnpm build produces the lib/ directory (Host-side ESM + Client bundle); pnpm test is based on node --test, covering storage core and client pure view logic, and works on Windows/macOS/Linux.

After the build passes, install to the web profile:

dsh plugin --profile web add /path/to/dsh-schedule

Replace /path/to/dsh-schedule with your local repository path. Finally, restart DSH:

dsh web

After the above steps, you will see the schedule entry in the sidebar or session title bar after restarting.

Typical Usage

The daily usage flow is roughly as follows:

  1. Open DSH Web, open the schedule panel from the bottom of the sidebar or the right side of the session title bar;
  2. Click “+ Add” to expand the form, fill in title, date/repeat/time and notes; one-time schedules can check “Auto-delay if incomplete”;
  3. Complete an item, click the circle on the left to check, the item enters the “Completed” area;
  4. When modification is needed, use the ✎ inline edit on the right of the schedule item, or click the title to enter the detail page;
  5. If you want to link the current session with a schedule, click the ⊕ on the schedule item or the 🔗 on the right side of the input box, then click the session tag to jump back to the original session;
  6. Go to the “History” tab to view the calendar and this week/month/year/consecutive completion stats; delayed dates will have a “Delayed” marker;
  7. If you don’t want to touch the mouse, just say “Help me record a schedule” directly in the conversation, and the agent will call the tool to complete it.

Suitable Scenarios and Notes

Suitable scenarios: People who work daily in DSH Web where to-dos are strongly related to conversations. Schedules follow the interface, the agent can read and write, and completion history stays in a local file long-term, making it suitable for week/month reviews.

A few notes:

  • The plugin must be installed to the web profile and DSH must be restarted (dsh web) to use;
  • Data is in ~/.dsh/dsh-schedule-data.json, just copy this file periodically to backup;
  • Like all DSH plugins, the plugin runs with the permissions of the current dsh process. It is recommended to check the source code and license before installing—this project is MIT, the repo is public, and build/test commands can be run locally for verification;
  • This plugin is currently used under DSH Web (web platform).

Additional Note: The community plugin directory (skillhub.cn) is an independent site with no official affiliation with DeepSeek or MagicFactor, used only for indexing.

Summary

dsh-schedule’s job isn’t complicated: it puts schedules into DSH Web, gives the agent a set of tools, and leaves data in a local JSON file. It handles details like entries, editing, checking, delaying, and session linking quite completely, making it suitable for those who keep their daily workflow and agent sessions in one place.

  • GitHub: https://github.com/magicOF2/dsh-schedule
  • Directory Page: https://www.skillhub.cn/plugins/magicOF2/dsh-schedule