Skip to main content

A context-aware CLI for Canvas LMS (Studium)

Project description

Studium CLI (studium-cli)

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

Features

  • 🚀 Performance: Parallel API fetching and persistent HTTP sessions.
  • 🧭 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.

Installation

1. Install UV

UV is required to run and install this tool. See the UV documentation.

curl -sSfL https://astral-sh.uv.io/install.sh | sh

2. Install the CLI

Install directly from PyPI:

uv tool install studium-cli

Or from source:

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

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 update Check for and install the latest version.

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.4.tar.gz (30.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.4-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: studium_cli-0.2.4.tar.gz
  • Upload date:
  • Size: 30.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.4.tar.gz
Algorithm Hash digest
SHA256 0ff132c95a2d244c2a356401d54c6ce0f11c87695a2973e75f1e84595d1111b1
MD5 72fe74406a6cca28b62b8c0f8d967fff
BLAKE2b-256 5c4ab98f88ef778f800cb9a9a9a1832fb3b1c3ed49020aa2e6a58415dc329f29

See more details on using hashes here.

File details

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

File metadata

  • Download URL: studium_cli-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 12.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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 69c94d97c2218b9ede79f86e630e156a40bf781a44f2aae955c4afe3971b4c50
MD5 a3fcb857b00397d59508a4fb3ebc9e5e
BLAKE2b-256 87a8ddc54841367b09874dd5f0cd3cecf69e8f819ae0b5a67a6c56cfbc70b5dc

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