canvas

Fetch enrolled courses and assignments from Canvas LMS via REST API token authentication.

14|5|Updated Apr 9, 2026
One-click install
npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill canvas-mlt-oss
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: canvas
Source: https://github.com/MLT-OSS/hermes-agent-go/tree/main/optional-skills/productivity/canvas
Command: npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill canvas-mlt-oss

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests, and includes scripts (resource) components.

What problem does it solve? Students and educators often need programmatic access to their Canvas LMS data without manually browsing the web interface. This Skill provides read-only CLI access to list enrolled courses and assignments directly from the Canvas REST API. ## Core Features & Use Cases - Course Listing: Retrieve all enrolled courses with optional filtering by enrollment state (active, invited_or_pending, completed). - Assignment Retrieval: List assignments for any course with due dates, points, submission types, and links, ordered by due date or name. - Automatic Pagination: Follows Canvas Link headers to fetch up to 200 items across pages without manual paging. - Use Case: A student wants a quick overview of all upcoming deadlines across courses. Run list_courses to get course IDs, then list_assignments for each course ordered by due_at to build a personal deadline tracker. ## Quick Start Ask the agent to list my active Canvas courses and show all assignments due soon for a specific course ID.

Frequently Asked Questions about canvas

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I list my Canvas LMS courses from the command line?

Run the canvas_api.py script with the list_courses command after setting CANVAS_API_TOKEN and CANVAS_BASE_URL environment variables. Use --enrollment-state active to filter for currently active courses, and results are returned as JSON.

How to get Canvas assignments sorted by due date?

Run list_assignments with the course ID and the --order-by due_at flag. The script calls the Canvas API assignments endpoint and returns JSON including due_at, points_possible, submission_types, and a link to each assignment page.

How do I create a Canvas API access token?

Log in to Canvas, go to Account Settings, scroll to Approved Integrations, and click New Access Token. Copy the generated token into CANVAS_API_TOKEN in your environment or ~/.hermes/.env file.

Why does the Canvas API return 401 Unauthorized?

A 401 error means the access token is invalid or expired. Regenerate a new token in Canvas Account Settings under Approved Integrations and update the CANVAS_API_TOKEN environment variable.

Can this tool submit assignments or modify Canvas courses?

No, the integration is strictly read-only. It only supports listing courses and assignments through GET requests and never modifies course content, submissions, or grades.

Does the Canvas API have rate limits?

Canvas rate-limits to roughly 700 requests per 10 minutes. The script caps results at 200 items per query, and you can check the X-Rate-Limit-Remaining response header if you encounter throttling.