Canvas Sync Bridge
pendingby SixFiveMil
Receives Canvas data from a browser extension and syncs it into your vault.
Canvas Sync Bridge (Obsidian Plugin)
This plugin runs a localhost HTTP server and writes incoming Canvas course data to Markdown files in your vault.
Build
From repo root:
npm installnpm run build:plugin
Install in Obsidian
- Open your vault folder.
- Create plugin folder:
.obsidian/plugins/canvas-sync-bridge
- Build the plugin with
npm run build:plugin. - Copy these files from
apps/obsidian-plugin:manifest.jsonmain.js
- Enable Canvas Sync Bridge in Obsidian Community Plugins.
Configure
Plugin settings:
- Listen Port: default
27125 - Root Folder: default
Canvas - Store Raw Payload: optional debug JSON dump
Output Layout
For each course:
Canvas/<Course Name> (<Course ID>)/Course.mdCanvas/<Course Name> (<Course ID>)/Home.mdwhen course home content is availableCanvas/<Course Name> (<Course ID>)/Syllabus.mdwhen syllabus content is availableCanvas/<Course Name> (<Course ID>)/Modules/<NN - Module Name>/<NN - Type - Title>.mdCanvas/<Course Name> (<Course ID>)/Tasks.mdCanvas/<Course Name> (<Course ID>)/Discussions.mdCanvas/<Course Name> (<Course ID>)/Calendar.md
Assignments preserve descriptions, tables, and rubric details when Canvas exposes them.
Release Files
For an Obsidian community release, the GitHub release must include:
manifest.jsonmain.js
The GitHub release tag must match the version in manifest.json exactly, for example 0.1.0.
Security Note
The listener binds to 127.0.0.1 only, not your network interface.
The bridge only accepts requests from browser extension origins (chrome-extension:// or moz-extension://) and requires the X-Canvas-Sync-Client: canvas-browser-extension request header.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.