canvas

Fetch Canvas LMS courses and assignments through the Canvas REST API.

Updated Aug 22, 2026
One-click install
npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill canvas-vivekgoquest
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: canvas
Source: https://github.com/vivekgoquest/hermes-agent-stable/tree/main/optional-skills/productivity/canvas
Command: npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill canvas-vivekgoquest

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 access to list enrolled courses and their assignments via the Canvas REST API, returning structured JSON output. ## Core Features & Use Cases - Course Listing: Enumerate 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, sortable by due date. - Automatic Pagination: Follows Canvas Link headers to retrieve up to 200 items across pages without manual paging. - Use Case: A student asks the agent to check upcoming deadlines; the agent lists active courses, fetches assignments ordered by due date, and summarizes what is due this week. ## Quick Start Set CANVAS_API_TOKEN and CANVAS_BASE_URL in your environment, then ask the agent to list my active Canvas courses and show assignments due soon.

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. Use --enrollment-state active to filter for current courses, or omit the flag to see all enrollment states.

How to get Canvas assignments sorted by due date?▼

Use the list_assignments command with a course ID and the --order-by due_at flag. The script returns JSON with each assignment's name, due_at timestamp, points possible, and a link to the full assignment page.

How do I create a Canvas API access token?▼

Log in to Canvas, go to Account then Settings, scroll to Approved Integrations, and click New Access Token. Copy the generated token into your .env file as CANVAS_API_TOKEN along with your institution's base URL.

Why does the Canvas API return 401 Unauthorized?▼

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

Can this skill submit assignments or modify Canvas courses?▼

No, the skill is strictly read-only and only fetches course and assignment data. It never modifies courses, submits assignments, or changes any Canvas content.

What are the Canvas API rate limits?▼

Canvas rate-limits to roughly 700 requests per 10 minutes. The script caps results at 200 items per query and handles pagination automatically; check the X-Rate-Limit-Remaining header if you hit limits.