SlideShelf is an open-source cross-browser extension (Google Chrome & Mozilla Firefox) that eliminates the manual chaos of college downloads. When you browse Canvas LMS, SlideShelf scans your lecture slides and handouts, uses Google Gemma 4 to extract the lecture topic and title header, renames each file with a sensible standardized name, organizes them directly into your storage hierarchy
Every student knows the pain: by mid-semester, your ~/Downloads folder is a graveyard of files named slides_week3_final_v2.pdf, handout_ch4.pdf, and download(3).pdf, mixed in with receipts, memes, and ticket stubs. Finding lecture notes before a midterm takes 20 minutes of frantic searching.
SlideShelf solves this completely inside your browser:
- Zero-effort Organization: Injects an intelligent widget into Canvas LMS that discovers all slides & handouts on module pages.
- AI Renaming with Google Gemma: Looks inside the slide and header to identify the lecture sequence and topic (e.g.
slides_week03_masterthm_v2.pdf➔03_Master_Theorem_Deep_Dive.pdf). - Structured Storage Hierarchy: Downloads files automatically into:
Example:
user-selected-folder / semester-season-and-year / class-name / cleanFileName.pdf~/SlideShelf_Notes/ └── Fall-2024/ ├── CS-3343-Analysis-of-Algorithms/ │ ├── 01_Asymptotic_Notation_Foundations.pdf │ ├── 02_Divide_and_Conquer_Recurrences.pdf │ └── 03_Master_Theorem_Deep_Dive.pdf └── BIO-1010-General-Biology/ ├── 01_Cellular_Structure_Membranes.pdf └── 02_Photosynthesis_Light_Reactions.pdf - Choose how to organize your files: Choose between lightning-fast Google Gemma Cloud API or No internet? Use your own local Gemma AI (steps provided in the setup guide).
- Node.js v18+ (tested on v20 and v22)
- npm v9+
git clone https://github.com/YOUR-USERNAME/scholar-sync.git
cd "scholar-sync/extension"
npm installnpm run dev:chromenpm run dev:firefoxExtension.js will automatically bundle the extension and launch a dedicated browser profile with live reload!
# Build for Chrome (Manifest V3)
npm run build:chrome
# Build for Firefox (Manifest V2/V3 compatible)
npm run build:firefox
# Build both simultaneously
npm run build:allArtifacts are emitted to dist/chrome and dist/firefox.
Go to your canvas course then interact with the extension pop up to configure what files to download and where to store them. For AI configuration, interact with the extension icon at the top right of your browser and select configure at the bottom of the pop up. Follow the instructions to connect your desired LLM.
You can toggle between using the cloud based Gemma API or using a local Gemma model via Ollama.
Run Gemma directly on your own laptop with Ollama or LM Studio. No student data leaves your machine.
- Install Ollama:
# macOS / Linux curl -fsSL https://ollama.com/install.sh | sh # Or via Homebrew on macOS brew install ollama
- Start Ollama with Extension CORS enabled:
OLLAMA_ORIGINS="chrome-extension://*,moz-extension://*,*" ollama serve - Pull Google Gemma:
# Lightweight (Runs on 4GB RAM) ollama run gemma2:2b # Or Gemma 4 / Gemma 2 9B ollama run gemma2:9b
- Open the SlideShelf Extension ➔ Settings ➔ Select Local Gemma Model ➔ Click Test Gemma Connectivity. You're ready!
If you prefer not to run models locally:
- Get a free API key from Google AI Studio.
- Open SlideShelf ➔ Settings ➔ Select Gemma Cloud API.
- Paste your API key and choose
gemma-4-itorgemma-2-9b-it. - Click Test Gemma Connectivity and save!
We welcome all students and developers! Read our CONTRIBUTING.md guide for beginner-friendly step-by-step instructions.
This project is open-source under the MIT License.