产品发布

一句话问教务,林课 CLI 发布!

2026-09-03  |  林课 Linke

不打开教务系统,一句话问出绩点、给分、通选学分缺口——40+ 个教务命令,现在你的 AI 助手直接可用。

你有没有想过这样的一天——不打开教务系统,不等它转圈,不翻五六个页面,直接问一句:

「算上辅修,我这学期绩点是多少?」

「《中外电影鉴赏》这门通选,给分厚道吗?挂科率多少?」

「我的通选学分,还差哪几个类别没修满?」

然后,答案就出来了。

今天,这个东西做出来了。它叫 linke-cli(林课 CLI),现在正式发布,并且开源

一、先回答三个问题:CLI 是什么?

CLI,全称 Command Line Interface,命令行界面——就是电影里黑客们噼里啪啦敲的那种「黑框框」。

用点菜打比方:

命令行的特点是精确、可组合、自动化。你写一句「把我的成绩按学期算平均分」,它就老老实实算,不弹广告,不让你找按钮在哪。

那问题来了:命令行虽好,命令记不住、参数不会写,怎么办?

这正好是 AI 助手的时代红利:你不必记住任何命令。

二、林课 CLI 是什么?

一句话:它把山财教务系统的查询能力,封装成 40 多个标准命令,专供 AI 助手调用。

你的 AI 助手(豆包工作、WorkBuddy、ZCode、Claude Code 等)很聪明,会读文件、会写总结、会分析数据——但它默认「看不见」你的教务数据:它不知道你的课表,不知道你修了多少学分,更不知道哪门课给分厚道。

linke-cli 就是给 AI 装上的「手」和「眼」:

装好之后,你只需要用大白话提问。命令?AI 自己会敲。

三、真实演示:五个以前很难办到的问题

诚实声明:以下为真实调用 linke-cli 的输出(节选)。文中的姓名、学号、课程与分数已做隐私化替换(结构为真实形态,数值与内容为拟制);教务公告为学校官网公开信息。

场景 1:「明天第一节课几点?在哪个楼?」

AI 自动执行 linke schedule --week 2,读取的输出长这样(节选):

{
 "term": "2026-2027-1",
 "week": "2",
 "weeks": [
  [
   {"course": "", "teacher": "", "time": "", "location": ""},
   {"course": "微观经济学", "teacher": "周明远 教授", "time": "1-18(周)", "location": "3402(舜耕)"},
   {"course": "", "teacher": "", "time": "", "location": ""}
  ],
  [
   {"course": "货币金融学", "teacher": "吴慧珍 副教授", "time": "1-18(周)", "location": "3402(舜耕)"},
   {"course": "大学英语(四)", "teacher": "郑一帆", "time": "1-16(周)", "location": "2210(舜耕)"},
   {"course": "", "teacher": "", "time": "", "location": ""}
  ]
 ]
}

AI 的回答:「明天第一节是 8:00 的微观经济学,舜耕校区 3402 教室,周明远教授的课。」——还能顺手追问「这周我哪天课最满?」,AI 会把整周格子数一遍再答你。

场景 2:「算上辅修,我的绩点是多少?」

以前:翻成绩页面,抄下所有分数,打开 Excel,查绩点换算表,算半小时。现在 linke gpa,主修辅修分列:

{
 "rows": [
  {"studentId": "202441210036", "name": "林晓", "major": "金融学",
   "className": "2024金融学4班", "totalCredits": "96", "courseCount": "52",
   "averageScore": "88.46", "gpa": "3.72", "majorType": "主修"},
  {"studentId": "202441210036", "name": "林晓", "major": "英语(辅修)",
   "totalCredits": "16", "courseCount": "5",
   "averageScore": "89.20", "gpa": "0", "majorType": "辅修"}
 ]
}

AI 的回答:「主修绩点 3.72(均分 88.46,已修 96 学分);辅修英语均分 89.2。想提绩点的话,你这学期在修的高数和会计学权重最高。」——最后那句,是 AI 顺手帮你查了在修课程学分之后的建议。

场景 3:「这门通选,给分厚道吗?」(林课用户共建数据)

选课之前最想知道的事。linke course-stats 中外电影鉴赏

{
 "query": "中外电影鉴赏",
 "matched": {"lessonName": "中外电影鉴赏"},
 "stats": {
  "count": 57, "avgScore": 88.9, "minScore": 35, "maxScore": 97,
  "q1Score": 86, "medianScore": 90, "q3Score": 93, "stdDev": 19.8, "failRate": 0.053,
  "distribution": {"0-59": 3, "60-69": 1, "70-79": 2, "80-82": 5, "83-85": 7,
   "86-88": 9, "89-91": 13, "92-94": 11, "95-97": 6, "98-100": 0},
  "diagnostics": [
   {"conclusion": "分数差距悬殊", "category": "shape",
    "description": "高分和低分都有,同一门课里成绩跨度远超一般课程。"},
   {"conclusion": "挂科率偏高", "category": "risk",
    "description": "这门课的挂科比例是全校均值的两倍以上,要认真备考。"},
   {"conclusion": "少数低分拉低均值", "category": "anomaly",
    "description": "大多数同学其实考得不差,但有少数极低分把平均分拉下来了。"}
  ]
 }
}

