Skip to main content

Terminal-first CLI for Moodle LMS

Project description

moodle-cli

Terminal-first CLI for Moodle LMS that reuses an authenticated browser session.

Features

  • No API token setup required
  • Reads MoodleSession from your browser or MOODLE_SESSION
  • Works with Moodle AJAX APIs and falls back to authenticated page scraping when needed
  • Upcoming timeline items for student-facing deadlines and actions
  • Terminal output plus --json and --yaml

Requirements

  • Python 3.10+
  • uv
  • An active Moodle browser session, or a MOODLE_SESSION environment variable

Install

# Recommended: uv tool
uv tool install moodle-cli

# Alternative: pipx
pipx install moodle-cli

Install from source:

git clone https://github.com/bunizao/moodle-cli.git
cd moodle-cli
uv sync

Usage

moodle --help
moodle user
moodle alerts
moodle todo
moodle overview
moodle courses
moodle grades 34637
moodle activities 34637
moodle update

To upgrade after an update is available:

uv tool upgrade moodle-cli
# or
pipx upgrade moodle-cli

Configuration

On first run, if no base_url is configured, the CLI will prompt you and write it to config.yaml in the project directory or in ~/.config/moodle-cli/:

base_url: https://school.example.edu

Required format:

  • Use a full root URL such as https://school.example.edu
  • Do not include paths, query strings, or fragments
  • Do not use URLs like /login/index.php or /my/
  • The CLI validates the URL against Moodle's token endpoint and asks again if it does not look valid

You can also set MOODLE_BASE_URL instead of using the interactive prompt. You can copy from config.example.yaml.

Environment overrides:

  • MOODLE_BASE_URL
  • MOODLE_SESSION

Development

uv run python -m compileall moodle_cli
uv build

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

moodle_cli-0.2.4.tar.gz (68.7 kB view details)

Uploaded Source

Built Distribution

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

moodle_cli-0.2.4-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: moodle_cli-0.2.4.tar.gz
  • Upload date:
  • Size: 68.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for moodle_cli-0.2.4.tar.gz
Algorithm Hash digest
SHA256 919ae5266067d69f8ccce5c67b75396fda0565389aeb91f2649b2fb1c457c9b6
MD5 ed7494085ec5a045dd6a61b49805c548
BLAKE2b-256 86cf4730b882d26e582ff8ab271adef67a0d625884be877a07e47c1f00d50826

See more details on using hashes here.

Provenance

The following attestation bundles were made for moodle_cli-0.2.4.tar.gz:

Publisher: publish.yml on bunizao/moodle-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: moodle_cli-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 25.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for moodle_cli-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a25abf4b8012b19e26e484f7af2cb215b69e794b5e3d4b6ee7c220b7f43e9216
MD5 20f038e7b07b38341a7cb05d2f4937e3
BLAKE2b-256 b3f7b13bb7b066675c05e0bc5eb258eb8a2e86136f53c8e7fdb9799867993fa3

See more details on using hashes here.

Provenance

The following attestation bundles were made for moodle_cli-0.2.4-py3-none-any.whl:

Publisher: publish.yml on bunizao/moodle-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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