Joshua Wortz73 downloadsReceives Canvas data from a browser extension and syncs it into your vault.
Seamlessly sync Canvas LMS courses, modules, assignments, discussions, grades, files, and calendars directly into your Obsidian knowledge vault as clean, structured, and cross-linked Markdown notes.
Canvas Sync provides two flexible sync workflows depending on your institutional setup:
127.0.0.1).Both ingestion pathways feed into a unified rendering engine:
Grades.md), score breakdowns, submitted files, and instructor feedback comments.Discussions.md).Calendar.md).## 📝 Personal Notes on any course note — personal content is automatically preserved across all future syncs without tag clutter.ENAMETOOLONG errors.[[wikilinks]] with pipe escaping ([[path|alias]])..pdf, .docx, .pptx, .xlsx, .zip) with configurable size and extension filters.| 1. Interactive Course Selector (REST API) | 2. Companion Browser Extension (Zero-Token) |
|---|---|
![]() |
![]() |
| 3. Canvas API & Bridge Settings | 4. Granular Asset & File Downloads |
|---|---|
![]() |
![]() |
https://github.com/SixFiveMil/obsidian-canvas-sync.main.js, manifest.json, and styles.css from the Latest GitHub Release.<Vault>/.obsidian/plugins/canvas-sync-bridge/ and restart Obsidian.Ctrl/Cmd + P and run Canvas Sync: Select & sync courses (or click the 🎓 ribbon icon) to sync.Courses are written to your vault using the configured template (default: {{courseCode}} - {{courseName}}):
Canvas/
└── CS-101 - Introduction to Computer Science/
├── Course.md # Master course index, metadata, and quick navigation
├── Home.md # Course home page with banner and graphic links
├── Syllabus.md # Complete course syllabus and policies
├── Tasks.md # Assignment checklists, due dates, points, and submissions
├── Grades.md # Gradebook table with scores, percentages, and status
├── Discussions.md # Discussion board topics with full student reply trees
├── Calendar.md # Course events, milestones, and Zoom meeting links
├── Modules/
│ ├── 01 - Week 1 - Foundations & Architecture/
│ │ ├── 01 - Page - Lecture Overview.md
│ │ ├── 02 - Assignment - Lab 1 Analysis.md
│ │ └── 03 - Discussion - Class Introductions.md
│ └── 02 - Week 2 - Algorithms & Data Structures/
│ ├── 01 - Page - Algorithm Complexity.md
│ └── 02 - Assignment - Problem Set 2.md
├── Files/ # Downloaded PDFs, DOCX, slides, spreadsheets, and archives
└── Attachments/ # Embedded images, course banners, and diagrams
# Clone repository
git clone https://github.com/SixFiveMil/obsidian-canvas-sync.git
cd obsidian-canvas-sync
# Install dependencies (Node.js 20+ required)
npm install
# Run unit tests
npm test
# Type-check TypeScript files
npm run typecheck
# Build Obsidian plugin
npm run build
The browser extension source code, pre-packaged .zip release files, and store deployment pipelines are maintained in a dedicated repository:
127.0.0.1:27125) only runs when explicitly toggled on in Obsidian settings.chrome-extension://, moz-extension://) and custom application headers..obsidian/plugins/canvas-sync-bridge/data.json inside your local vault.Developed and maintained by Joshua A. Wortz (SixFiveMil).
Licensed under the MIT License.