Skip to main content

A CLI tool to manage Canvas LMS assignments with AI-assisted homework help

Project description

๐ŸŽ“ 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

canvas_completer-0.1.0.tar.gz (43.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

canvas_completer-0.1.0-py3-none-any.whl (45.4 kB view details)

Uploaded Python 3

File details

Details for the file canvas_completer-0.1.0.tar.gz.

File metadata

  • Download URL: canvas_completer-0.1.0.tar.gz
  • Upload date:
  • Size: 43.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for canvas_completer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 13133fcf1b86a830facd28e224316d361d8fa6b885b7a094cc3916fab6d3d16f
MD5 c170fdac601db373bafed103cc4b0ac8
BLAKE2b-256 133fa09c27edf2eeafba5c0820a06ffa8e0c6fce04028aaa7746cd4d27eae8c4

See more details on using hashes here.

File details

Details for the file canvas_completer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for canvas_completer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 629e4ed1b0215a1e512f09d7a8f29064dc455515fc4b9044c09de8a5838d9199
MD5 e3f3c02febfb4fc9fa698ac1fdef5f54
BLAKE2b-256 b0504c6dbf8756b5e669d8f9baf9d9cd8d6de9065811e0429ac72c0446a35a8e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page