AI 的回答:「57 人修过,中位数 90,四分之一的人拿到 93 以上——给分整体不刻薄。但有 3 人挂科、最低 35 分,缺勤和期末考核别赌运气。想去躺着拿高分的,另看看这门课的评课再说。」

想知道学长学姐怎么说的?追问一句「这门课的评课」,AI 会继续调出 46 条真实评课和三星维度评分(内容价值 / 管理轻松度 / 良师指数)——注意:给分统计和评课来自林课数万同学的成绩与评价贡献,人越多数据越准。

场景 4:「我的通选学分,还差哪几类没修满?」

毕业审核里最隐蔽的坑。linke credits(节选):

{
 "categories": [
  {"category": "安全教育类", "earned": "1"},
  {"category": "财经特色类", "earned": "4"},
  {"category": "人文艺术类", "earned": "4"},
  {"category": "自然科学类", "earned": "2"},
  {"category": "社会科学类", "earned": ""},
  {"category": "劳动教育类", "earned": "1"},
  {"category": "总学分", "earned": "17", "inProgress": "1"}
 ]
}

AI 的回答:「社会科学类还是 0,按培养方案要求 2 学分——这学期的选课窗口里补一门最稳。其他类别都已达标或在进行中。」——以前这个问题,要么等毕业审核吓一跳,要么自己在培养方案 PDF 里逐条对。

场景 5:「最近有什么教务通知,跟我有关?」

linke notices,教务处官网公告一起带出来(节选):

{
 "source": "jwc",
 "total": 8,
 "list": [
  {"title": "关于2026-2027学年第一学期通识教育\"智慧树\"网络课程教学安排的通知", "date": "2026-09-01"},
  {"title": "关于做好2026届本科毕业生校级优秀学士学位论文推荐评选工作的通知", "date": "2026-09-01"},
  {"title": "山东财经大学2027年优秀本科应届毕业生免试推荐研究生管理实施办法", "date": "2026-08-30"}
 ]
}

AI 的回答:「和你最相关的是智慧树网课安排——你这学期正好有一门网络通选;另外如果你有保研打算,2027 推免实施办法值得细读,要我把全文抓下来划重点吗?」

四、安全设计:你最关心的,我们先说清楚

把教务账号交给一个命令行工具(还是给 AI 用的),最担心的就是账号安全。linke-cli 的安全设计从一开始就是硬约束:

  1. 密码只存在你自己的电脑上(~/.linke-cli/,权限 600),不进命令行参数、不进 shell 历史、不进任何日志。
  2. 登录请求从你的电脑直发教务系统,不经过任何第三方服务器中转。
  3. 云端只做一件事:识别验证码图片(传图、返文字),学号、密码、Cookie 全程不离开你的电脑。

整套代码在 GitHub 上开源,每一行都可以自己审。

五、怎么用:一句话的事

看到这里你可能会问:命令行我根本不会用啊?

——不需要会。打开豆包工作、WorkBuddy、ZCode、Claude Code 等任意一个 AI 助手,对它说一句话:

「帮我安装 linke-cli」

就这一句。AI 会自动完成安装和配置(电脑需要 Node.js 环境,没有的话它会顺手帮你装好;登录验证码自动识别,不方便在电脑上输入就让它出二维码,手机扫码填写)。

装好之后直接开问:课表、成绩、绩点、给分、公告……想到什么问什么。

之后基本不用再管它:CLI 每天自动检查新版本、后台静默更新。

六、能力总览(当前版本 1.3.1)

能力块包含
学籍与身份学籍卡片、培养方案、执行计划、学业完成进度
课表本学期/指定学期/单周课表,全校课程检索,教师课表、教室课表、班级课表
成绩全部成绩、分学期成绩、绩点(主修/辅修分列)、学分修读统计
考试与选课考试安排(座位号/准考证号)、选课轮次、选退课日志、补考查询
资讯与杂项教务公告、教学周历、学科竞赛、教材账目、等级考试、学籍异动等长尾查询
林课板块课程给分统计(箱线图五数、挂科率、分数分布)、评分榜与给分榜、课程评论与综合评分(数万同学共建);我的评课、待评课程、收藏、个人档案

七、开源

linke-cli 已完整开源,代码公开,可以自由下载与使用:

顺手点个 Star,就是对林课最简单的支持。