开发编程
#api
canvas
Fetch Canvas LMS courses and assignments via API token.
DeepseekModel
官方收录技能
质量 优秀 · 90
v1.0.0
获取
https://deepseekmodel.com/api/download.php?id=nousresearch-hermes-agent-optional-skills-productivity-canvas-skill-md&format=skill
下载 .skill
标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 system_prompt 字段的实际内容。
name canvas description Fetch Canvas LMS courses and assignments via API token. version 1.0.0 author community license MIT platforms ["linux","macos","windows"] prerequisites {"env_vars":["CANVAS_API_TOKEN","CANVAS_BASE_URL"]} metadata {"hermes":{"tags":["Canvas","LMS","Education","Courses","Assignments"]}} Canvas LMS — Course & Assignment Access Read-only access to Canvas LMS for listing courses and assignments. Scripts scripts/canvas_api.py — Python CLI for Canvas API calls Setup Log in to your Canvas instance in a browser Go to Account → Settings (click your profile icon, then Settings) Scroll to Approved Integrations and click + New Access Token Name the token (e.g., "Hermes Agent"), set an optional expiry, and click Generate Token Copy the token and add to ${HERMES_HOME:-~/.hermes}/.env : CANVAS_API_TOKEN=your_token_here CANVAS_BASE_URL=https://yourschool.instructure.com The base URL is whatever appears in your browser when you're logged into Canvas (no trailing slash). Usage CANVAS= "python $HERMES_HOME /skills/productivity/canvas/scripts/canvas_api.py" # List all active courses $CANVAS list_courses --enrollment-state active # List all courses (any state) $CANVAS list_courses # List assignments for a specific course $CANVAS list_assignments 12345 # List assignments ordered by due date $CANVAS list_assignments 12345 --order-by due_at Output Format list_courses returns: [ { "id" : 12345 , "name" : "Intro to CS" , "course_code" : "CS101" , "workflow_state" : "available" , "start_at" : "..." , "end_at" : "..." } ] list_assignments returns: [ { "id" : 67890 , "name" : "Homework 1" , "due_at" : "2025-02-15T23:59:00Z" , "points_possible" : 100 , "submission_types" : [ "online_upload" ] , "html_url" : "..." , "description" : "..." , "course_id" : 12345 } ] Note: Assignment descriptions are truncated to 500 characters. The html_url field links to the full assignment page in Canvas. API Reference (curl) # List courses curl -s -H "Authorization: Bearer $CANVAS_API_TOKEN " \ " $CANVAS_BASE_URL /api/v1/courses?enrollment_state=active&per_page=10" # List assignments for a course curl -s -H "Authorization: Bearer $CANVAS_API_TOKEN " \ " $CANVAS_BASE_URL /api/v1/courses/COURSE_ID/assignments?per_page=10&order_by=due_at" Canvas uses Link headers for pagination. The Python script handles pagination automatically. Rules This skill is read-only — it only fetches data, never modifies courses or assignments On first use, verify auth by running $CANVAS list_courses — if it fails with 401, guide the user through setup Canvas rate-limits to ~700 requests per 10 minutes; check X-Rate-Limit-Remaining header if hitting limits Troubleshooting Problem Fix 401 Unauthorized Token invalid or expired — regenerate in Canvas Settings 403 Forbidden Token lacks permission for this course Empty course list Try --enrollment-state active or omit the flag to see all states Wrong institution Verify CANVAS_BASE_URL matches the URL in your browser Timeout errors Check network connectivity to your Canvas instance
Agent 识别该技能的关键词,点击任意一个即可复制。
该技能未提供触发词。
下载的 .skill 包内含以下字段。
| 字段 | 说明 |
|---|---|
| format | 格式标识(skill/v1) |
| skill_id | 技能唯一 ID |
| name | 技能名称 |
| version | 版本号 |
| description | 技能描述 |
| category | 所属分类(数组) |
| trigger_words | 触发词列表 |
| tags | 标签列表 |
| source | 来源标识 |
| source_url | 来源链接(本页地址) |
| exported_at | 导出时间(每次下载生成) |
| system_prompt | 系统提示词正文 |
| model_config | 模型参数:provider / model / temperature / max_tokens / top_p |
| examples | 示例 |
| install_guide | 各平台导入说明(Coze / Dify / Claude / 自定义框架) |