Skip to main content
logo

Canvas-Sync

Ask DeepWiki PyPI License uv Ruff Last Commit
Synchronize Canvas LMS courses and files to a local folder, preserving course structure and organization.

#Canvas   #Instructure   #LMS   #Synchronize   #Education


Table of Contents 📚


Overview 📚

Overview

Canvas-Sync mirrors your Canvas course structure locally so you can browse course materials offline. It downloads modules, assignments, pages, files, and optional external resources into a tidy folder layout.

Key Features include:

  • Automatic synchronization of modules, assignments, and files
  • Preserves course/module/subfolder structure locally
  • Configurable: choose which content types to sync
  • Optional download of external files referenced in descriptions
  • Simple, user-friendly CLI with interactive setup (Typer + Rich)
  • Rich progress bars and improved sync status output

Quick Start 🚀

Step 1 — Generate a Canvas API token

  • Log in to your Canvas instance → Account → Settings → Approved Integrations → New Access Token.
  • Copy the token and keep it secure. You will use it during setup.

Auth Token

Step 2 — Install Canvas-Sync

See the Installation section below for all options.

Step 3 — Launch and configure

Run canvas setup to launch the interactive setup:

  1. Choose a local sync folder
  2. Provide your Canvas domain (without https://, e.g. example.instructure.com)
  3. Enter the API token from Step 1
  4. Select the courses to sync

After setup, run canvas sync to begin downloading course content.


Installation 📦

Pick the method that best fits your workflow:

Using uv (recommended):

uv add canvas-sync-py
uv pip install canvas-sync-py

With pip:

pip install canvas-sync-py

From source (developer mode):

git clone https://github.com/Sang-Buster/Canvas-Sync.git
cd Canvas-Sync
pip install -e .
PYTHONPATH=src canvas --help

Usage ⚙️

Command Description
canvas --help Launch CLI and show help message
canvas setup Re-run setup and update saved values
canvas info Show current saved settings
canvas sync Start synchronization using saved settings
canvas reset Reset and remove saved encrypted settings (use when you forgot your password)

Security & Privacy 🔒

Features Description
Data stays local and encrypted All settings and your Canvas API token are stored locally on your device using AES encryption with a password-derived key.
Read-only access Canvas-Sync only downloads course content — it never makes changes to your Canvas account.
Revoke access anytime Use canvas setup to update your settings or canvas reset to delete them completely.
Protect your token Never share your Canvas API token. If you believe it's compromised, revoke it in Canvas immediately and run canvas reset.

Links 🔗

Metadata

Release files for canvas-sync-py 0.5.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-sync-py 0.5.0
File Size Uploaded
canvas_sync_py-0.5.0.tar.gz 30.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for canvas-sync-py 0.5.0
File Interpreter ABI Platform
canvas_sync_py-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 75.0 kB

Release files / canvas_sync_py-0.5.0.tar.gz

Download URL canvas_sync_py-0.5.0.tar.gz
Size 30.1 kB
Tags Source
SHA-256 checksum
How to use checksums
73eb8ce7ee17193450476e2287a1b44611133961322a25400361937101d5f86a
BLAKE2b-256 checksum
How to use checksums
4070fe01f6e7464dcb50919ba4cff8237baae3041b87c3f6bd000c5750e20d80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.10

Release files / canvas_sync_py-0.5.0-py3-none-any.whl

Download URL canvas_sync_py-0.5.0-py3-none-any.whl
Size 44.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a037975d74bb7410613faa1eac41f954c9c8ae0cd35dc582c4aa4d461424226
BLAKE2b-256 checksum
How to use checksums
7a5e0ca949243cd5d1e7f228782bd1feb6d9d7199968d5511f811679c1d5eff9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.10

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.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