Automation · Study workflow

StudySync

Your Canvas course files, always up to date on your own computer. StudySync signs in to Canvas the way you do, checks every course for new or changed files, then downloads them and sorts them into tidy folders.

Free to useAny school that uses CanvasNo API token neededRuns only on your computer

What it does

Every time it runs (by hand, or automatically on a schedule), StudySync goes through four steps.

  1. Signs in, like you would

    It uses your normal school login through a real browser window: Feide, Microsoft, Google, or whatever your school uses, MFA included. After that it remembers the session and renews it quietly in the background. It only asks you to sign in again when your school's own login has expired.

  2. Scans every course you choose

    It lists all files in each course and compares them with what you already have. Courses that hide the Files tab are no problem: it finds the files through modules, pages and assignments instead.

  3. Downloads and sorts

    New files are downloaded and sorted into folders by type: lectures, workshops, exams, assignments, book chapters and course admin. If a teacher replaces a file, the new version takes its place and the old one is moved to _previous_versions, so you never lose your old copy.

  4. Tells you the truth

    You get a short summary of what is new or updated. If something goes wrong, like an expired login or a network problem, it says so plainly instead of pretending your files are current. A --verify check compares Canvas with your disk and lists anything missing.

What a course folder looks like afterwards:

School/
└── TECH4/
    └── canvas/
        ├── lectures/            Lecture 08 – Integer programming III.pdf …
        ├── workshops/           Workshop 5 – Solutions.pdf …
        ├── exams/
        ├── assignments/
        ├── admin/               Course schedule.pdf
        └── _previous_versions/  Course schedule__2026-10-14.pdf

Does it work at my school?

Yes, if your school uses Canvas (by Instructure). Nothing in StudySync is tied to one school. I built it at NHH, but you just tell it your own Canvas address.

Works with

  • Any Canvas address, like yourschool.instructure.com or your school's own Canvas domain
  • Any login your school uses: Feide, Microsoft, Google, its own single sign-on, with MFA
  • Students who can't create a Canvas API token (most can't)
  • Tested on macOS. Windows and Linux should work too, but are untested

Good to know

  • It only sees what you can already see in Canvas
  • How often you need to sign in again depends on your school's login rules
  • Not made by or affiliated with Instructure or any school
  • Check your school's IT rules, and keep course material for your own use

Set it up

You don't install anything yourself: you give StudySync to Claude, and Claude does the rest. It takes about five minutes.

  1. Download StudySync

    Download studysync.zip. No need to unzip it.

  2. Give it to Claude

    Open Claude Code (the Code tab in the Claude desktop app), drag the zip into the chat and say: "Install this skill and set up StudySync for my Canvas courses." Claude adds the skill and installs everything it needs.

  3. Answer three questions

    Claude asks for your school's Canvas address, where the files should go, and which courses to follow. It shows you your course list, so you just pick.

  4. Sign in once

    A browser window opens on your school's normal login page. Sign in yourself and approve MFA on your phone if asked. Claude never sees or asks for your password.

  5. That's it

    Claude runs the first sync and tells you what it downloaded. Ask it to run StudySync twice a day, and new lecture slides show up on their own.

Use another AI? StudySync also works with other coding agents that run on your computer, like Codex, Cursor or Gemini CLI (not tested yet). Give it the zip and say: "Read SKILL.md and set up StudySync for me." Chat-only AIs on a website won't work, because StudySync has to run on your own computer.

Prefer to do it by hand?

You need Python 3. Install the requirements:

pip install requests playwright
playwright install chromium

Unzip and put the skill where Claude Code finds it:

mv studysync ~/.claude/skills/

Or skip Claude and run the scripts yourself once ~/.canvas-sync/config.json exists:

python3 scripts/canvas_login.py --url https://yourschool.instructure.com
python3 scripts/canvas_sync.py --list-courses
python3 scripts/canvas_sync.py --sync
python3 scripts/canvas_sync.py --verify

Privacy and safety

Built to be boring in all the right ways.

It does

  • Run entirely on your own computer
  • Only read from Canvas: it downloads, nothing else
  • Keep your login session in ~/.canvas-sync/secrets, readable only by you
  • Archive old versions instead of deleting them

It never

  • Asks for your password or an API token
  • Sends your files or login anywhere, including to me
  • Submits, uploads or changes anything in Canvas
  • Touches files you put in your course folders yourself

Questions

Do I need a Canvas API token?

No. Most schools don't let students create one, which is exactly why StudySync signs in through your normal login instead. If your school does give you a token, you can add it to the config, but it's never required.

Does it have to be Claude?

No. It's made for Claude Code, but any AI coding agent that runs on your computer should work, like Codex, Cursor or Gemini CLI. Those haven't been tested yet. The regular Claude or ChatGPT chat on a website won't work, because it can't run anything on your computer.

What happens when my login expires?

Canvas sessions expire every few days. StudySync renews them quietly in the background. Only when your school's own login has expired (how long that lasts depends on your school) does it stop and ask you to sign in again, with the exact command to run. It never pretends your files are up to date when they aren't.

Will it overwrite my notes?

No. It only manages the files it downloaded itself. Anything you add to your course folders is left alone. If a teacher updates a file, your old copy goes to _previous_versions instead of disappearing.

Does it work without Claude?

Yes. Claude makes the setup painless, but the two Python scripts also run on their own. See "Prefer to do it by hand?" in the setup guide.

Something isn't working. What do I do?

Tell Claude what went wrong: most first-run problems are missing requirements, and Claude can install them. For anything else, message me on LinkedIn.

Get StudySync

One small zip: a skill file and two Python scripts. Free to use.

Download StudySync (13 KB) ↓