🎓 Canvas Completer
A CLI tool to help manage Canvas LMS assignments. Syncs your courses, assignments, and course materials locally for easy access and AI-assisted homework help.
✨ Features
- 📚 Course Sync — Automatically fetches all your active courses, syllabi, and assignments
- 📅 Assignment Tracking — View upcoming assignments with due dates and submission status
- 📄 Content Extraction — Downloads and extracts content from PDFs, YouTube videos, Panopto recordings, and more
- 🤖 AI Integration — Works with Claude Code or Cursor for AI-assisted assignment help
- 🔍 AI Detection — Built-in AI detection checking to review written work
- 💾 Offline Access — All course materials stored locally for offline reference
📋 Requirements
- Python 3.10+
- A Canvas LMS account at your school
🚀 Installation
Option 1: pip (Recommended)
pip install canvas-completer
Then install the browser for authentication:
playwright install chromium
Option 2: pipx (Isolated Environment)
pipx install canvas-completer
pipx runpip canvas-completer install playwright
playwright install chromium
Option 3: From Source
git clone https://github.com/MillerMedia/canvas-completer.git
cd canvas-completer
pip install -e .
playwright install chromium
⚙️ Configuration
On first run, you'll be prompted to enter your school's Canvas URL. Examples:
https://canvas.instructure.comhttps://canvas.university.eduhttps://school.instructure.com
Your configuration is stored in ~/.config/canvas-completer/.
📖 Usage
Interactive Mode (Recommended)
canvas-completer
This launches the interactive CLI where you can:
- 🔄 Sync your courses
- 📂 Browse assignments by course
- 📝 View assignment details and rubrics
- 🤖 Open assignments in Claude Code or Cursor for AI help
Quick Commands
# Sync courses and assignments
canvas-completer sync
# Clear saved session (logout)
canvas-completer logout
📁 Data Storage
All synced data is stored locally at:
~/.config/canvas-completer/
├── config.json # Your Canvas URL and token
├── session.json # Browser session (for SSO login)
├── settings.json # User preferences
└── data/
└── courses/
└── Course_Name/
├── course_info.json
├── syllabus.md
├── assignments/
│ └── Assignment_Name/
│ ├── assignment.json
│ ├── requirements.md
│ ├── rubric.md
│ └── submission/
└── modules/
└── Module_Name/
└── content.md
🛠️ Optional Tools
For the best experience, install these AI coding assistants:
| Tool | Install | Description |
|---|---|---|
| Claude Code | npm install -g @anthropic-ai/claude-code |
Recommended for AI help |
| Cursor | cursor.com | AI-powered code editor |
| tmux | brew install tmux |
Enables split-pane view |
🔒 Privacy & Security
- Your Canvas token is stored locally with restricted file permissions (600)
- No data is sent to external servers (except Canvas and optional AI detection services)
- Session cookies are stored locally for convenience
❓ Troubleshooting
"Session expired" errors
Run canvas-completer logout then sync again to re-authenticate.
Browser doesn't open for login
Make sure Playwright browsers are installed: playwright install chromium
Can't find your Canvas URL
Check the URL you use to access Canvas in your browser. It typically looks like https://canvas.schoolname.edu or https://schoolname.instructure.com.
📄 License
MIT License — See LICENSE file for details.
🤝 Contributing
Contributions welcome! Please open an issue or submit a pull request.
Made with 🦆 by MillerMedia
Release files for canvas-completer 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| canvas_completer-0.1.0.tar.gz | 43.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| canvas_completer-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 88.7 kB
Release files / canvas_completer-0.1.0.tar.gz
| Download URL | canvas_completer-0.1.0.tar.gz |
|---|---|
| Size | 43.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
13133fcf1b86a830facd28e224316d361d8fa6b885b7a094cc3916fab6d3d16f
|
|
BLAKE2b-256 checksum How to use checksums |
133fa09c27edf2eeafba5c0820a06ffa8e0c6fce04028aaa7746cd4d27eae8c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / canvas_completer-0.1.0-py3-none-any.whl
| Download URL | canvas_completer-0.1.0-py3-none-any.whl |
|---|---|
| Size | 45.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
629e4ed1b0215a1e512f09d7a8f29064dc455515fc4b9044c09de8a5838d9199
|
|
BLAKE2b-256 checksum How to use checksums |
b0504c6dbf8756b5e669d8f9baf9d9cd8d6de9065811e0429ac72c0446a35a8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|