前言¶
在 DeepSeek Harness(DSH)裏做智能體或日常開發時,任務往往散落在對話、筆記和外部工具裏,和當前工作區並不在同一塊界面。社區插件按「一切皆插件」的思路擴展宿主能力;dsh-todolist 走的是客戶端路線:把一塊自帶看板與甘特圖的頁面接到左側欄,點開即用,數據只留在本機 localStorage,不額外發網絡請求。下面按「是什麼 → 能做什麼 → 怎麼裝 → 怎麼用」說明。
這是什麼¶
- 包名:
dsh-todolist(npm 描述版本 0.1.0) - 側欄入口:標籤 ToDoList(面板標題爲「項目進度管理器」)
- 維護者:ericddm
- 分類:客戶端插件(
platform: web,依賴宿主提供webServer) - 許可:MIT
- 倉庫:github.com/ericddm/dsh-ToDoList
實現上是單文件 HTML 頁面(默認 assets/index.html),由插件宿主半身通過同源路由掛在 iframe 裏;界面沒有重寫成 React 組件,看板拖拽、甘特圖等交互保持原樣。
核心功能¶
資料中寫明的能力如下。
看板視圖:待處理、處理中、完成待審覈、已完成四列,卡片可拖拽換列。
甘特圖視圖:按截止日期排布任務條,便於查看截止壓力。
項目分組:左側項目列表,每個項目一套看板;項目內有 5 天內到期的任務時,列表上顯示小紅點。
緊迫度分級:逾期、今天、3 天、7 天、14 天、30 天,顏色自動區分。
本地數據:存在 DSH 渲染進程同源下的 localStorage,鍵名爲 sh-pm-v1;結構包含 projects 與 activeId,項目內任務含 id、title、due、col 等字段。
導出與導入:頁面頂欄可複製或下載 JSON,換機器時可整份遷移;覆蓋導入會二次確認。
自定義頁面(可選):可用環境變量 DSH_TODOLIST_HTML、插件目錄下 config.json 的 html 字段,或直接替換 assets/index.html;路徑無效時回退到自帶頁面。自定義頁面若要用頂欄導入導出,需把數據寫在同一鍵 sh-pm-v1。
安裝與啓用¶
前置條件:DSH 客戶端(桌面版或帶 Web 前端、且 webServer 可用)+ Node.js ^22.19.0 || >=24.0.0。
README 提到可以直接讓 DSH 從 github.com/ericddm/dsh-ToDoList.git 安裝;也可以先拿到代碼再裝進 profile。手動流程如下。
1、拿到代碼
git clone https://github.com/ericddm/dsh-ToDoList.git
也可下載 ZIP 解壓,效果相同。
2、裝進 profile
將 <插件目錄> 換成解壓後的絕對路徑,--profile 按實際 profile 名修改(桌面版一般爲 desktop)。Windows 上 dsh 常在安裝目錄的 win\resources\runtime\cli\bin\dsh.cmd:
& "D:\Program Files\DeepSeekHarness\win\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "C:\path\to\dsh-ToDoList"
Linux / macOS 或已將 CLI 加入 PATH 時:
dsh plugin --profile desktop add /abs/path/to/dsh-ToDoList
成功時會看到類似 dependencies: + dsh-todolist 0.1.0 <- ...。若退出碼爲 1 但已打印該行,可能是 profile 裏其他插件版本衝突,與本插件無關。
3、徹底重啓 DSH
關閉所有窗口與後臺進程後重新打開。側欄「日程」下方應出現 ToDoList。客戶端模塊在啓動時掃描並緩存包元數據,熱加載不會重新掃描新裝插件。
卸載(不刪除 localStorage 數據):
& "D:\Program Files\DeepSeekHarness\win\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop remove dsh-todolist
卸載後同樣需完整重啓 DSH。
典型用法¶
- 打開側欄 ToDoList,在默認演示項目「示例項目 · 科創中心」中熟悉看板與甘特圖;若不需要示例內容可直接刪除。
- 新建項目與任務,拖拽卡片變更列,在甘特圖裏對照截止日期。
- 需要備份時:頂欄「導出」複製或下載 JSON;恢復時「導入」並確認覆蓋(會顯示舊項數與新項數)。
- 若曾用瀏覽器
file://單獨打開過同款 HTML,數據與 DSH 內不同源;用導出再導入即可合併到 DSH 側。 - 想確認當前託管的是哪份 HTML,在打開面板後請求同源接口:
GET /dsh-todolist/status
返回 JSON 中含 page、source(如 bundled)等字段。
長期固定自定義頁面可在插件目錄創建 config.json(參考 config.example.json):
{ "html": "D:\\我的項目\\index.html" }
或設置環境變量 DSH_TODOLIST_HTML 指向 HTML 絕對路徑。改配置或替換 assets/index.html 後,重新點開面板即可,一般不必重啓 DSH。
適用場景與注意¶
適合:希望在 DSH 同一窗口內管理多項目看板與甘特圖、且不希望任務數據上雲的開發者。
宿主與權限:插件以當前 DSH 進程權限運行,安裝前宜閱讀倉庫源碼與 MIT 許可證,自行判斷是否滿足安全與合規要求。
排障摘要(來自 README):
| 現象 | 處理方向 |
|---|---|
| 側欄無 ToDoList | 未完整重啓;或查 profile 的 package.json 裏 dsh.profile.bundles 是否含 dsh-todolist |
| 面板一直轉圈 | webServer 不可用或端口衝突 |
| 頁面不像自定義版本 | 查 /dsh-todolist/status 是否回落 bundled |
安裝報 atomic-write: timed out |
刪除 profile 下殘留的 package.json.lock 後重試 |
首次打開自帶示例數據,不代表真實項目進度。
結尾¶
dsh-todolist 把看板加甘特圖的項目進度頁嵌進 DSH 左側欄,數據落在本機 sh-pm-v1,並提供頂欄 JSON 搬移與可選自定義 HTML 託管。社區目錄頁:SkillHub - dsh-ToDoList;源碼與完整說明見 GitHub 倉庫。