canvas
Canvas LMS integration — fetch enrolled courses and assignments using API token authentication.
High Quality
New
Canvas LMS integration — fetch enrolled courses and assignments using API token authentication.
Real data. Real impact.
Emerging
Developers
Per week
Excellent
Skills give you superpowers. Install in 30 seconds.
Read-only access to Canvas LMS for listing courses and assignments.
scripts/canvas_api.py — Python CLI for Canvas API calls~/.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).
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
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.
# 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.
$CANVAS list_courses — if it fails with 401, guide the user through setupX-Rate-Limit-Remaining header if hitting limits| Problem | Fix |
|---|---|
| 401 Unauthorized | Token invalid or expired — regenerate in Canvas Settings |
| 403 Forbidden | Token lacks permission for this course |
| Empty course list | Try or omit the flag to see all states |
| Wrong institution | Verify matches the URL in your browser |
| Timeout errors | Check network connectivity to your Canvas instance |
MIT
mkdir -p ~/.hermes/skills/productivity/canvas && curl -o ~/.hermes/skills/productivity/canvas/SKILL.md https://raw.githubusercontent.com/NousResearch/hermes-agent/main/optional-skills/productivity/canvas/SKILL.md1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.