Canvas LMS
The robomotion canvas CLI connects to Canvas LMS for education management. It manages courses, assignments (create/update/delete/grade), user enrollments, wiki pages, modules, and announcements — covering the full lifecycle of course content and student interaction.
When to use
- Create, update, or delete assignments and grade submissions
- Manage course enrollments — enroll or remove students
- Create wiki pages, modules, and announcements in courses
- List courses, users, assignments, and submissions with filters
Prerequisites
robomotionCLI installed- Package installed:
robomotion install canvas - Canvas LMS API access token configured via Robomotion vault
IMPORTANT: Session Mode Required for Multi-Step Operations
Each CLI command runs as a separate process — connection IDs from connect do NOT persist across calls.
You MUST use --session on connect and pass --session-id to all subsequent commands.
Workflow
- Install (once):
robomotion install canvas - Connect with session:
robomotion canvas canvas_connect --session --output json # → {"outClientId":"<client-id>","session_id":"<session-id>"} - Use the returned
client-idandsession-idin all subsequent commands:robomotion canvas canvas_list_courses --client-id "<client-id>" --session-id "<session-id>" --output json - Disconnect when done:
robomotion canvas canvas_disconnect --client-id "<client-id>" --session-id "<session-id>" --output json
Always append --output json to get structured JSON results.
Commands Reference
robomotion canvas canvas_connect --session --output jsonConnects to Canvas LMS and returns a client ID for subsequent operationsrobomotion canvas canvas_disconnect --client-id --session-id "<session-id>" --output jsonCloses the Canvas LMS connection and releases resourcesrobomotion canvas canvas_list_courses --client-id [--enrollment-type] [--state] [--50] --session-id "<session-id>" --output jsonLists courses for the authenticated userrobomotion canvas canvas_get_course --client-id --course-id --session-id "<session-id>" --output jsonGets details of a specific Canvas courserobomotion canvas canvas_list_assignments --client-id --course-id [--order-by] [--50] --session-id "<session-id>" --output jsonLists assignments in a Canvas courserobomotion canvas canvas_get_assignment --client-id --course-id --assignment-id --session-id "<session-id>" --output jsonGets details of a specific assignment in a Canvas courserobomotion canvas canvas_create_assignment --client-id --course-id --name --description [--100] [--due-date] --session-id "<session-id>" --output jsonCreates a new assignment in a Canvas courserobomotion canvas canvas_update_assignment --client-id --course-id --assignment-id --name --description [--points-possible] [--due-date] --session-id "<session-id>" --output jsonUpdates an existing assignment in a Canvas courserobomotion canvas canvas_delete_assignment --client-id --course-id --assignment-id --session-id "<session-id>" --output jsonDeletes an assignment from a Canvas courserobomotion canvas canvas_list_users --client-id --course-id [--enrollment-type] [--search-term] [--50] --session-id "<session-id>" --output jsonLists users enrolled in a Canvas courserobomotion canvas canvas_get_user --client-id --user-id --session-id "<session-id>" --output jsonGets details of a specific Canvas userrobomotion canvas canvas_list_enrollments --client-id --course-id [--role] [--state] [--50] --session-id "<session-id>" --output jsonLists enrollments in a Canvas courserobomotion canvas canvas_create_enrollment --client-id --course-id --user-id [--role] --session-id "<session-id>" --output jsonEnrolls a user in a Canvas courserobomotion canvas canvas_delete_enrollment --client-id --course-id --enrollment-id [--action] --session-id "<session-id>" --output jsonRemoves a user enrollment from a Canvas courserobomotion canvas canvas_list_submissions --client-id --course-id --assignment-id [--50] --session-id "<session-id>" --output jsonLists submissions for an assignment in a Canvas courserobomotion canvas canvas_grade_submission --client-id --course-id --assignment-id --user-id --grade [--comment] --session-id "<session-id>" --output jsonGrades a student submission for an assignmentrobomotion canvas canvas_list_pages --client-id --course-id [--sort-by] [--50] --session-id "<session-id>" --output jsonLists wiki pages in a Canvas courserobomotion canvas canvas_create_page --client-id --course-id --title --body --session-id "<session-id>" --output jsonCreates a new wiki page in a Canvas courserobomotion canvas canvas_update_page --client-id --course-id --page-url --title --body --session-id "<session-id>" --output jsonUpdates an existing wiki page in a Canvas courserobomotion canvas canvas_list_modules --client-id --course-id [--search-term] [--include] [--50] --session-id "<session-id>" --output jsonLists modules in a Canvas courserobomotion canvas canvas_create_module --client-id --course-id --name --session-id "<session-id>" --output jsonCreates a new module in a Canvas courserobomotion canvas canvas_create_announcement --client-id --course-id --title --message --session-id "<session-id>" --output jsonCreates an announcement in a Canvas course
Environment
- ROBOMOTION_API_TOKEN (if vault credentials are needed)