上海财经大学(SUFE)网页系统命令行交互工具
Project description
📖 目录
🎯 为什么需要 sufe-cli?
上财门户的业务系统(如 Canvas、IC 空间、教务系统等)分散且操作繁琐,需要人工认证登陆并进行复杂的网站UI操作,这给 AI Agent 自动化操作带来了挑战。
sufe-cli 就是为了解决这个问题而开发的。它通过命令行将校内核心业务系统统一封装,让 AI Agent 能够直接操作这些系统,自动化完成空间预约、成绩查询、作业管理等任务,大幅提升日常校园事务的处理效率。
🔥 关键亮点
- 🤖 Agent 原生设计 — 4 个 Skills 开箱即用,适配主流 AI Agent(如 Claude Code、Openclaw 等),无需额外适配即可在对话中完成空间预约
- 🔑 无缝身份认证 — 内置身份认证系统,支持手动登录与配置账号密码自动登录,一次授权持久使用
- 📚 覆盖核心场景 — 包含 Canvas、IC 空间预约、成绩查询、校园账号管理等核心业务场景,并在持续更新中
✨ 功能概览
| 类别 | 能力 |
|---|---|
| 🔑 身份认证 | 交互式配置登录模式与账号,登录账号并持久化保存登录状态 |
| 📚 图书馆空间 | 查询与预约小组研讨室、多媒体制作室、静音仓 |
| 📊 成绩查询 | 查看各学期成绩汇总、全部课程成绩明细,支持按学期筛选 |
| 🎓 Canvas | 查看课程列表、查询课程作业及提交/评分状态 |
| 👤 校园账号 | 根据姓名模糊搜索匹配学号;查看当前登录用户信息 |
🚀 快速开始
环境要求
开始之前,请确保具备以下条件:
- Python
>= 3.12 - Node.js(
npm/npx,用于安装 Agent Skills)
安装
方式一: 使用 pip 安装
# 直接使用 pip 全局安装 sufe-cli
pip install sufe-cli
# 安装必要的运行时依赖
sufe install
# 安装 CLI SKILL(针对 Agent)
npx skills add https://github.com/ChengJiale150/sufe-cli -y -g
方式二: 使用 uv 安装(推荐)
# 安装 uv
pip install uv
# 使用 uv tool 独立安装 sufe-cli 与 Playwright
uv tool install sufe-cli
uv tool install playwright
# 安装必要的运行时依赖
sufe install
# 安装 CLI SKILL(针对 Agent)
npx skills add https://github.com/ChengJiale150/sufe-cli -y -g
验证安装
sufe --version
配置与使用
# 登录授权(首次使用会自动进入交互配置,引导选择登录模式并输入账号密码)
sufe auth
# 检查当前状态
sufe doctor
# 查看自身基本信息
sufe me
🤖 Agent Skills
我们提供以下 4 个 Skill 方便Agent来了解上财门户系统与Sufe CLI的使用:
| Skill | 说明 |
|---|---|
sufe-base |
基础域,包含环境检查、浏览器依赖安装和用户认证 |
sufe-lclibrary |
IC 空间管理域,包含各类设施状态查询与预约以及成员学号搜索 |
sufe-score |
成绩查询域,包含学期汇总、全部课程成绩明细、按学期筛选成绩 |
sufe-canvas |
Canvas 平台域,包含课程列表查看、课程作业查询及提交 |
📋 核心指令示例
📚 空间设施预约查询与管理
支持 teamlab(小组研讨室)、multimedia(多媒体制作室)和 silentcabin(静音仓)三种设施,下面是预约小组研讨室的示例:
# 查看今天小组研讨室的预约状态
sufe lclibrary teamlab list
# 根据姓名搜索其他组员的学号
sufe lclibrary search <姓名>
# 预约小组研讨室(需要提供至少两名成员学号)
sufe lclibrary teamlab reserve <设施ID> <讨论主题> <成员学号1,成员学号2> <开始时间> <结束时间>
📊 学业成绩查询
# 查看各学期成绩汇总(门数、平均成绩、总学分、平均绩点)
sufe score summary
# 查看全部课程成绩明细
sufe score list
# 查看指定学期的课程成绩
sufe score list --semester "2025-2026 1"
🎓 Canvas 课程与作业
# 查看当前课程列表
sufe canvas course list
# 查看指定课程的所有作业
sufe canvas assignment list <课程ID>
# 查看指定作业的具体信息
sufe canvas assignment detail <课程ID> <作业ID>
# 下载指定文件
sufe canvas file download <文件ID>
# 提交指定作业(支持多个文件)
sufe canvas assignment submit <课程ID> <作业ID> --file <文件路径>
⚠️ 安全与风险提示(使用前必读)
⚠️ 警告
本工具可供 AI Agent 调用以自动化操作上海财经大学的相关业务系统,LLM 存在幻觉、执行不可控等固有风险;授权登录后,AI Agent 将以您的真实用户身份执行操作(例如发起预约、提交作业等)。我们强烈建议您仔细核对 Agent 待执行的操作后再允许其执行。
请勿将包含本地登录状态的
~/.sufe-cli/state.json或包含账号密码的~/.sufe-cli/auth.json文件泄露给他人。请您充分知悉全部使用风险,使用本工具即视为您自愿承担相关所有责任。
📝 许可证
本项目基于 MIT 许可证 开源。 该软件运行时会调用上海财经大学的相关网络服务与接口,请遵守学校的相关网络与场馆使用规定。
如果这个项目对您有帮助,请给我们一个 ⭐️
Made with ❤️ by ChengJiale150
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sufe_cli-0.7.0.tar.gz.
File metadata
- Download URL: sufe_cli-0.7.0.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4953b3eda48d35d84f673b4afb4df5ea7609f0e1fadf094a31012bbe44ffad21
|
|
| MD5 |
0bf04ef8d5fc3670c56798c8fb1ed310
|
|
| BLAKE2b-256 |
d442748bad1bd634923e40a2eaef979b8b288ecfff98471081be96309ff5b3df
|
Provenance
The following attestation bundles were made for sufe_cli-0.7.0.tar.gz:
Publisher:
publish.yml on ChengJiale150/sufe-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sufe_cli-0.7.0.tar.gz -
Subject digest:
4953b3eda48d35d84f673b4afb4df5ea7609f0e1fadf094a31012bbe44ffad21 - Sigstore transparency entry: 1434987019
- Sigstore integration time:
-
Permalink:
ChengJiale150/sufe-cli@7c8ed28c8f576b8b3d53f62cbed642764fa6a778 -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/ChengJiale150
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c8ed28c8f576b8b3d53f62cbed642764fa6a778 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sufe_cli-0.7.0-py3-none-any.whl.
File metadata
- Download URL: sufe_cli-0.7.0-py3-none-any.whl
- Upload date:
- Size: 43.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6239819463a3c449a87aa9f59ce700f5b2aa60c576b3991f216bca39cabdde27
|
|
| MD5 |
1e71045c2815508f3e22f4d693ab5568
|
|
| BLAKE2b-256 |
5dc290c5256cf0a31434f11d87ffc1aea0798cb5391e7278a02eaf56ecdf3e96
|
Provenance
The following attestation bundles were made for sufe_cli-0.7.0-py3-none-any.whl:
Publisher:
publish.yml on ChengJiale150/sufe-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sufe_cli-0.7.0-py3-none-any.whl -
Subject digest:
6239819463a3c449a87aa9f59ce700f5b2aa60c576b3991f216bca39cabdde27 - Sigstore transparency entry: 1434987093
- Sigstore integration time:
-
Permalink:
ChengJiale150/sufe-cli@7c8ed28c8f576b8b3d53f62cbed642764fa6a778 -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/ChengJiale150
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c8ed28c8f576b8b3d53f62cbed642764fa6a778 -
Trigger Event:
push
-
Statement type: