Skip to main content

🎓 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.com
  • https://canvas.university.edu
  • https://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)

Source distribution for canvas-completer 0.1.0
File Size Uploaded
canvas_completer-0.1.0.tar.gz 43.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for canvas-completer 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page