清华网络学堂
清华网络学堂(learn.tsinghua.edu.cn)自动化。要求用户提供网络学堂登录密码(本地 DPAPI 加密存储),自动登录、查看待办、下载课件、提交作业、批量标记已读。当需要操作网络学堂完成日常学习任务时使用。 Skill: 清华网络学堂 Owner: tomuiv Summary: 清华网络学堂(learn.tsinghua.edu.cn)自动化。要求用户提供网络学堂登录密码(本地 DPAPI 加密存储),自动登录、查看待办、下载课件、提交作业、批量标记已读。当需要操作网络学堂完成日常学习任务时使用。 Tags: latest:1.0.17 Version history: v1.0.17 | 2026-05-09T12:36:25.094Z | user auto_mark_read=true now auto-executes mark-read (not just suggest) v1.0.16 | 2026-05-03T03:26:17.036Z | user auto_mark_read=true skips --confirm (no prompt), plain todo check never auto-marks
Rank
62
Safety
84
Downloads
1.0k
Updated
Oct 11, 2026
Version
1.0.17
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 1K downloadsadoption · observed Oct 11, 2026
- Latest release
- 1.0.17release · observed May 9, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s171935xz6xsqmpn3z12w1jnk184m1a9:tsinghua-learn- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-tomuiv-tsinghua-learn/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
148,537 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: tsinghua-learn
description: 清华网络学堂(learn.tsinghua.edu.cn)自动化。要求用户提供网络学堂登录密码(本地 DPAPI 加密存储),自动登录、查看待办、下载课件、提交作业、批量标记已读。当需要操作网络学堂完成日常学习任务时使用。
metadata:
openclaw:
requires:
env:
- CAS_PASSWORD
primaryEnv: CAS_PASSWORD
os:
- windows
---
# tsinghua-learn skill
清华网络学堂(learn.tsinghua.edu.cn)自动化 Skill。
---
## 如果你是人类,请阅读以下内容
### 前置要求
使用前请确保已安装 **Python 3.10+** 或 **Conda**(推荐 Python 3.11 或 3.12)。建议安装 **7-Zip** 并添加到环境变量 PATH 中,方便后续处理压缩文件。
初始化时会自动安装 Python 依赖(requests、playwright、pillow 等)以及 Chromium 浏览器(~150MB),无需手动操作。
如果没有安装上述环境,请先安装后再对 AI 说 **"开始初始化"**。
### 如何与 AI 沟通
你只需要像聊天一样告诉 AI 你想做什么,AI 会帮你完成所有操作。
#### 初始化
对 AI 说:**"开始初始化"**
AI 会依次:
1. 询问你的网络学堂登录账号、密码、学号、姓名
2. 检查 Python 环境并自动安装所需依赖
3. 安装 Chromium 浏览器
4. 尝试登录网络学堂
5. 登录成功后询问你的偏好设置(是否自动标已读等)
6. 完成后即可正常使用
> **四个字段说明:**
> - **网络学堂登录账号**(`--learn-account`)— 用于登录 learn.tsinghua.edu.cn 的账号,可能和学号不同
> - **登录密码**(`--password`)— 网络学堂登录密码,仅发送至 id.tsinghua.edu.cn(CAS)和 learn.tsinghua.edu.cn
> - **学号**(`--username`)— 你的学生证号,如 2025013187
> - **姓名**(`--name`)— 你的真实姓名
#### 查看待办
对 AI 说:**"查看待办"** 或 **"看看有什么作业"**
AI 会列出所有课程的最新动态:
- 未交作业及截止日期
- 未读公告和未浏览课件
- 已提交但老师还没批的作业(老师批改后会自动汇报评语和分数)
- 工作区缓存大小
AI 还会主动问你是否需要标已读、清理缓存。
> 你也可以设置每日自动查看:将 `todos_api.py` 配置为定时任务即可。
#### 提交作业
**方式一:直接发送 PDF 文件**
对 AI 说:**"我要交某某课程的作业"**,然后发送 PDF 文件即可。
**方式二:发送多张图片合并为 PDF**
先说:**"我要交某某课程的作业,我发几张图片给你"**
然后**按顺序**发送图片(先发的会在最终 PDF 的第一页,后发的在后面)。最后说:**"已经上传完毕"**
AI 会先列出要提交的课程、作业标题、文件名,请你确认。确认后自动:
1. 按你发送的顺序命名图片(001、002...)
2. 合并为 PDF(按文件名排序,所以先发的在 PDF 前面)
3. 重命名为 `学号_姓名.pdf`
4. 提交到指定作业
#### 下载课件
对 AI 说:**"帮我下载微积分的课件"**
AI 会列出课程的全部课件文件。你也可以更精确地指定:
- **"下载未读课件"** — 只下载还没看过的课件
- **"下载概率论第 8 讲的课件"** — 下载指定名称的文件
- **"把微积分的课件全部下载到 D 盘"** — 批量下载到指定目录
AI 会在下载前列出文件清单让你确认。
#### 查看通知和作业详情
对 AI 说:
- **"看看微积分最近有什么通知"** — 查看指定课程的公告
- **"概率论 HW10 的作业内容是什么"** — 查看作业的题目和附件
- **"上次交的物理作业老师批了吗"** — 查看已批改作业的评语和分数
- **"看看英语课有什么讨论"** — 查看课程讨论区
#### 清理工作区
AI 在查看待办时会主动提醒你工作区有缓存。这些缓存是下载的课件、合并 PDF 时的临时图片、调试日志等文件,不影响功能但会占用磁盘空间。
只需说 **"好"** 或 **"清理吧"**,AI 会先列出待清理的文件让你确认,确认后自动删除。
#### 其他
如果有这里没列出的需求,直接告诉 AI 你想做什么即可。AI 会根据现有功能尽力帮你完成。
#### 数据与安全
本 Skill 会在本地存储以下数据:
| 数据 | 位置 | 说明 |
|------|------|------|
| 登录凭据 | `credentials.json` | Windows DPAPI 加密(绑定当前用户账户,仅 Windows 支持) |
| 浏览器登录状态 | `profiles/learn_profile/` | Chrome Profile 含 cookies,避免每次触发 2FA |
| Session 令牌 | `sessions/learn_session.json` | JSESSIONID + CSRF Token |
如需清除所有数据,对 AI 说 **"重置所有数据"**,AI 会清空以上目录内容并恢复到初始状态。
> 这些数据仅存储在本地计算机,不会上传到任何云端。网络学堂本身不支持注销 API,如需完全登出请手动在浏览器中操作。
#### 修改配置
你可以让 AI 帮你修改以下设置,只需要说"帮我改一下配置"或"设置自动标已读"即可:
| 配置项 | 说明 | 默认值 |
|--------|------|--------|
| `auto_mark_read` | 查看待办时是否自动标已读 | 开启 |
| `confirm_before_cleanup` | 清理缓存前是否需要你确认 | 需要 |
| `confirm_before_download` | 批量下载前是否需要你确认 | 需要 |
例如:
- **"以后自动标已读吧"** → AI 会开启 `auto_mark_read`
- **"清理的时候不用问我了"** → AI 会把 `confirm_before_cleanup` 设为 false
---
> **当前版本为测试版本,建议同学们完成提交作业等关键操作后自行登录网络学堂查看是否有错误。**
了解更多信息见 GitHub:[github.com/TOMUIV/tsinghua-learn](https://githu_meta.json
{
"ownerId": "kn73vfhykr10snz07772njvdmx84mcb6",
"slug": "tsinghua-learn",
"version": "1.0.17",
"publishedAt": 1778330185094
}AGENTS.md
# tsinghua-learn — AGENTS.md ## 架构 6 个脚本: | 脚本 | 职责 | |------|------| | `_config.py` | 路径/配置/凭证、DPAPI 解密 | | `login_manager.py` | 中央认证网关(默认 fast check,`--force-login` 完整登录) | | `learn_api.py` | HTTP API(课程/公告/课件/作业/讨论/问卷/聚合查询) | | `ops.py` | 文件操作(下载/批量下载/上传/移入/清理) | | `todos_api.py` | 日常管理(代办汇总/标已读/清理,JSON 给 AI) | | `pdf_merge.py` | 图片→PDF | 登录脚本不直接调用: | `login_auto.py` | headless 自动登录 | | `login_supervised.py` | 2FA 登录 | ## 核心命令 ```bash python scripts/login_manager.py # 快速检查 session (<1s) python scripts/login_manager.py --init # 初始化凭据 python scripts/login_manager.py --verify # 验证环境+登录 python scripts/login_manager.py --reset # 清空所有数据 python scripts/login_manager.py --force-login # 强制完整登录 python scripts/todos_api.py # 代办汇总 python scripts/todos_api.py --mark-read # + 标已读 python scripts/todos_api.py --cleanup # + 清理 python scripts/ops.py --action list-files --course <wlkcid> python scripts/ops.py --action download --course <wlkcid> --wjid <wjid> python scripts/ops.py --action download-all --course <wlkcid> python scripts/ops.py --action upload --course <wlkcid> --xszyid <xszyid> --file <path> python scripts/ops.py --action pdf-merge --input-dir <目录> python scripts/ops.py --action cleanup --dry-run python scripts/ops.py --action cleanup ``` ## 关键约束 - paths/creds 全走 `_config.py` getter - `credentials.json` DPAPI 加密 - 学期从 API 自动检测 - 课程从 API 动态获取 - 不创建新脚本 - 脚本不阻塞(`input()`/`getpass()` 禁用) - 提交作业自动重命名:`学号_姓名.ext`
CHANGELOG.md
# tsinghua-learn — Release History ## v1.0.16 (2026-05-03) - `auto_mark_read=true` 时 `--mark-read` 跳过 `--confirm`,但纯查待办永不自动标 - `login_supervised.py`:先 headless,仅 2FA 时弹浏览器 - `install_playwright.py`:内置 npmmirror.com 镜像,解决国内下载超时 - 删除 `todos_dom.py`(DOM 备用,已被 `todos_api.py` 替代) - 3 个安全扫描全部 Staff Cleared(ClawHub #1984 申诉通过) ## v1.0.15 (2026-05-03) - `todos_api.py --mark-read` 加 `--confirm` 脚本级强制确认 - `auto_mark_read` 不再自动执行,改为 suggestions 提示 AI 加 `--confirm` - ClawScan: `auto_mark_read` Concern → Note ## v1.0.14 (2026-05-03) - `login_supervised.py` 重写:先 headless,检测到 2FA 再弹浏览器 - 验证 `chromium-1169` ↔ `playwright==1.52.0` 版本对齐 ## v1.0.13 (2026-05-03) - `login_manager.py --reset` 默认 `auto_mark_read: true`(匹配 `config.json`) ## v1.0.12 (2026-05-03) - 2FA 提示改 plain text(去 ASCII art) - fingerPrint 文件缺失时不崩溃 - `auto_mark_read` 默认值改为 `true` - ClawScan 从 5 个 findings 降到 4 个 ## v1.0.10 (2026-05-02) - 前置换页改用 `primaryEnv` + `os: [windows]`(ClawHub 识别) - `ops.py upload` 加 `--confirm` 脚本级强制确认(无 `--confirm` 返回 pending) - ClawScan: `submit_homework` Concern → Note;static analysis → Benign ## v1.0.9 (2026-05-02) - 前置换页加 `credentialScope`、窄化密码描述(去"清华信息门户也用同一密码") ## v1.0.8 (2026-05-02) - SKILL.md 加 YAML 前置换页,声明 `primaryCredential: cas_password` ## v1.0.7 (2026-05-02) - `install_deps.py` 依赖改为精确 `==` pin(不再 `>=`) - 密码/用户名掩码改为全 `***`(不再泄露前 N 字符) - stdin 方式从 `echo | pipe` 改为临时文件重定向 - 铁律 0 加例外条款(用户知情披露) - 去掉 `ignore_https_errors=True` 全部 3 处(`login_auto.py`、`login_supervised.py`、`todos_dom.py`) - 去掉非 Windows base64 fallback——仅支持 DPAPI - ClawScan 从 7 个 findings 降到 4 个 ## v1.0.6 (2026-05-02) - 凭据存储从 base64 编码改为 Windows DPAPI(`CryptProtectData`) - 修复 DPAPI 加密中文文本的字节长度 bug - ClawScan: static analysis → Benign ## v1.0.5 (2026-05-02) - 修复 `config.json` `auto_mark_read: true` → `false` - 修改铁律 5 措辞(密码仅在初始化时收集) ## v1.0.3 (2026-05-02) - 全面启用 TLS 验证:去掉 `learn_api.py`、`login_manager.py` 等 6 个脚本的 `verify=False` - 新增 `--cred-stdin`:凭据通过 stdin JSON 传入,避免密码上命令行 - `install_deps.py` 依赖 pin 最低版本号 - SKILL.md 新增铁律 6(提交确认)+ "数据与安全"章节 - 清理 44 个 `_test_*` 调试脚本 - ClawScan 从 21+ 降到 6 个 findings ## v1.0.2 (2026-05-02) - ClawHub 显示名从 "Clawhub" 改为 "清华网络学堂" - 请求安全重扫 ## v1.0.1 (2026-05-02) - ClawHub 首次发布 ## v1.0.0 之前 - 从 30+ 个散乱脚本重构为 10 个核心脚本 - 新建 `login_manager.py`(中央认证网关) - 新建 `ops.py`(文件操作统一入口) - 修复 `learn_api.py` 多个 API 端点 - 学期从 API 自动检测 - 文件名乱码修复(latin-1 → UTF-8) - 提交日志机制(`submissions_log.json`) - SKILL.md 分人类 / AI 两部分 - 创建三版发布(clawhub / github-full / github-cas)
skill-card.md
## Description: 清华网络学堂(learn.tsinghua.edu.cn)自动化。要求用户提供网络学堂登录密码(本地 DPAPI 加密存储),自动登录、查看待办、下载课件、提交作业、批量标记已读。当需要操作网络学堂完成日常学习任务时使用。 This skill is ready for commercial/non-commercial use. ## Publisher: [tomuiv](https://clawhub.ai/user/tomuiv) ### License/Terms of Use: MIT-0 ## Use Case: Students and agents use this skill to automate routine Tsinghua Learn tasks such as login, todo review, courseware download, homework submission, PDF preparation, cleanup, and marking notices or files as read. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: The skill requires a Tsinghua Learn login and stores local credentials, browser profile data, and session files. Mitigation: Install only if the publisher is trusted, protect the local account and skill directory, and clear stored account state when the skill is no longer needed. Risk: The skill can change account state, including marking notices or files as read during todo checks. Mitigation: Disable automatic mark-read unless that behavior is intended, and review account-changing actions before allowing the agent to execute them. Risk: Plaintext temporary credential workflows can expose account secrets. Mitigation: Avoid workflows that place credentials in plaintext temporary files and remove any temporary credential material immediately after initialization. ## Reference(s): - [ClawHub Skill Page](https://clawhub.ai/tomuiv/skills/tsinghua-learn) - [Tsinghua Learn](https://learn.tsinghua.edu.cn) ## Skill Output: **Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] **Output Format:** [Markdown responses with JSON-backed status summaries, shell command execution, configuration updates, and generated or downloaded files] **Output Parameters:** [1D] **Other Properties Related to Output:** [Requires Windows and CAS_PASSWORD; stores local login, browser profile, and session state for Tsinghua Learn automation.] ## Skill Version(s): 1.0.17 (source: server release metadata) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/tomuiv/skills/tsinghua-learn",
"sourceUrl": "https://clawhub.ai/tomuiv/skills/tsinghua-learn",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T19:16:37.343Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-tomuiv-tsinghua-learn/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-tomuiv-tsinghua-learn/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T19:16:37.343Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1K downloads",
"href": "https://clawhub.ai/tomuiv/tsinghua-learn",
"sourceUrl": "https://clawhub.ai/tomuiv/tsinghua-learn",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T19:16:37.343Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.17",
"href": "https://clawhub.ai/tomuiv/tsinghua-learn",
"sourceUrl": "https://clawhub.ai/tomuiv/tsinghua-learn",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-05-09T12:36:25.094Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-tomuiv-tsinghua-learn/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-tomuiv-tsinghua-learn/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.0.17",
"description": "auto_mark_read=true now auto-executes mark-read (not just suggest)",
"href": "https://clawhub.ai/tomuiv/tsinghua-learn",
"sourceUrl": "https://clawhub.ai/tomuiv/tsinghua-learn",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-05-09T12:36:25.094Z",
"isPublic": true
}
]
}Record generated Oct 11, 2026.
For crawlers
This page is free to read. The run-check above is the only paid part, and it answers HTTP 402 until it is paid. Everything else here is public.
- One record, as JSON: card, facts, snapshot, contract, trust.
- Every agent, one feed: /.well-known/ai-catalog.json
- What this site sells, and the price: /.well-known/x402
- Paid run-check: /api/v1/agents/clawhub-tomuiv-tsinghua-learn/run-check
