Skip to content

jjuanrivvera/canvas-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Canvas CLI

Go Version License Release Go Report Card

A powerful command-line interface for Canvas LMS, built with Go.

Documentation · Installation · Commands


Features

  • Secure Authentication - OAuth 2.0 with PKCE, system keyring integration
  • Multi-Instance - Manage multiple Canvas instances from one CLI
  • Smart Rate Limiting - Adaptive throttling based on API quotas
  • Multiple Outputs - Table, JSON, YAML, and CSV formats
  • Interactive Mode - REPL shell with command history and completion
  • 280+ Commands - Full coverage of Canvas LMS resources

Installation

Homebrew (macOS/Linux)

brew tap jjuanrivvera/canvas-cli
brew install canvas-cli

Go Install

go install github.com/jjuanrivvera/canvas-cli/cmd/canvas@latest

Binary Download

Download from GitHub Releases.

Quick Start

# Authenticate with your Canvas instance
canvas auth login https://your-school.instructure.com

# List your courses
canvas courses list

# Get assignments for a course
canvas assignments list <course-id>

# Start interactive mode
canvas shell

Command Overview

Category Commands
Auth login, logout, status
Courses list, get, create, update, delete
Assignments list, get, create, update, delete, bulk-update
Submissions list, get, grade, bulk-grade, comments
Users me, list, get, create, update
Enrollments list, get, create, update, delete, accept
Modules list, get, create, update, delete, publish, items
Pages list, get, create, update, delete, front, revisions
Discussions list, get, create, entries, post, reply, subscribe
Announcements list, get, create, update, delete
Quizzes list, get, create, update, delete, questions, submissions
Grades summary, history, bulk-update, final, current
Groups list, get, create, update, delete, users, categories
Outcomes list, get, create, update, delete, groups, results
Rubrics list, get, create, update, delete, associate
Conversations list, get, create, reply, archive, star, batch-update
Calendar list, get, create, update, delete, reserve
Files list, get, upload, download, delete
Sections list, get, create, update, delete, crosslist
Admin admins, roles, analytics, blueprint, sis-imports
Utilities shell, doctor, webhook, api, version

See full command reference for all options and flags.

Configuration

# ~/.canvas-cli/config.yaml
default_instance: myschool
instances:
  myschool:
    url: https://myschool.instructure.com
    client_id: your-client-id
settings:
  default_output_format: table
  cache_enabled: true

See Authentication Guide for detailed setup.

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

License

MIT License

About

A powerful command-line interface for Canvas LMS, built with Go.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages