- Professor-friendly CLI for common Canvas tasks.
- Stable, machine-friendly interface for LLMs.
- Rust ADTs and strict typing to make invalid state unrepresentable.
- Parse and validate at the edges, internal logic uses only valid ADTs.
- Student-only features.
- Institution-wide admin features.
- GUI or TUI.
canvasCLI with human and JSON outputs.- Rust workspace with
canvas-cli,canvas-core,canvas-models. - Core workflows: auth, course list/select, assignment list, submission grade.
- Every
--jsonresponse includes stable top-level keys:ok,schema_version, andcommand. - Success responses carry
datawith command-specific keys; error responses includeerrorwithcode,message, anddetails. - Use
canvas --schemato retrieve the JSON schemas for each command group and confirm the currentschema_version.
- Config file path:
~/.config/canvas-cli/config.toml - Environment overrides file values:
CANVAS_HOSTandCANVAS_TOKENwin overauth.hostandauth.token.
- MVP: auth, course list/select, assignment list, submission grade.
- Expand: assignment CRUD, file upload, pages/modules.
- Communication: announcements, messages, discussions.
- Analytics and reports.
- LLM schema output stabilization.