Campus, remembered.
unicorn reads your campus systems every hour, remembers what each one said, and tells the AI agent you already use what changed. It runs on your own Cloudflare account and has no model of its own.
Five sources in. One feed out.
01Read
Every hour, unicorn reads each source you connected. Moodle, Ed, Canvas, Gmail, any feed you point it at.
Changes since Tuesday
3 changes · 2 courses
Algorithms
- Deadline moved Mon 23:55 → Wed 23:55 — Assignment 22h
- New staff notice: Assignment 2 clarifications3h
Networks
- Grade released: 18/20 — Quiz 3yesterday
Your agent can already open Moodle. It can’t tell you what Moodle said last week.
Live
A source mounted in your client answers what is there right now. Good for looking things up.
Memory
The same source read by unicorn answers what changed, when, and in which course. Good for noticing.
Both
Keep your live tools. unicorn adds the half they can’t do: a baseline to compare against.
Four things a live connection can’t do.
What changed since Tuesday
Every edit is a typed event with a cursor. Ask for everything since you last looked and get exactly that, nothing guessed.
Daily useOne course, not three
Moodle’s assignment, Ed’s clarification thread and Canvas’s grade are filed under one course, so your agent sees one thing.
Sources and coursesOne plan on every device
Tick a step from your phone; the session on your laptop sees it. The plan lives in unicorn, not in a chat history.
Plans and playbooksA card, not a paragraph
Six widgets render inside ChatGPT and Claude. Hosts that can’t draw them get the same answer as text.
The six widgetsAsk the agent you already use. It answers with a card.
unicorn is one MCP server with fourteen tools. Claude Code, claude.ai, ChatGPT and Cowork call them, then reason over the result with their own model.
What changed since Tuesday?
unicorn · changes_since
Changes since Tuesday
3 changes · 2 courses
Algorithms
- Deadline moved Mon 23:55 → Wed 23:55 — Assignment 22h
- New staff notice: Assignment 2 clarifications3h
Networks
- Grade released: 18/20 — Quiz 3yesterday
A2 now closes Wednesday, so you have two more days. The staff notice narrows Q2’s input bounds; read it before you write the code.
It runs on your account. It has no opinions.
- Your account
- One Cloudflare Worker and one database, on your own free plan. No shared service, no one else’s quota.
- No model inside
- Zero model calls anywhere in the Worker. Your agent does the thinking; unicorn reads, diffs and remembers.
- Read-only
- It never posts, submits or marks anything read. A widget button only changes unicorn’s own state.
- Quiet by default
- An hourly sync, and one digest at 07:00 that is skipped when nothing happened.
Four playbooks
Procedures your agent follows, shipped as MCP prompts. Your client’s own scheduler runs them; unicorn runs no model, so it runs no schedule for them either.
Schedule them/weekly-planA dated checklist for the next seven days, across every course./decompose-assignmentSplits each assessment due within three weeks into three to seven tasks./forum-briefStaff notices and edited threads since the last brief, by course./triageFiles the items unicorn couldn’t place, and leaves unsure ones alone.
One command. Your own Worker.
You need Node 22 and a free Cloudflare account. Credentials for each source can come now or later.
- 01Signs you in to Cloudflare and creates the database
- 02Asks which sources you want, and for each credential
- 03Deploys the Worker and starts the hourly sync
- 04Prints the commands that connect your agent
git clone https://github.com/TuuHub/unicorn.gitcd unicornnpm run setup
unicorn remembers.
So the agent you already use can tell you what changed, without you checking four systems first.