Skip to main content

Synchronize modules, assignments and files from Canvas by Instructure to your local computer

Project description

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

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 ⭐

Overview

  • 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)

Quick Start 🚀

Follow these steps to get up and running quickly.

  1. Generate a Canvas API token

    • Log in to your Canvas instance → AccountSettingsApproved IntegrationsNew Access Token.
    • Copy the token and keep it secure. You will use it during setup.

    Auth Token

  2. Install Canvas-Sync (pick one)

    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
    
  3. Launch and configure

    • Run canvas to launch the interactive setup. Choose choose a local sync folder, provide your Canvas domain, the API token from step 1, and select courses to be synced.
    • After setup, run canvas sync to begin downloading course content.
  4. Usage, Configuration, and Common Flags

    • 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)

    Configuration notes:

    • Settings are stored encrypted locally. Use canvas --setup to change them or canvas reset to remove them.

Security & Privacy 🔒

  • Your Canvas API token is encrypted locally using AES and a password-derived key.
  • Canvas-Sync is read-only: it only downloads course content and does not modify Canvas.
  • Do not share your token; if compromised, revoke it in Canvas and run canvas reset.

Links 🔗

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

canvas_sync_py-0.2.0.tar.gz (30.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

canvas_sync_py-0.2.0-py3-none-any.whl (45.6 kB view details)

Uploaded Python 3

File details

Details for the file canvas_sync_py-0.2.0.tar.gz.

File metadata

  • Download URL: canvas_sync_py-0.2.0.tar.gz
  • Upload date:
  • Size: 30.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.10

File hashes

Hashes for canvas_sync_py-0.2.0.tar.gz
Algorithm Hash digest
SHA256 463196c572d36566f356a7bcb6375eb60d030ee01291dcb0a6b2cea0d173f4c8
MD5 2ac7cf06edf0272e1d27199f627a31ff
BLAKE2b-256 275bee908f1de1344a09c7eb1f4072ef7fb82fef1de746e5dade66ed1f2b391d

See more details on using hashes here.

File details

Details for the file canvas_sync_py-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for canvas_sync_py-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45fb8ce61f20b3eb3616a427e19ef9b828acf329f5dcc21de989e6e8a12bdab5
MD5 2d7b4ac7f7f8048b4c4b22d1c034da52
BLAKE2b-256 8af0f4e8937383e116fb34d0c150e83f9dae6e1638f9bf2fe62fe06eeac9ce81

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page