cass¶
cass — Canvas grading CLI.
Usage:
Options:
--config TEXT: Path to a cass.toml (default: search upward from the working directory) [env var: CASS_CONFIG]-V, --version: Show version--install-completion: Install completion for the current shell.--show-completion: Show completion for the current shell, to copy it or customize the installation.--help: Show this message and exit.
Commands:
status: Show project sync status and the local DB...init: Initialize or repair the local cass setup.pull: Fetch from Canvas and update the local...push: Preview and push pending Canvas-managed...revert: Revert local pending Canvas-managed...query: Query curated datasets, or use raw SQL as...delete: Delete the local database (cass.db).backup: Save a timestamped copy of the database to...restore: Replace the current database with a backup...view: Open the database in a browser-based viewer.canvas: Canvas LMS — browse and modify course...
cass status¶
Show project sync status and the local DB overview.
Usage:
Options:
--help: Show this message and exit.
cass init¶
Initialize or repair the local cass setup.
Usage:
Options:
--help: Show this message and exit.
cass pull¶
Fetch from Canvas and update the local database.
Usage:
Options:
--students: Pull students only--assignments: Pull assignments only--submissions: Pull submissions only--help: Show this message and exit.
cass push¶
Preview and push pending Canvas-managed changes.
Usage:
Options:
-y, --yes: Skip confirmation prompt--help: Show this message and exit.
cass revert¶
Revert local pending Canvas-managed changes since the last sync.
Usage:
Options:
-y, --yes: Skip confirmation prompt--help: Show this message and exit.
cass query¶
Query curated datasets, or use raw SQL as an explicit escape hatch.
Usage:
Arguments:
[DATASET]: Dataset to query (students, assignments, submissions, gradebook)
Options:
--where TEXT: Filter expression--order TEXT: Order expression--limit INTEGER: Limit rows (0 = all) [default: 0]--sql TEXT: Raw SQL (advanced usage)--help: Show this message and exit.
cass delete¶
Delete the local database (cass.db).
Usage:
Options:
-y, --yes: Skip confirmation prompt--help: Show this message and exit.
cass backup¶
Save a timestamped copy of the database to backups/.
Usage:
Options:
-t, --tag TEXT: Tag appended to filename-l, --list: List existing backups--help: Show this message and exit.
cass restore¶
Replace the current database with a backup file.
Usage:
Arguments:
FILE: Path to a .db backup file [required]
Options:
-y, --yes: Skip confirmation prompt--help: Show this message and exit.
cass view¶
Open the database in a browser-based viewer.
Usage:
Arguments:
[FILEPATH]: Path to a .duckdb or .db file (optional)
Options:
--port INTEGER: Port number (0 = auto-select) [default: 0]--help: Show this message and exit.
cass canvas¶
Canvas LMS — browse and modify course content.
Usage:
Options:
--help: Show this message and exit.
Commands:
login: Save a browser session and refresh it...people: Show course roster with roles and emails.files: Show course files as a tree.upload: Upload a file to the course.delete-file: Delete a file from the course.announcements: List course announcements.announce: Create an announcement.update-announcement: Update an announcement.delete-announcement: Delete an announcement.tabs: List course navigation tabs.show-tab: Make a navigation tab visible.hide-tab: Hide a navigation tab.sync: Sync cass.toml declarations to Canvas...modules: Course modules — list, create, publish,...assignments: Assignments — list, create, publish, delete.quizzes: Quizzes — list, create, publish, delete.calendar: Course calendar — list, create, update,...
cass canvas login¶
Save a browser session and refresh it automatically after a 401 rejection.
Usage:
Options:
--from-brave: Import your Canvas session from Brave on macOS.--from-chrome: Import your Canvas session from Google Chrome on macOS.--profile TEXT: Browser profile directory, such as 'Profile 1'. [default: Default]--help: Show this message and exit.
cass canvas people¶
Show course roster with roles and emails.
Usage:
Options:
--csv TEXT: Export as CSV file--save TEXT: Save output as markdown file--help: Show this message and exit.
cass canvas files¶
Show course files as a tree.
Usage:
Options:
--csv TEXT: Export as CSV file--save TEXT: Save output as markdown file--help: Show this message and exit.
cass canvas upload¶
Upload a file to the course.
Usage:
Arguments:
PATH: Local file path to upload [required]
Options:
--folder TEXT: Destination folder in Canvas--help: Show this message and exit.
cass canvas delete-file¶
Delete a file from the course.
Usage:
Arguments:
FILE_ID: Canvas file ID [required]
Options:
-y, --yes: Skip confirmation--help: Show this message and exit.
cass canvas announcements¶
List course announcements.
Usage:
Options:
--csv TEXT: Export as CSV file--save TEXT: Save output as markdown file--help: Show this message and exit.
cass canvas announce¶
Create an announcement.
Usage:
Arguments:
TITLE: Announcement title [required]
Options:
-m, --message TEXT: HTML message body [required]--help: Show this message and exit.
cass canvas update-announcement¶
Update an announcement.
Usage:
Arguments:
TOPIC_ID: Announcement (discussion topic) ID [required]
Options:
--title TEXT: New title-m, --message TEXT: New message body--help: Show this message and exit.
cass canvas delete-announcement¶
Delete an announcement.
Usage:
Arguments:
TOPIC_ID: Announcement (discussion topic) ID [required]
Options:
-y, --yes: Skip confirmation--help: Show this message and exit.
cass canvas tabs¶
List course navigation tabs.
Usage:
Options:
--csv TEXT: Export as CSV file--save TEXT: Save output as markdown file--help: Show this message and exit.
cass canvas show-tab¶
Make a navigation tab visible.
Usage:
Arguments:
ID_OR_LABEL: Tab ID or label [required]
Options:
--help: Show this message and exit.
cass canvas hide-tab¶
Hide a navigation tab.
Usage:
Arguments:
ID_OR_LABEL: Tab ID or label [required]
Options:
--help: Show this message and exit.
cass canvas sync¶
Sync cass.toml declarations to Canvas (modules, assignments, quizzes).
Compares [], [], and the quiz files named by [] against the live Canvas course. Shows a diff of create/update/skip actions. Use --apply to execute changes.
Quizzes match by title. Questions on an existing quiz are never compared or modified; only settings are updated.
Usage:
Options:
--dry-run / --apply: Show what would change (default) or apply changes [default: dry-run]--create-groups: Create assignment groups that are missing on Canvas--help: Show this message and exit.
cass canvas modules¶
Course modules — list, create, publish, delete.
Usage:
Options:
--id TEXT: Module ID or name to show items--csv TEXT: Export as CSV file--save TEXT: Save output as markdown file--help: Show this message and exit.
Commands:
create: Create a new module.publish: Publish a module (or all modules with --all).unpublish: Unpublish a module.delete: Delete a module.add-item: Add an item to a module.
cass canvas modules create¶
Create a new module.
Usage:
Arguments:
NAME: Module name [required]
Options:
--position INTEGER: Position in list--help: Show this message and exit.
cass canvas modules publish¶
Publish a module (or all modules with --all).
Usage:
Arguments:
[ID_OR_NAME]: Module ID or name
Options:
--all: Publish all modules--help: Show this message and exit.
cass canvas modules unpublish¶
Unpublish a module.
Usage:
Arguments:
ID_OR_NAME: Module ID or name [required]
Options:
--help: Show this message and exit.
cass canvas modules delete¶
Delete a module.
Usage:
Arguments:
ID_OR_NAME: Module ID or name [required]
Options:
-y, --yes: Skip confirmation--help: Show this message and exit.
cass canvas modules add-item¶
Add an item to a module.
Usage:
Arguments:
ID_OR_NAME: Module ID or name [required]
Options:
--type TEXT: Item type (Assignment, Quiz, File, Page, etc.) [required]--content-id INTEGER: Canvas ID of the content [required]--title TEXT: Item title (defaults to content name)--help: Show this message and exit.
cass canvas assignments¶
Assignments — list, create, publish, delete.
Usage:
Options:
--id TEXT: Assignment ID or name for details--csv TEXT: Export as CSV file--save TEXT: Save output as markdown file--help: Show this message and exit.
Commands:
create: Create a new assignment.publish: Publish an assignment.unpublish: Unpublish an assignment.delete: Delete an assignment.groups: Assignment groups — list, create, delete.
cass canvas assignments create¶
Create a new assignment.
Usage:
Arguments:
NAME: Assignment name [required]
Options:
--group TEXT: Assignment group name (e.g. 'Homeworks', 'Labs') [required]--points FLOAT: Points possible [default: 0]--due TEXT: Due (YYYY-MM-DD HH:MM in course time, or ISO 8601)--type TEXT: Submission type (online_url, online_upload, online_text_entry, etc.) [default: online_url]--publish: Publish immediately-d, --description TEXT: HTML description--help: Show this message and exit.
cass canvas assignments publish¶
Publish an assignment.
Usage:
Arguments:
ID_OR_NAME: Assignment ID or name [required]
Options:
--help: Show this message and exit.
cass canvas assignments unpublish¶
Unpublish an assignment.
Usage:
Arguments:
ID_OR_NAME: Assignment ID or name [required]
Options:
--help: Show this message and exit.
cass canvas assignments delete¶
Delete an assignment.
Usage:
Arguments:
ID_OR_NAME: Assignment ID or name [required]
Options:
-y, --yes: Skip confirmation--help: Show this message and exit.
cass canvas assignments groups¶
Assignment groups — list, create, delete.
Usage:
Options:
--csv TEXT: Export as CSV file--save TEXT: Save output as markdown file--help: Show this message and exit.
Commands:
create: Create an assignment group.delete: Delete an assignment group and every...
cass canvas assignments groups create¶
Create an assignment group.
Usage:
Arguments:
NAME: Group name (e.g. 'Homeworks') [required]
Options:
--weight FLOAT: Percent of final grade (weighted courses only)--position INTEGER: Position in list--help: Show this message and exit.
cass canvas assignments groups delete¶
Delete an assignment group and every assignment in it.
Usage:
Arguments:
ID_OR_NAME: Group ID or name [required]
Options:
-y, --yes: Skip confirmation--help: Show this message and exit.
cass canvas quizzes¶
Quizzes — list, create, publish, delete.
Usage:
Options:
--id TEXT: Quiz ID or title for settings and questions--csv TEXT: Export as CSV file--save TEXT: Save output as markdown file--help: Show this message and exit.
Commands:
export: Export a quiz as a quiz file (settings and...responses: Download every student's answers to a...create: Create a quiz from a quiz file (--from) or...update: Update a quiz's settings from a quiz file...publish: Publish a quiz.unpublish: Unpublish a quiz.delete: Delete a quiz.
cass canvas quizzes export¶
Export a quiz as a quiz file (settings and questions).
Usage:
Arguments:
ID_OR_NAME: Quiz ID or title [required]
Options:
-o, --output TEXT: Write to this file instead of stdout--help: Show this message and exit.
cass canvas quizzes responses¶
Download every student's answers to a classic quiz or survey.
Usage:
Arguments:
ID_OR_NAME: Quiz ID or title [required]
Options:
--all-attempts: Every attempt, not only each student's latest--csv TEXT: Write responses to a CSV file--wide: Canvas's report as is: one row per student, a column per question--help: Show this message and exit.
cass canvas quizzes create¶
Create a quiz from a quiz file (--from) or as an empty placeholder.
Usage:
Arguments:
[TITLE]: Quiz title (omit when using --from)
Options:
--from TEXT: Quiz file (TOML) with settings and questions--type TEXT: Quiz type (practice_quiz, assignment, graded_survey, survey) [default: assignment]--group TEXT: Assignment group name--points FLOAT: Points (graded_survey only)--due TEXT: Due (YYYY-MM-DD HH:MM in course time, or ISO 8601)--unlock TEXT: Unlock time (course time or ISO 8601)--lock TEXT: Lock time (course time or ISO 8601)--attempts INTEGER: Allowed attempts (-1 = unlimited) [default: 1]--time-limit INTEGER: Time limit in minutes (0 = none) [default: 0]-d, --description TEXT: HTML description--publish: Publish immediately--create-groups: Create a missing assignment group--help: Show this message and exit.
cass canvas quizzes update¶
Update a quiz's settings from a quiz file (questions are not touched).
Usage:
Arguments:
ID_OR_NAME: Quiz ID or title [required]
Options:
--from TEXT: Quiz file with the desired settings [required]--help: Show this message and exit.
cass canvas quizzes publish¶
Publish a quiz.
Usage:
Arguments:
ID_OR_NAME: Quiz ID or title [required]
Options:
--help: Show this message and exit.
cass canvas quizzes unpublish¶
Unpublish a quiz.
Usage:
Arguments:
ID_OR_NAME: Quiz ID or title [required]
Options:
--help: Show this message and exit.
cass canvas quizzes delete¶
Delete a quiz.
Usage:
Arguments:
ID_OR_NAME: Quiz ID or title [required]
Options:
-y, --yes: Skip confirmation--help: Show this message and exit.
cass canvas calendar¶
Course calendar — list, create, update, delete events.
Usage:
Options:
--from TEXT: Only events on or after this date (YYYY-MM-DD)--to TEXT: Only events on or before this date (YYYY-MM-DD)--csv TEXT: Export as CSV file--save TEXT: Save output as markdown file--help: Show this message and exit.
Commands:
create: Create a calendar event.update: Update a calendar event (only the given...delete: Delete a calendar event.
cass canvas calendar create¶
Create a calendar event.
Usage:
Arguments:
TITLE: Event title [required]
Options:
--start TEXT: Start (YYYY-MM-DD HH:MM in course time, or ISO 8601) [required]--end TEXT: End (YYYY-MM-DD HH:MM in course time, or ISO 8601)--location TEXT: Location name-d, --description TEXT: HTML description--all-day: All-day event (times ignored)--help: Show this message and exit.
cass canvas calendar update¶
Update a calendar event (only the given fields change).
Usage:
Arguments:
EVENT_ID: Calendar event ID [required]
Options:
--title TEXT: New title--start TEXT: New start (course time or ISO 8601)--end TEXT: New end (course time or ISO 8601)--location TEXT: New location-d, --description TEXT: New HTML description--all-day / --timed: Make all-day or timed--help: Show this message and exit.
cass canvas calendar delete¶
Delete a calendar event.
Usage:
Arguments:
EVENT_ID: Calendar event ID [required]
Options:
-y, --yes: Skip confirmation--help: Show this message and exit.