M.U.S.T. students finally have their own Skill.
"Did the lecturer upload new slides again?" "Which assignment is due tomorrow, again?" "Do I even have class tonight?"
Skip the wemust login โ just ask your AI.
muster_skill lets your AI agent look up your M.U.S.T. timetable, exams, assignments, course materials and announcements, and download the files for you.
Paste this to your agent:
Please install muster_skill for me: https://github.com/Cosmostima/muster_skill
1. Clone the repo into your skills directory.
2. Help me set the MUSTER_USERNAME and MUSTER_PASSWORD environment variables.
3. Run `node scripts/muster_cli.js list --type lesson --week` to check.
๐ฃ๏ธ "What's on this week?" Lessons for the next seven days, everything still to hand in, and what the lecturers posted in the last seven.
๐ฃ๏ธ "What does Homework 2 actually ask for?" The description, the deadline, the submission limits and the attached files.
๐ฃ๏ธ "Send me those files." Downloaded to your disk, any format, with the paths handed back.
๐ฃ๏ธ "Do I have class tonight? Which room?"
๐ฃ๏ธ "When are my finals, and where do I sit?"
๐ฃ๏ธ "Did I miss anything in Database Systems last term?"
Three commands, JSON output, no dependencies beyond Node.js.
| Step | Command | What you get |
|---|---|---|
| List | list |
lessons, exams, tasks, materials, notices, courses, terms |
| Look inside | show <id> |
an assignment's or quiz's details, a folder's files, a notice's text |
| Fetch | download <id>... |
the files, saved locally |
list hides what needs no attention: tasks you handed in or ticked complete on Moodle are left out unless you add --all. Tasks still open are always shown, however far away the deadline.
node scripts/muster_cli.js list # the default overview
node scripts/muster_cli.js list --type lesson --day # today's lessons
node scripts/muster_cli.js list --type task --course CS101
node scripts/muster_cli.js list --type term # which terms you attended
node scripts/muster_cli.js list --term 2602 --type material --q slides
node scripts/muster_cli.js show a932 # what an assignment involves
node scripts/muster_cli.js download a932 f911 # its attachments, and one fileThe options, range rules and task states are in SKILL.md, the page the agent reads.
Requires Node.js 20 or later. There is nothing to build or install.
git clone https://github.com/Cosmostima/muster_skillPut the folder in your agent's skills directory (~/.claude/skills/muster for Claude Code, <workspace>/skills/muster for OpenClaw), set your credentials, and try it:
export MUSTER_USERNAME='your-id'
export MUSTER_PASSWORD='your-password'
node scripts/muster_cli.js list --type lesson --week| Variable | Required | Default | Purpose |
|---|---|---|---|
MUSTER_USERNAME |
yes | โ | M.U.S.T. account |
MUSTER_PASSWORD |
yes | โ | M.U.S.T. password |
MUSTER_DOWNLOAD_PATH |
no | your home directory | where the wemust folder with downloads and the session file goes |
The skill never stores your password: after one login it keeps only your username, session cookies and a Moodle access token in wemust/.session.json, readable by you alone. That token appears in Moodle under Preferences โ Security keys, where you can revoke it at any time.
The session belongs to one account: after you change MUSTER_USERNAME it is discarded and the skill logs in again. Downloads are not separated by account, so give each account its own MUSTER_DOWNLOAD_PATH.
A command submits the password at most once. About five rejections in a row lock the account for a while; a rejected login says so, and when to try again is up to you and your agent.
This is an unofficial tool. It only reads: it never submits work, starts a quiz attempt or posts anything.
npm testThe tests use made-up data and local stand-in servers; they never contact the university.
Add --debug to any command to print each request's method, path, status and duration to stderr.