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.4.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.4.0
File Size Uploaded
canvas_sak-1.4.0.tar.gz 75.9 kB Details

Built distribution (wheel)

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

Total release size: 145.4 kB

Release files / canvas_sak-1.4.0.tar.gz

Download URL canvas_sak-1.4.0.tar.gz
Size 75.9 kB
Tags Source
SHA-256 checksum
How to use checksums
410b0305cc932f2d554970486bffa745f78cfa84ee20543fa310796bbe938196
BLAKE2b-256 checksum
How to use checksums
6ad58473889e3ad3b51d874d399d9e638673325b77b43a86f1401e0ded370886
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.4.0-py3-none-any.whl

Download URL canvas_sak-1.4.0-py3-none-any.whl
Size 69.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7aa5c1dbd1658b4c75040d5cebfdcc3a6c47218687901c6ce6773d8fb26b4921
BLAKE2b-256 checksum
How to use checksums
075af2fd91f4b7318d1e9fb383635a88b0aa04b701ed09b04d2f33c773a9f257
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

1.10.0

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

This release

1.4.0 This release

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