终端里使用 Life@USTC 的命令行客户端
(life-ustc)。数据与权限来自
server;域与能力名与 Web / Bot / MCP 同一棵树
(interface hierarchy)。
- 习惯 shell 管理课表、待办、作业与订阅的同学
- 需要脚本化调用 REST、或从官方教务站同步数据的用户
- 做内容治理的管理员
| 域 | 能做什么 |
|---|---|
catalog |
公开事实:学期、课程、教学班、教师、课表、校车、校园链接、元数据 |
workspace |
个人概览、日历 / iCal、课表、考试、待办 CRUD、作业完成态、教学班订阅、校车偏好、链接置顶、上传 |
workspace school |
直连校方站点:本科/研究生学期、课表、考试、成绩、作业,并可 sync 回 Life@USTC 订阅 |
community |
评论(含反应)、描述、教学班作业 |
account |
登录 / 登出、session、token、资料、语言 |
admin |
用户、封禁、评论 / 描述 / 作业治理 |
api |
对任意 REST 路径的逃生舱(适合脚本) |
config / completion |
默认 server、教务程序偏好、shell 补全 |
交互终端下,裸的 course / section / teacher 列表会打开 TUI;加过滤或
--no-interactive 则输出表格。机器可读输出:--json / --format json,可用 --jq。
登录支持浏览器 OAuth(PKCE)与设备码;默认 server 为生产站点,也可用
--server / LIFE_USTC_SERVER 指向其它实例。
CLI 从仓库内的 api/openapi.json 生成。api/openapi.provenance.json 记录
对应的 server 提交和 SHA-256;make build 会先验证来源并重新生成客户端,
再开始编译。
更新契约时,先检出确定的 Life-USTC/server 提交,再运行:
make sync-openapi OPENAPI_SERVER_DIR=/path/to/server SERVER_COMMIT=<40-character-sha>
make generateCI 会核对固定的 server 提交,不再猜测同名分支。定时同步工作流也会在 server 契约发生变化时创建更新 PR。
发布包:GitHub Releases。或:
go install github.com/Life-USTC/CLI/cmd/life-ustc@latest子命令细节以 life-ustc <cmd> --help 为准。License: MIT。