dsh-loopx-plugin
loopx-project/loopxLoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
定时任务面板:分区管理 DSH 与系统 crontab、自然语言生成表达式、执行日志与完成后消息推送。
A scheduled-tasks panel for the DSH Web GUI: sits between the workspace selector and settings in the sidebar, managing DSH tasks and system tasks (crontab) in separate sections, with natural-language creation, full-screen detail editing, and execution logs.
Sidebar panel: below the workspace selector, above settings; ➕ on the header to create, ▾ to collapse (collapses to a slim title bar; state is persisted)
Separate sections & status indicators: DSH tasks and system tasks are shown apart, with status indicator dots (🟢 success / 🔴 failure / ⚪ not run yet)
Execution logs & one-click clear: panel-created tasks log automatically with live refresh and a one-click "Clear logs" button to prevent file bloat
Natural-language creation: type “run backup every day at 9am”, “clean temp files every 30 minutes”, “every Monday at 8pm” and it is parsed into a cron expression automatically; manual expressions also supported
Full-screen details: click a task to open a full-screen overlay over the conversation, close via the top-right ✕; edit / save / delete / enable-toggle supported
Next-run preview: while editing, the next 5 execution times are shown automatically from the cron expression (avoids typos)
30 13 * * 3 (every Wednesday 13:30) used to be previewed as "every day" because of a wrong day-of-month/day-of-week comparison; now corrected per the cron spec, and the scan advances day by day so rare expressions (e.g. 0 0 29 2 *) no longer blockAgent Prompt Automation: In addition to standard Shell commands, switch to "🤖 Agent Prompt Automation" mode to run an AI prompt on schedule in the background (e.g. daily code inspection or morning briefing) and push findings directly to WeCom or Telegram
Notify on completion: when editing a task you can configure "notify on completion" — after the task finishes, the result is pushed to the selected platform (Telegram / Discord / WeCom AI bot / Email); requires an installed and connected dsh-message-gateway (QQ has no active push). Push goes through the gateway's /gateway/push; the cron command gets a push segment appended automatically (exit code + task description), no extra setup needed
Run now: in task details, click "Run now" to execute the command once immediately (not through cron scheduling) and see the exit code and output — verify a task right after creating it instead of waiting for its schedule
Auto-retry on failure: configure the number of retries and the delay between attempts (the command runs in a subshell, so a failed exit code triggers a retry)
Auto-backup before write: every crontab rewrite is preceded by a backup of the current content to ~/.local/share/dsh-cron-backups/ (keeps the latest 20), so mistakes can always be rolled back
Multilingual: follows the DSH Web UI language (Chinese / English); Spanish browsers automatically get Spanish copy; defaults to Simplified Chinese
Cross-Platform & Theme Adaptations:
spawn /usr/bin/crontab ENOENT errors by supporting local persistence fallback.Light / dark theme follows the DSH Web GUI
When the user collapses the workbench sidebar, the full panel is replaced with a 36×36 theme-adaptive entry button (at the bottom of the sidebar, just above the Settings button). Clicking it opens a fullscreen task list overlay:
Sidebar panel (DSH / system sections + add + collapse):
Collapsed sidebar + task list overlay (v0.1.13):
Full-screen details (edit form + execution log, close top-right):
dsh plugin --profile web add dsh-cron-panel
Restart dsh web, and the “Scheduled tasks” panel appears below the workspace selector in the sidebar.
For local development, install via a link instead:
dsh plugin --profile web add link:/path/to/dsh-cron-panel. After editing source, runnpm run buildand refresh the page to see changes.
Found a bug or have a feature request? Open an issue on GitHub Issues — your feedback helps us make the plugin better.
MIT