Skip to main content

A CLI for Canvas LMS (Studium)

Project description

Studium CLI (studium-cli)

A command-line tool for Canvas LMS. While designed with Uppsala University (Studium) as the default, it works with any Canvas instance.

Installation

1. Install using UV (Recommended)

UV is the fastest way to install and manage this tool.

uv tool install studium-cli

2. Standard installation (pip)

pip install studium-cli

From source

git clone https://github.com/mackrus/studium.git
cd studium
uv tool install .

Features

  • Interactive Browser: Navigate courses, modules, and assignments with Vim-style (hjkl) keys.
  • Assignments: Beautiful tables with countdown timers and overdue highlighting.
  • Downloads: Download module files and assignment attachments directly from the CLI.
  • Notifications: Desktop notifications for new assignments and announcements.
  • Integrations: Ready-to-use status bar strings for Sketchybar, Polybar, and Waybar.

Setup

  1. Get an API Token: Log in to your Canvas instance, go to Account > Settings > Approved Integrations, and click + New Access Token.
  2. Configure the CLI:
# Set your token
studium config set-token <YOUR_TOKEN>

# (Optional) Set your Canvas URL if not Uppsala University
studium config set-url https://canvas.your-school.edu
  1. Verify Connection:
studium config status

Usage

Interactive Navigation

The easiest way to explore your courses:

studium browse

(Use arrows or hjkl to navigate, q or Esc to exit)

Main Commands

Command Description
studium courses List all active courses.
studium assignments List upcoming assignments with due dates.
studium announcements Show recent announcements across all courses.
studium modules <ID> List modules and items for a specific course.
studium download <ID> Download a file by its Canvas ID.
studium sync Sync data and send desktop notifications.
studium browser Open courses or assignments in your default web browser.
studium calendar export Export assignments to an .ics file (and sync to Gist).
studium calendar sync-google Sync assignments to Google Calendar.
studium calendar schedule Set up background sync every 2 hours.
studium update Check for and install the latest version.

Setup (Calendar Sync)

To get a live, auto-updating subscription in Apple Calendar or Outlook:

  1. GitHub Token: Generate a Personal Access Token (with gist scope).
  2. Configure:
studium config set-github-token <YOUR_GITHUB_TOKEN>
  1. Sync:
studium calendar export
  1. Subscribe: Copy the Raw URL provided in the output and add it as a "New Calendar Subscription" in your calendar app.

Extensions

Status Bars (Sketchybar, Polybar, Waybar)

The CLI can output formatted strings for status bars using studium assignments --format sketchybar.

Sketchybar (macOS)

Integration scripts are available in the contrib/sketchybar/ directory.

Linux Bars

Add a custom module that executes studium assignments --format sketchybar (outputs e.g., 󰑫 3).

Development

# Run locally
uv run studium <command>

# Run tests
uv run pytest

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

studium_cli-0.2.14.tar.gz (50.8 kB view details)

Uploaded Source

Built Distribution

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

studium_cli-0.2.14-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file studium_cli-0.2.14.tar.gz.

File metadata

  • Download URL: studium_cli-0.2.14.tar.gz
  • Upload date:
  • Size: 50.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for studium_cli-0.2.14.tar.gz
Algorithm Hash digest
SHA256 a5ca5973ab3feeade3266d8d3d07b59aa48df778749f640d6806c50991309e3e
MD5 534e0a166dedf2a1428a9163d1381cf9
BLAKE2b-256 c364de51b47e8cf93d14e671cb20321976bd54f4c41aa2077b2590b22dbe50dd

See more details on using hashes here.

File details

Details for the file studium_cli-0.2.14-py3-none-any.whl.

File metadata

  • Download URL: studium_cli-0.2.14-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for studium_cli-0.2.14-py3-none-any.whl
Algorithm Hash digest
SHA256 5ad549597f1e40d630c3d7557025c0adacd1bd0be1a71d1c84dd1516dd9a5c0b
MD5 2231b89949ed4244666fce6ca8094133
BLAKE2b-256 2e995b7ba886cedc9c0e89f1475c37ebf250211b3643331658a60f653b68dc45

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