Agent skill · writing content · nousresearch
canvas
Fetch Canvas LMS courses and assignments via API token.
Why this skill is useful
Adds a Python CLI script for accessing Canvas LMS API, which includes specific commands and integration patterns not commonly known.
What it needs
Requires python installed locally. Requires canvas account access. About 2k tokens when loaded. Last updated 2026-08-07. 226,679 stars on the source repository.
What this skill does
Canvas LMS — Course & Assignment Access Read-only access to Canvas LMS for listing courses and assignments. Scripts scripts/canvasapi.py — Python CLI for Canvas API calls Setup 1. Log in to your Canvas instance in a browser 2. Go to Account → Settings (click your profile icon, then Settings) 3. Scroll to Approved Integrations and click + New Access Token 4. Name the token (e.g., "Hermes Agent"), set an optional expiry, and click Generate Token 5. Copy the token and add to ${HERMESHOME:-~/.hermes}/.env: The base URL is whatever appears in your browser when you're logged into Canvas (no trailing slash). Usage Output Format listcourses returns: listassignments returns: Note: Assignment descriptions are truncated to 500 characters. The htmlurl field links to the full assignment page in Canvas. API Reference (curl) 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 listcourses — 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 CANVASBASEURL matches the URL in your browser Timeout errors Check network connectivity to your Canvas instance
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills nousresearch/canvas