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.9.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.9.0
File Size Uploaded
canvas_sak-1.9.0.tar.gz 80.1 kB Details

Built distribution (wheel)

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

Total release size: 151.0 kB

Release files / canvas_sak-1.9.0.tar.gz

Download URL canvas_sak-1.9.0.tar.gz
Size 80.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f07e65420ef3ce1b09fd6772a19f5b41fdaf3e70da63cc3337cc1dfa4007a92d
BLAKE2b-256 checksum
How to use checksums
2b431e5cf70e5d2d5505dcbc234ac28a2eefe56dc59f83f187645bb21f5bfac2
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.9.0-py3-none-any.whl

Download URL canvas_sak-1.9.0-py3-none-any.whl
Size 70.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d74d97ed053a90ed2b1d7225645ce89ef9fb72ee1ce4d9c64c5ce00dc7ffa161
BLAKE2b-256 checksum
How to use checksums
feed91827b6e3da99a170bfdb8dba8c01c40437fe070bb9e7971f17563ec136b
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

This release

1.9.0 This release

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