npx skills add https://github.com/openclaw/skills
sundial-org/awesome-openclaw-skills
canvas-lms
Access Canvas LMS (Instructure) for course data, assignments, grades, and submissions. Use when checking due dates, viewing grades, listing courses, or fetching course materials from Canvas.
Installation
npx skills add sundial-org/awesome-openclaw-skills --skill canvas-lms
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use …
105.8K installsCreate and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections. Use whe…
67.9K installsCreate beautiful visual art in .png and .pdf documents using design philosophy.
4K installsCreate spatial diagrams with free-positioned nodes using JSON format. Best for concept maps, kn…
3.3K installsGenerate a Startup Canvas combining Product Strategy (9 sections) and Business Model (costs + r…
2.7K installsCreate beautiful visual art in PNG and PDF documents using design philosophy and aesthetic prin…
2.5K installsAlso in this package
Other skills from sundial-org/awesome-openclaw-skills · top by installs.
npx skills add sundial-org/awesome-openclaw-skills
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md3,454 B -
docs
SUMMARY.md208 B
History
- First seen on skills.sh
- First recorded snapshot · 8 installs
SKILL.md
Canvas LMS Skill
Access Canvas LMS data via the REST API.
Setup
- Generate an API token in Canvas: Account → Settings → New Access Token
- Store token in environment or
.envfile:
``bash export CANVASTOKEN="yourtokenhere" export CANVASURL="https://your-school.instructure.com" # or canvas.yourschool.edu ``
Authentication
Include token in all requests:
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/..."
Common Endpoints
Courses & Profile
# User profile
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/users/self/profile"
# Active courses
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/courses?enrollment_state=active&per_page=50"
# Dashboard cards (quick overview)
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/dashboard/dashboard_cards"
Assignments & Due Dates
# To-do items (upcoming work)
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/users/self/todo"
# Upcoming events
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/users/self/upcoming_events"
# Missing/overdue submissions
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/users/self/missing_submissions"
# Course assignments
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/courses/{course_id}/assignments?per_page=50"
# Assignment details
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/courses/{course_id}/assignments/{id}"
# Submission status
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/courses/{course_id}/assignments/{id}/submissions/self"
Grades
# Enrollments with scores
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/users/self/enrollments?include[]=current_grading_period_scores&per_page=50"
Extract grade: .grades.current_score
Course Content
# Announcements
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/announcements?context_codes[]=course_{course_id}&per_page=20"
# Modules
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/courses/{course_id}/modules?include[]=items&per_page=50"
# Files
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/courses/{course_id}/files?per_page=50"
# Discussion topics
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/courses/{course_id}/discussion_topics?per_page=50"
# Inbox
curl -s -H "Authorization: Bearer $CANVAS_TOKEN" "$CANVAS_URL/api/v1/conversations?per_page=20"
Response Handling
- List endpoints return arrays
- Pagination: check
Linkheader forrel="next" - Dates are ISO 8601 (UTC)
- Use
--max-time 30for slow endpoints
Parse with jq:
curl -s ... | jq '.[] | {name: .name, due: .due_at}'
Or Python if jq unavailable:
curl -s ... | python3 -c "import sys,json; data=json.load(sys.stdin); print(json.dumps(data, indent=2))"
Tips
- Course IDs appear in todo/assignment responses
- File download URLs are in the
urlfield of file objects - Always include
per_page=50to get more results (default is often 10)