Install
openclaw skills install @qibowen2008/classislandcliClassIsland 课程表命令行管理工具。查询科目、时间表、课表,增删科目与时间表,以及调换课表内课程顺序。
openclaw skills install @qibowen2008/classislandcli你是 ClassIsland 课程表助手的 CLI 控制端。所有命令通过 ClassIslandCLI.exe 执行。输出均为 JSON 文本,你需要解析 JSON 并以自然语言转述给用户。
| 命令 | 用途 |
|---|---|
| --GetSubjects | 获取所有科目信息(名称、缩写、教师、是否室外课、附加通知设置等) |
| --GetTimelayouts | 获取所有时间表信息(每节课的起止时间、时间类型等) |
| --GetClassplans | 获取所有课表信息。输出中已将 SubjectId 替换为科目名称(Subject)和缩写(Initial),无需二次查询 |
| 命令 | 用法 | 说明 |
|---|---|---|
| --SetSubject | --SetSubject <名称> [缩写] [是否室外课(true/false)] [教师名称] [可选参数...] | 设置或添加科目:同名则覆盖更新(保留原 UUID),否则新增。缩写和室外课为可选参数 |
| --DeleteSubject | --DeleteSubject <科目名称> | 按名称删除科目 |
| --AddTimeLayout | --AddTimeLayout <时间表名称> | 创建新的空时间表 |
| --AddLayout | --AddLayout <时间表名称> [可选参数...] | 向指定时间表中添加一个时间块 |
| --DeleteTimeLayout | --DeleteTimeLayout <时间表名称> | 按名称删除时间表 |
| --PExchangeClass | --PExchangeClass <课表名称> <第一节> <第二节> | 永久调换指定课表中两节课的顺序(1-based 索引) |
| --TExchangeClass | --TExchangeClass <课表名称> <第一节> <第二节> | 临时调课:创建叠加层副本,调换课程顺序,保留原课表(1-based 索引) |
| 命令 | 用法 |
|---|---|
| --SetProfilePath | --SetProfilePath <Profile JSON 文件路径> 设置要操作的 ClassIsland 配置文件 |
| --SetClassIslandPath | --SetClassIslandPath <ClassIsland 安装路径> 设置 ClassIsland 安装路径 |
| 命令 | 用途 |
|---|---|
| --help / -h | 显示帮助信息 |
| --version / -v | 显示版本号 |
| --InstallCompletions | 安装 Shell 补全(支持 PowerShell/pwsh、bash、zsh、fish、clink、nushell),已有补全会自动更新 |
| --InstallSkills | 安装 ClassIslandCLI Skills 到 WorkBuddy,已有 Skills 会被覆盖 |
--SetSubject 的缩写和是否室外课为可选参数,工具会自动从左到右按顺序识别:
true/false 且不以 -- 开头,则视为缩写。false。下一个参数如果是 true/false,则视为室外课标记。-- 参数被视为教师名称。使用示例:
--SetSubject "数学" # 缩写="数", 室外课=false
--SetSubject "数学" "sx" # 缩写="sx", 室外课=false
--SetSubject "数学" "sx" true # 缩写="sx", 室外课=true
--SetSubject "数学" true # 缩写="数", 室外课=true
--SetSubject "数学" true "张老师" # 缩写="数", 室外课=true, 教师="张老师"
之后仍可附加下方通知设置参数。
同名覆盖行为:如果已存在同名科目,--SetSubject 会直接覆盖该科目的所有字段(Initial、TeacherName、IsOutDoor、AttachedObjects),但保留原来的 UUID(即 SubjectId 不变)。如果不存在同名科目,则创建新科目并分配新 UUID。
以下参数以 --key value 形式跟在基本参数之后,用于配置科目的上课/下课提醒通知:
| 参数 | 类型 | 说明 |
|---|---|---|
| --ClassOnNotificationEnabled | bool | 是否启用上课通知 |
| --ClassOnPreparingNotificationEnabled | bool | 是否启用准备上课通知 |
| --ClassOffNotificationEnabled | bool | 是否启用下课通知 |
| --ClassPreparingDeltaTime | int | 准备上课提前秒数 |
| --ClassOnPreparingText | string | 准备上课提示文本 |
| --OutdoorClassOnPreparingText | string | 室外课准备上课提示文本 |
| --ClassOnPreparingMaskText | string | 准备上课遮罩文本 |
| --OutdoorClassOnPreparingMaskText | string | 室外课准备上课遮罩文本 |
| --ClassOnMaskText | string | 上课遮罩文本 |
| --ClassOffMaskText | string | 下课遮罩文本 |
| --ClassOffOverlayText | string | 下课叠加文本 |
以下参数以 --key value 形式跟在基本参数 (StartTime, EndTime) 之后:
| 参数 | 类型 | 说明 |
|---|---|---|
| --StartSecond | string | 开始秒数偏移 |
| --EndSecond | string | 结束秒数偏移 |
| --TimeType | int | 时间类型编号(默认 0) |
| --IsHideDefault | bool | 是否隐藏默认科目(默认 false) |
| --DefaultClassId | GUID | 默认科目 GUID(默认全零 GUID) |
| --ActionSet | string | 关联的 ActionSet 值 |
临时调课:保留原课表 JSON 结构不变,复制一份相同课表作为叠加层(IsOverlay=true),将副本中的课程按指定顺序调换,Name 改为原名 + "(临时层)"。
与 --PExchangeClass 的区别:--PExchangeClass 直接修改原课表;--TExchangeClass 不修改原课表,而是创建一个临时叠加层。
--SetSubject 是"添加"和"编辑"的合并命令: