Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Edu Sync


Edu Sync is a command line application that synchronizes the contents of Moodle instances to your computer.

It accesses the Moodle instance via the Moodle mobile web services API, which is also used by the official Moodle mobile app. To be able to use Edu Sync with a Moodle instance, the Moodle mobile web services must explicitly be enabled by the instance.

This application is written in Rust with a focus on speed. Downloads are performed concurrently, which is beneficial when syncing many small files.


You can view more detailed help information with:

$ edu-sync-cli help
  1. Add an account:

    • Using username and password:

      $ edu-sync-cli add --username <username> ~/download-dir
      # You will be prompted to enter your password
    • Using a token for the Moodle mobile web service — some instances show it in preferences/security keys:

      $ edu-sync-cli add ~/download-dir
      # You will be prompted to enter your token
  2. Fetch available courses (populates the config file with courses):

    $ edu-sync-cli fetch
  3. Configure which courses to sync in the config file. Get the config path with:

    $ edu-sync-cli config
  4. Sync:

    $ edu-sync-cli sync


The binary name for Edu Sync is edu-sync-cli.

Archives of precompiled binaries for Edu Sync are available for Windows, macOS and Linux.

If you're an Arch Linux user, then you can install Edu Sync from the Arch User Repository.


This project is licensed under

Trademark Notice

Moodle™ is a registered trademark of Moodle Pty Ltd in many countries. Edu Sync is not sponsored, endorsed, licensed by, or affiliated with Moodle Pty Ltd.