
Security News
New CVE Forecasting Tool Predicts 47,000 Disclosures in 2025
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.
github.com/aidanaden/canvas-sync
CLI to download (course files, videos, etc) & view (deadlines, events, announcements) from Canvas
Brew is a package manager for macOS (or linux) that helps you install packages easily - more info here
To install Brew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
To install canvas-sync with Brew:
brew install aidanaden/tools/canvas-sync
Scoop is a package manager for windows that helps you install programs from the command line (Brew but for windows) - more info here
To install Scoop, launch powershell and run:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
To install canvas-sync with Scoop:
scoop bucket add scoop-bucket https://github.com/aidanaden/scoop-bucket.git
scoop install canvas-sync
You can also download directly from the releases page
Warning: skip if you don't know what zsh is
Run the following code block to add autocompletion for canvas-sync to your shell.
echo "\n\nif type brew &>/dev/null
then
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
autoload -Uz compinit
compinit
fi" >> ~/.zshrc && source ~/.zshrc
echo "if type brew &>/dev/null
then
HOMEBREW_PREFIX="$(brew --prefix)"
if [[ -r "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh" ]]
then
source "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh"
else
for COMPLETION in "${HOMEBREW_PREFIX}/etc/bash_completion.d/"*
do
[[ -r "${COMPLETION}" ]] && source "${COMPLETION}"
done
fi
fi" >> ~/.bash_profile && source ~/.bash_profile
echo "if test -d (brew --prefix)"/share/fish/completions"
set -gx fish_complete_path $fish_complete_path (brew --prefix)/share/fish/completions
end
if test -d (brew --prefix)"/share/fish/vendor_completions.d"
set -gx fish_complete_path $fish_complete_path (brew --prefix)/share/fish/vendor_completions.d
end" >> ~/.config/fish/config.fish && source ~/.config/fish/config.fish
If installed using brew, simply run:
canvas-sync upgrade
If installed using scoop, simply run:
scoop update; scoop update canvas-sync
You can also download the latest version directly from the releases page
To set up canvas-sync, run the init
command:
canvas-sync init
First, enter the directory to store all downloaded canvas data (files, videos, etc) e.g. $HOME/Desktop/canvas
, if left blank all downloaded data will be stored in $HOME/canvas-sync/data
Next, enter your school's canvas website url, if left blank it'll be set to https://canvas.nus.edu.sg
(i'm from nus after all)
You'll be asked for your username and password to log in to canvas (required for video downloads)
After logging in, your config will be successfully created and all other commands will work, check them out here
All configuration is done in the $HOME/canvas-sync/config.yaml
file.
4 values can be configured:
$HOME/canvas-sync/data
https://canvas.nus.edu.sg
init
command to download from canvas directly, if not filled you'll need to run canvas-sync init
To create a config file, run canvas-sync init
Creates a new config file in the default directory $HOME/canvas-sync
Downloads data (files, videos, etc) from canvas, overwrites all existing data
View documentation via pull files -h
View documentation via pull videos -h
Updates downloaded data (files, videos, etc) from canvas
View documentation via update files -h
View documentation via update videos -h
Display data from canvas (deadlines, events, announcements, etc)
Display past/future assignment deadlines
Display past/future lectures/announcements
Display people from a given course code
If there are any other questions, please create an issue here, if it's a common enough issue i'll add it to the FAQ section here :)
MIT
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.