Skip to main content

canvas-sak — the canvas swiss army knife

CI PyPI License

do the repetitive parts of teaching in canvas from your terminal — 32 commands for the things the web ui makes you click thirty times. every command that changes your course shows you what it would do first, and stops.

# reschedule an entire course for the new semester
canvas-sak list-due-dates "CS 146" > dates.txt   # dump every date
$EDITOR dates.txt                                # fix the year, shift a week
canvas-sak set-due-dates "CS 146" dates.txt      # preview — nothing is written yet
canvas-sak set-due-dates "CS 146" dates.txt --no-dryrun

also: pull a whole course down as markdown and push it into next semester's shell, run submissions through stanford moss, message every student, bulk-set letter grades, and collect the information you'll want when someone asks for a recommendation letter two years from now.

▶️ see what every command does, without installing anything — generated from the tool itself


install

pip install canvas-sak

or, to keep it out of your main python environment:

pipx install canvas-sak      # or: uv tool install canvas-sak

needs python 3.10+. then run canvas-sak help-me-setup, which walks you through creating a canvas access token and tells you exactly where to put it.

to upgrade later: pip install --upgrade canvas-sak.

every version ships to pypi — that's the only place to get it, and this repo publishes no downloads of its own. what changed in each version is in CHANGELOG.md.

documentation

contributing

contributions are welcome — see CONTRIBUTING.md.

Open in GitHub Codespaces

that gives you a working dev environment with nothing to install. the test suite mocks the canvas api, so you can develop without a canvas account or a token.

documentation is the biggest gap right now and is a genuinely valuable place to start — see the good first issues.

community

  • discussions — questions, ideas, and show-and-tell
  • using this to run a real course? please tell us. the issue tracker only ever hears from people something broke for, so without this we have no idea whether anyone is out there.
  • report a bug — please redact student names and ids

license

released into the public domain under the Unlicense.

Metadata

Release files for canvas-sak 1.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for canvas-sak 1.10.0
File Size Uploaded
canvas_sak-1.10.0.tar.gz 80.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for canvas-sak 1.10.0
File Interpreter ABI Platform
canvas_sak-1.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 151.4 kB

Release files / canvas_sak-1.10.0.tar.gz

Download URL canvas_sak-1.10.0.tar.gz
Size 80.4 kB
Tags Source
SHA-256 checksum
How to use checksums
640ccc5b768c0d20328d8f63c513c74ac64a176314ded16f994263d89e1b3eb9
BLAKE2b-256 checksum
How to use checksums
f3e055d065553548440597742682ff4a7a37abe10b357984e676d61cf3098853
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / canvas_sak-1.10.0-py3-none-any.whl

Download URL canvas_sak-1.10.0-py3-none-any.whl
Size 71.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b32e95715c05f46f70098f4cc3620e38d3a884c671ea49df7ea8784f3653450d
BLAKE2b-256 checksum
How to use checksums
a137096fca9346d56ef8e1eb76cbef86443f44907366abcf7adc74ac65bf4746
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

1.10.0 This release

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.27

2 release files

1.0.26

2 release files

1.0.25

2 release files

1.0.24

2 release files

1.0.20

2 release files

1.0.19

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page