canvas

Solid

Canvas LMS integration — fetch enrolled courses and assignments using API token authentication.

AI & Automation 191,515 stars 33299 forks Updated today MIT

Install

View on GitHub

Quality Score: 93/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Canvas LMS — Course & Assignment Access Read-only access to Canvas LMS for listing courses and assignments. ## Scripts - `scripts/canvas_api.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 `~/.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). ## Usage ```bash 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 ``` ## Output Format **list_courses** returns: ```json [{"id": 12345, "name": "Intro to CS", "course_code": "CS101", "workflow_state": "available", "start_at": "...", "end_at": "..."}] ``` **list_assignments** returns: ```json [{"id": 67890, "name": "Homework 1", "due_at": "2025-02-15T23:59:00Z", "points_possible": 100, "submission_types": ["online_upload"], "html_url": "...", "descri...

Details

Author
NousResearch
Repository
NousResearch/hermes-agent
Created
10 months ago
Last Updated
today
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category