Laurus
从您的终端下载Canvas LMS。
课程、作业、成绩、文件和截止日期-无需打开浏览器。专为学生打造,由代理商提供动力。
](https://github.com/chrismdemian/laurus)  
______________________________________________________________________
这是什么?
Laurus是一个CLI和MCP服务器 Canvas LMS -数千所大学使用的平台。一个二进制,两种模式:
laurus next # CLI: what's due next?
laurus mcp serve # MCP: plug into Claude, Symphony, or OpenClaw适用于任何Canvas实例。Laurus在拉丁语中意为“月桂”,是学术成就之树。
______________________________________________________________________
安装
# macOS
brew install chrismdemian/tap/laurus
# Windows
scoop bucket add laurus https://github.com/chrismdemian/scoop-bucket
scoop install laurus
# From source (requires Go 1.26+)
go install github.com/chrismdemian/laurus@latestLinux、macOS和Windows的预构建二进制文件可在 发布 页面。
______________________________________________________________________
快速开始
# 1. First-run setup (prompts for Canvas URL + API token)
laurus setup
# 2. See what's due
laurus next
# 3. Check your grades
laurus grades
# 4. Plug into Claude / Symphony / Cursor (see MCP section below)
laurus mcp serve______________________________________________________________________
特性
命令行接口命令模式
日常司机。快速、可脚本化、管道友好。
| 命令 | 描述 |
|---|---|
laurus next | 所有课程的下一个到期作业 |
laurus assignments | 所有即将完成的任务,按紧急程度排序 |
laurus grades | 所有课程的当前成绩 |
laurus grades --what-if "CSC108:85" | 模拟最终成绩 |
laurus announcements | 所有课程的最新公告 |
laurus sync | 将Canvas数据+课程文件同步到本地缓存 |
laurus submit | 从终端提交 |
laurus calendar --export | 导出截止日期 .ics |
laurus inbox | 读取并发送Canvas消息 |
laurus search | 基于人工智能的跨课程语义搜索 |
每个命令都支持 --json 用于脚本编写和 --cached 用于离线使用。
MCP服务器模式
将Canvas插入任何AI助手。克劳德、交响乐、光标、OpenClaw——任何会说话的东西 主控程序.
laurus mcp serve// claude_desktop_config.json
{
"mcpServers": {
"canvas": {
"command": "laurus",
"args": ["mcp", "serve"]
}
}
}适用于Claude Desktop、Claude Code、Symphony、Cursor和任何兼容MCP的客户端。相同的配置格式适用于所有这些。
成绩计算器
第一个与Canvas的精确成绩计算算法相匹配的工具:加权组、降最低规则(Kane&Kane二分法)、额外学分、豁免作业。不再有损坏的第三方计算器。
laurus grades CSC108 --detailed # per-assignment breakdown with rubric
laurus grades --what-if "CSC108:A" # simulate final exam scores
laurus grades --gpa # compute GPA across all courses脱机模式
所有内容都在SQLite中本地缓存。检查地铁上的等级。在飞机上复习作业。
laurus sync # sync all data + files
laurus assignments --cached # read from cache, no networkShell 集成
无需打开任何东西即可感知环境。
# ~/.config/starship.toml
[custom.canvas]
command = "laurus status --short"
format = "[$output]($style) "
style = "yellow"
interval = 300# ~/.tmux.conf
set -g status-right '#(laurus status --short)'
set -g status-interval 300后台通知
获取新成绩、公告和即将到来的截止日期的桌面通知。
laurus daemon install # install background polling (systemd/launchd/Task Scheduler)
laurus daemon status # check if it's running
laurus daemon uninstall # remove it
laurus watch # or run manually in the foreground______________________________________________________________________
建筑
┌─────────────────────────────────────────────────────┐
│ laurus binary │
├───────────────┬──────────────────┬──────────────────┤
│ CLI Mode │ MCP Mode │ Daemon Mode │
│ (cobra) │ (mcp-go) │ (background) │
├───────────────┴──────────────────┴──────────────────┤
│ Core Library │
│ │
│ ┌──────────┐ ┌───────────┐ ┌────────────────┐ │
│ │ Canvas │ │ Grade │ │ HTML Renderer │ │
│ │ API │ │ Calculator│ │ │ │
│ │ Client │ │ (exact) │ │ │ │
│ ├──────────┤ ├───────────┤ ├────────────────┤ │
│ │ GraphQL │ │ File Sync │ │ Notification │ │
│ │ + REST │ │ Engine │ │ Engine │ │
│ ├──────────┤ ├───────────┤ ├────────────────┤ │
│ │ SQLite │ │ Auth & │ │ Calendar │ │
│ │ Cache │ │ Keychain │ │ Export │ │
│ └──────────┘ └───────────┘ └────────────────┘ │
└─────────────────────────────────────────────────────┘- REST+GraphQL混合 -GraphQL用于批量查询(课程+作业+一次提交),REST用于突变和文件上传
- SQLite缓存 使用WAL模式-离线读取、增量同步、亚毫秒级查找
- 操作系统钥匙链 用于令牌存储(macOS上的钥匙链、Windows上的凭据管理器、Linux上的特勤局)
- 智能投票 -
graded_since和start_date用于高效变化检测的参数
______________________________________________________________________
支持的画布功能
Laurus涵盖整个Canvas学生API表面:
| 类别 | 端点 | 状态 |
|---|---|---|
| 课程 | 列表、详细信息、教学大纲、人员 | 完成 |
| 作业 | 列出、查看、提交、评分 | 完成 |
| 成绩 | 当前/期末,加权,如果完成了怎么办 | |
| 模块 | 列表、树视图、完成跟踪 | 完成 |
| 文件 | 浏览、下载、同步 | 完成 |
| 公告 | 列表、筛选器、未读 | 完成 |
| 讨论 | 列表、阅读帖子、发布回复 | 完成 |
| 日历 | 事件、截止日期、iCal导出 | 完成 |
| 收件箱 | 阅读、发送、回复 | 完成 |
| 计划 | 待办事项,标记完成 | 完成 |
| 测验 | 查看详细信息、结果 | 完成 |
| 组 | 列表、文件、讨论 | 完成 |
| 搜索 | 人工智能智能搜索 | 完成 |
| 分析 | 活动统计、历史记录 | 完成 |
| 办公时间 | 查看时段,预约 | 完成 |
______________________________________________________________________
配置
laurus setup
# Prompts for Canvas URL, opens browser with token instructions, stores token in OS keychainConfig位于您的操作系统配置目录中:
- Linux:
~/.config/laurus/config.toml - macOS:
~/Library/Application Support/laurus/config.toml - 视窗:
%AppData%\laurus\config.toml
[canvas]
url = "https://q.utoronto.ca" # your institution's Canvas URL
[sync]
dir = "~/School" # where to sync course files
interval = "30m" # background sync interval
[display]
theme = "auto" # auto, dark, light______________________________________________________________________
贡献
看 贡献.md 用于开发设置和指南。
______________________________________________________________________
