for LPU students · free · runs on your own laptop

UMS never tells you when a class is cancelled. This does.

campus-agent logs into UMS on a schedule, diffs your timetable against the last reading, and pushes what changed to a private Telegram bot — before you've walked to the wrong room. It also does the attendance math nobody wants to do by hand.

windows · linux · no account · no server
127.0.0.1:8765
The campus-agent dashboard showing today's classes, attendance against the 75% bar, and a change log flagging a cancelled class and a room move

The actual local dashboard — sample data, not a mockup. The bottom two lines are what a real UMS change looks like once campus-agent catches it.

What one sync reads

Your timetable, attendance, exam dates and the My Messages feed. Everything below is built from that one reading.

Cancel & move alerts

The diff between this sync and the last one, pushed to a Telegram bot you control. CANCELLED: Wed 10:20 CAP7001. Room moves and new UMS notices too, class-related ones flagged first.

Attendance math

campus bunk CAB106 — how many more periods you can miss and stay over the 75% bar, worked out from your real timetable and term dates.

Your phone's calendar

One export writes the whole term — classes, rooms, exams, holidays — as a calendar file. Your phone handles the reminders; nothing has to stay open.

Morning brief

One message at 7am: today's classes, anything that changed overnight, and any course drifting toward the bar.

A local dashboard

The screenshot above, live on your machine — set up entirely by clicking, no commands to remember.

Mail digest

Optional, read-only. Pulls exam, fee and placement mail out of the unread pile. Cannot send, delete, or mark anything — there's no code path that does.

What actually happens to your password

Not a policy page — check any line here against the app itself.

password

Goes to your OS's own secret store — Windows Credential Manager or the Linux secret service. Never a file, never this download.

attendance

Never leaves the device. Phone alerts carry course codes and times; percentages stay local.

network

The UMS portal, and only what you switch on — your own Telegram bot, your own mail. No telemetry, no analytics. This page you're reading makes zero outside requests either — view source if you don't believe it.

the dashboard

Binds to 127.0.0.1 only, rejects cross-site requests. Not reachable from your network.

a bad sync

A half-read page is refused, not stored. The app tells you it failed instead of quietly showing stale numbers.

Install

You need Python 3.11+ (step 1 covers Windows, which doesn't ship it) and Chrome or Edge, which you already have.

1. Python, if you don't have it

Windows: install from python.org and tick "Add python.exe to PATH" on the first screen. Check it worked: py --version in PowerShell. Linux already has it.

3. Install

Windows — open your Downloads folder, Shift+right-click, "Open PowerShell window here":

py -m pip install --user pipx
py -m pipx ensurepath
# close PowerShell, open a NEW one in Downloads:
pipx install ./campus_agent-0.1.0-py3-none-any.whl

Linux: sudo apt install pipx, then the same pipx install line from your Downloads folder.

"command not found" after this? Close the terminal and open a new one — the PATH change only applies to fresh windows.

4. Run it
campus serve

A setup page opens on its own. Everything from here is clicking — flip on the modules you want, log into UMS once, connect a Telegram bot. Then open the dashboard.