DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

4399Accelerator /

4399Accelerator/dsh-study-planner

Verified

DSH(DeepSeek Harness)学习计划插件:会话视图里的「学习计划」标签,显示每日计划、课后题与打卡进度可视化,计划由对话生成。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@da80959f

dsh-study-planner

DeepSeek Harness (DSH) 插件:在会话视图里加一个 「学习计划」 标签页,把每日学习计划、课后题和打卡进度做成可视化界面。 计划书由对话里的 AI 生成(说一句目标即可),打卡记录保存在本地。

标签位置:会话顶部「对话 / 模拟器」这一排的右侧。

本仓库是通用模板:不带任何预设的学习计划。装好之后打开标签页是引导页,写下目标、交给对话里的 AI,第一份计划就出现了。

dsh plugin --profile <你的 profile> add github:4399Accelerator/dsh-study-planner

仓库地址:https://github.com/4399Accelerator/dsh-study-planner


特性

  • 计划表:按周 / 天列出主题、知识点、阅读章节、动手任务、完成标准,以及每日 课后题(题目 / 提示 / 参考答案 / 难度)。
  • 打卡进度可视化:总进度百分比、已完成天数、累计学时、连续打卡天数、课后题完成数,以及打卡日历(点任意格子查看或补打卡)。
  • 今日推荐:设置开始日期后按自然日推算「今天该学哪一天」;未设置时自动推荐第一个未完成的天。
  • 计划由对话生成:页面顶部输入目标 → 一键把提示词填进下方对话框 → 回车发送 → AI 按 计划文件格式 写好 JSON → 回到本页刷新即可看到。
  • 与对话绑定:页面显示计划来自哪个对话;当前会话就是来源时标记「(当前)」。
  • 数据在本地:计划是普通 JSON 文件,打卡记录由插件的宿主半侧维护,全部放在 ~/.dsh/study-planner/。
  • 多计划:plans/ 目录下有多少份计划,页面顶部下拉框就有多少个选项。

计划内容完全由使用者的目标决定:可以是要考试的专业课、一门外语、一套健身安排,也可以是编程语言从入门到进阶。


安装

方式一:在 DSH 界面里安装(推荐)

  1. 打开 DSH 左侧 插件 页 → 添加插件;

  2. 填入本仓库地址:

    github:4399Accelerator/dsh-study-planner
    
  3. 安装完成后 刷新页面(F5);若标签没出现,重启一次 DSH。

方式二:命令行

dsh plugin --profile <你的 profile> add github:4399Accelerator/dsh-study-planner

方式三:压缩包(本机没有安装 git 时用这个)

github: 形式的安装需要本机有 git。没有 git 的话,直接填 GitHub 的源码压缩包地址:

https://github.com/4399Accelerator/dsh-study-planner/archive/refs/heads/main.tar.gz

想锁定某个版本:

https://github.com/4399Accelerator/dsh-study-planner/archive/refs/tags/v1.0.0.tar.gz

方式四:本地目录(开发用)

dsh plugin --profile <你的 profile> add <本仓库绝对路径>

DSH 目前不支持插件自动更新,升级需要先卸载再安装新版。


使用

  1. 打开任意一个已经发过消息的会话(空白会话不显示标签栏,这是 DSH 宿主的限制);

  2. 顶部标签栏点 学习计划;

  3. 第一次进入是引导页:在输入框写下目标,例如

    6 周 Python 数据分析,每天 1 小时,零基础

    点 让 AI 生成计划 —— 提示词会填进本对话下方的输入框,回车发送,AI 就会按格式把计划写到数据目录;回到本页点 刷新 即可看到计划表。

  4. 之后每天:左侧看整体进度与打卡日历,右侧看当天任务,做完题点 完成今日打卡;

  5. 建议先在左侧 开始日期 里选今天,这样「今天」会跟着日期走。

也可以跳过按钮,直接在对话里说:

帮我做一份 6 周 Python 数据分析学习计划,每天 1 小时,写到学习计划插件的 plans 目录里。

想调整已有计划(换题目难度、调整节奏、换教材),同样在对话里说,AI 会改写对应的 JSON。


想随插件附带一份默认计划?(可选)

把符合 docs/plan-format.md 的 JSON 放进本仓库的 data/seed/ 目录, 安装者首次运行时它会自动成为初始计划。默认该目录里没有任何计划文件。


数据位置

%USERPROFILE%\.dsh\study-planner\
├── plans\<计划 id>.json     # 一份计划一个文件(AI 直接写这里)
├── progress.json            # 打卡记录,由插件维护,不建议手改
└── README.md                # 计划 JSON 格式说明(首次运行时自动放入)

计划文件格式见 docs/plan-format.md。


宿主接口

插件的宿主半侧注册一个仅限本机回环访问的接口:

POST /dsh-study-planner/api     { "action": "...", ... }  ->  { "ok": true, "value": ... }
action 参数 说明
state — 计划列表、当前计划、全部打卡记录、数据目录
plan planId 某份计划的完整内容与其进度
toggle-day planId, dayId, done, minutes? 打卡 / 撤销打卡
toggle-exercise planId, dayId, exerciseId, done 勾选课后题
toggle-checklist planId, dayId, index, done 勾选完成标准
note planId, dayId, note 保存当天备注
settings activePlanId 或 planId + startDate 切换当前计划 / 设置开始日期
reset planId 清空某计划的打卡记录(保留开始日期)
import plan 直接写入一份计划(供 AI 或脚本调用)
remove-plan planId 删除计划文件及其进度

工作原理

一个 DSH 插件包由两半组成,本包两半都是手写 JavaScript,没有构建步骤:

文件 角色
index.js 宿主半侧:计划 / 打卡数据的读写与 HTTP 接口,由 cordis.patch.yml 注册进 profile
client.js 浏览器半侧:通过 ctx.slots.inject('conversation.view', …) 注册「学习计划」标签与界面
cordis.patch.yml 组合包 patch:把宿主行插入 profile 配置树
data/seed/ 可选的初始计划种子目录(默认空)
locale/zh.json, locale/en.json 插件管理页显示的标题与描述
docs/plan-format.md 计划 JSON 格式规范(AI 写计划时读它)

浏览器半侧只依赖 DSH 平台提供的 react,不 import 任何 Harness 内部包;样式只用 --dsw-alias-* 主题变量,因此浅色 / 深色主题下都跟随宿主。


常见问题

装好了但里面没有计划? 这是本模板的设计:计划由对话生成。打开标签页会看到引导页,写上目标点「让 AI 生成计划」即可。

标签栏没有「学习计划」?

  1. 确认当前会话已经发过至少一条消息(空白会话不渲染视图标签);
  2. 刷新页面(F5);
  3. 仍然没有就重启 DSH —— 新增插件在下次启动时确定加载。

点「完成今日打卡」没反应? 宿主接口挂在 DSH 的 Web 服务上,只有本机回环地址可访问;确认 DSH 是以 Web / 桌面形态启动的。

升级插件? 先卸载再安装新版(DSH 暂不支持插件自动更新)。数据在 ~/.dsh/study-planner/,卸载插件不会删除它。


许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit da80959f0292

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout