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.8.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.8.0
File Size Uploaded
canvas_sak-1.8.0.tar.gz 81.5 kB Details

Built distribution (wheel)

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

Total release size: 153.8 kB

Release files / canvas_sak-1.8.0.tar.gz

Download URL canvas_sak-1.8.0.tar.gz
Size 81.5 kB
Tags Source
SHA-256 checksum
How to use checksums
04df2c03b67b3a710d14574ad39be7381c612e50900a7c76a15a2b0113ec81e1
BLAKE2b-256 checksum
How to use checksums
b3876ea7396f6d64f7c391983129f3584c97b887f7e19a51ce294153eaa46f49
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.8.0-py3-none-any.whl

Download URL canvas_sak-1.8.0-py3-none-any.whl
Size 72.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a1b6fd323d984cf678e2f27e2fcdce1c03617dd153eff1654dce9fab06ed6143
BLAKE2b-256 checksum
How to use checksums
c267b9d01763e630d8849bb7c988bf9b734550d0d44fa7b85315dcf649b94dd5
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

This release

1.8.0 This release

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