A powerful command-line interface for Canvas LMS, built with Go.
Documentation · Installation · Commands
- Secure Authentication - OAuth 2.0 with PKCE, system keyring integration
- Multi-Instance - Manage multiple Canvas instances from one CLI
- Smart Rate Limiting - Adaptive throttling based on API quotas
- Multiple Outputs - Table, JSON, YAML, and CSV formats
- Interactive Mode - REPL shell with command history and completion
- 280+ Commands - Full coverage of Canvas LMS resources
brew tap jjuanrivvera/canvas-cli
brew install canvas-cligo install github.com/jjuanrivvera/canvas-cli/cmd/canvas@latestDownload from GitHub Releases.
# Authenticate with your Canvas instance
canvas auth login https://your-school.instructure.com
# List your courses
canvas courses list
# Get assignments for a course
canvas assignments list <course-id>
# Start interactive mode
canvas shell| Category | Commands |
|---|---|
| Auth | login, logout, status |
| Courses | list, get, create, update, delete |
| Assignments | list, get, create, update, delete, bulk-update |
| Submissions | list, get, grade, bulk-grade, comments |
| Users | me, list, get, create, update |
| Enrollments | list, get, create, update, delete, accept |
| Modules | list, get, create, update, delete, publish, items |
| Pages | list, get, create, update, delete, front, revisions |
| Discussions | list, get, create, entries, post, reply, subscribe |
| Announcements | list, get, create, update, delete |
| Quizzes | list, get, create, update, delete, questions, submissions |
| Grades | summary, history, bulk-update, final, current |
| Groups | list, get, create, update, delete, users, categories |
| Outcomes | list, get, create, update, delete, groups, results |
| Rubrics | list, get, create, update, delete, associate |
| Conversations | list, get, create, reply, archive, star, batch-update |
| Calendar | list, get, create, update, delete, reserve |
| Files | list, get, upload, download, delete |
| Sections | list, get, create, update, delete, crosslist |
| Admin | admins, roles, analytics, blueprint, sis-imports |
| Utilities | shell, doctor, webhook, api, version |
See full command reference for all options and flags.
# ~/.canvas-cli/config.yaml
default_instance: myschool
instances:
myschool:
url: https://myschool.instructure.com
client_id: your-client-id
settings:
default_output_format: table
cache_enabled: trueSee Authentication Guide for detailed setup.
We welcome contributions! See CONTRIBUTING.md for guidelines.