# unicorn docs > The unicorn family: moodle-cli, edstem-cli and ontrack for live access to Moodle, Ed Discussion and OnTrack from your terminal and AI agent, and unicorn, a memory layer for your own AI agent. Every page here is Markdown. The same pages as HTML live at the URL without .md, which also returns this Markdown to requests that accept text/markdown. All pages in one file: https://unicorn.tuuhub.com/llms-full.txt ## Guides: Get started - [cli-kit](https://unicorn.tuuhub.com/docs/index.md): Terminal and MCP access to Moodle, Ed Discussion and OnTrack for students, teaching staff, and the AI apps you connect. - [Quickstart](https://unicorn.tuuhub.com/docs/quickstart.md): Install one or all three CLIs, sign in, and run your first command. - [Choose a surface](https://unicorn.tuuhub.com/docs/choose-a-surface.md): When to use the CLI yourself, or connect it to an AI app instead. ## Guides: Compare - [Feature matrix](https://unicorn.tuuhub.com/docs/compare/features.md): What each CLI can do, side by side, backed by their command trees and MCP tool catalogs. - [Web coverage](https://unicorn.tuuhub.com/docs/compare/web-coverage.md): What each platform's web UI offers, and how much of it the CLI reaches today. ## unicorn: Get started - [unicorn](https://unicorn.tuuhub.com/docs/unicorn/index.md): A memory layer for your own AI agent: one Worker on your free Cloudflare account that remembers Ed, Moodle, Canvas, Gmail and feeds, and hands the result to your agent. - [Set up with your agent](https://unicorn.tuuhub.com/docs/unicorn/agent-setup.md): Instructions a coding agent follows to deploy unicorn for you, add your sources and connect a client. - [Deploy unicorn](https://unicorn.tuuhub.com/docs/unicorn/deploy.md): Install unicorn on your own free Cloudflare account with one command, then check that it is running. - [Sources](https://unicorn.tuuhub.com/docs/unicorn/sources.md): What unicorn reads from Ed, Moodle, Canvas, Gmail and feeds, what each one needs, and how to add one after you deploy. - [Connect your agent](https://unicorn.tuuhub.com/docs/unicorn/connect.md): Add unicorn to Claude Code, claude.ai, Claude desktop, Claude on mobile, Cowork or ChatGPT. ## unicorn: Use it - [Daily use](https://unicorn.tuuhub.com/docs/unicorn/daily-use.md): Read your morning brief, see what changed, check a course across systems, and keep plans and corrections, with prompts to copy. - [Playbooks](https://unicorn.tuuhub.com/docs/unicorn/playbooks.md): Run unicorn's four built-in procedures on demand or on a schedule: weekly plan, assignment breakdown, forum brief and triage. - [Widgets](https://unicorn.tuuhub.com/docs/unicorn/widgets.md): The six interactive views unicorn can show in your agent's chat, which apps display them, and what you see elsewhere. - [Custom tools](https://unicorn.tuuhub.com/docs/unicorn/custom-tools.md): Add your own read-only questions to unicorn, or install ones other students have shared. ## unicorn: Operate - [Upgrade](https://unicorn.tuuhub.com/docs/unicorn/upgrade.md): Move your deployment to a newer unicorn release with one command, and know why the database changes first. - [Security](https://unicorn.tuuhub.com/docs/unicorn/security.md): What unicorn stores and where, who can read it, why it cannot write to your sources, and how to revoke access. - [Troubleshooting](https://unicorn.tuuhub.com/docs/unicorn/troubleshooting.md): Exact causes and fixes for installer errors, sync errors, sign-in problems, a stopped scheduler and clients that cannot connect. ## unicorn: Reference - [Tool reference](https://unicorn.tuuhub.com/docs/unicorn/reference/tools.md): The tools your agent sees on unicorn, with their inputs and results, plus the change events and the five buckets. - [Manifest format](https://unicorn.tuuhub.com/docs/unicorn/manifests.md): The JSON your agent writes to add a feed, an API or a remote MCP tool as a unicorn source. ## Moodle: Moodle CLI - [Moodle CLI](https://unicorn.tuuhub.com/docs/moodle/index.md): Read Moodle from the terminal or an agent, using the browser session you already have. - [Install](https://unicorn.tuuhub.com/docs/moodle/install.md): Install moodle-cli as a standalone binary, an npm package, or a Bun package. - [Set up with an agent](https://unicorn.tuuhub.com/docs/moodle/agent-setup.md): Instructions an AI agent follows to install moodle-cli, sign the student in, and optionally deploy a private remote MCP server, through a short conversation. - [Sign in](https://unicorn.tuuhub.com/docs/moodle/sign-in.md): How moodle-cli finds, caches and renews the browser session it borrows from you. - [Daily use](https://unicorn.tuuhub.com/docs/moodle/daily-use.md): The short forms moodle-cli resolves against your enrolled units — no subcommand required for most of what you check every day. - [Units and activities](https://unicorn.tuuhub.com/docs/moodle/units-and-activities.md): List your enrolled units, drill into sections and activities, and check your dashboard, notifications and account info. - [Grades and deadlines](https://unicorn.tuuhub.com/docs/moodle/grades-and-deadlines.md): Check items due in a date window and grades across your units, and how moodle-cli resolves the timezone it reports dates in. - [Forums](https://unicorn.tuuhub.com/docs/moodle/forums.md): Recent announcements, one discussion's posts, and forum search from the terminal. - [Downloads](https://unicorn.tuuhub.com/docs/moodle/downloads.md): Save one activity, a whole section or a single file, and keep units mirrored locally with sync. - [Submit](https://unicorn.tuuhub.com/docs/moodle/submit.md): Upload files into a Moodle assignment, review the plan, and optionally submit for grading. - [Quizzes](https://unicorn.tuuhub.com/docs/moodle/quiz.md): Start a quiz attempt, save answers and submit it from the terminal, and review a finished attempt. - [MCP server](https://unicorn.tuuhub.com/docs/moodle/mcp-server.md): What moodle mcp serve, bridge, deploy and its other subcommands do, from the CLI side. - [Configuration](https://unicorn.tuuhub.com/docs/moodle/configuration.md): Config file location, session cache and global flags for moodle-cli. - [Troubleshooting](https://unicorn.tuuhub.com/docs/moodle/troubleshooting.md): Every error code moodle-cli can exit with, what triggers it, and the fix. - [Uninstall](https://unicorn.tuuhub.com/docs/moodle/uninstall.md): Remove moodle-cli's background jobs, remote deployment and local files. ## Moodle: Command reference - [moodle command reference](https://unicorn.tuuhub.com/docs/moodle/reference/index.md): Every moodle command, its arguments, options and defaults, generated from moodle commands --json. - [moodle activities](https://unicorn.tuuhub.com/docs/moodle/reference/activities.md): Inspect activities. - [moodle alerts](https://unicorn.tuuhub.com/docs/moodle/reference/alerts.md): List notifications and message counts. - [moodle attempt](https://unicorn.tuuhub.com/docs/moodle/reference/attempt.md): Each question with your response, and mark, correct answer and feedback when the site shows them. - [moodle auth](https://unicorn.tuuhub.com/docs/moodle/reference/auth.md): Session and keepalive utilities. - [moodle calendar](https://unicorn.tuuhub.com/docs/moodle/reference/calendar.md): All course, user and site calendar events in the date window. - [moodle commands](https://unicorn.tuuhub.com/docs/moodle/reference/commands.md): Describe the complete command tree. - [moodle complete](https://unicorn.tuuhub.com/docs/moodle/reference/complete.md): Mark an activity complete manually. - [moodle completion](https://unicorn.tuuhub.com/docs/moodle/reference/completion.md): Print shell completion for zsh, bash or fish. - [moodle coverage](https://unicorn.tuuhub.com/docs/moodle/reference/coverage.md): Check each command against this Moodle site with the signed-in session, one live read at a time. Nothing is created. - [moodle doctor](https://unicorn.tuuhub.com/docs/moodle/reference/doctor.md): Diagnose runtime, browser access, session, background jobs and MCP setup. - [moodle download](https://unicorn.tuuhub.com/docs/moodle/reference/download.md): Download files: one activity, a whole section, or a file URL. With no argument, browse. - [moodle due](https://unicorn.tuuhub.com/docs/moodle/reference/due.md): Items due in a date window. - [moodle find](https://unicorn.tuuhub.com/docs/moodle/reference/find.md): Ranked sections, activities and discussion subjects. - [moodle forums](https://unicorn.tuuhub.com/docs/moodle/reference/forums.md): Inspect forums. - [moodle grades](https://unicorn.tuuhub.com/docs/moodle/reference/grades.md): Inspect grades. - [moodle mcp](https://unicorn.tuuhub.com/docs/moodle/reference/mcp.md): Deploy a private MCP Worker on Cloudflare; encrypted session storage and local renewal. Free-tier limits apply. - [moodle messages](https://unicorn.tuuhub.com/docs/moodle/reference/messages.md): Read and send direct or group messages. - [moodle news](https://unicorn.tuuhub.com/docs/moodle/reference/news.md): Latest announcement threads with first-post text. - [moodle open](https://unicorn.tuuhub.com/docs/moodle/reference/open.md): Open a unit or activity reference in the browser. - [moodle overview](https://unicorn.tuuhub.com/docs/moodle/reference/overview.md): Show a compact multi-source overview. - [moodle quiz](https://unicorn.tuuhub.com/docs/moodle/reference/quiz.md): Take a quiz: start an attempt, answer questions, finish it. Beta. - [moodle skills](https://unicorn.tuuhub.com/docs/moodle/reference/skills.md): Show skill metadata or delegate to the shared skills CLI. - [moodle submission](https://unicorn.tuuhub.com/docs/moodle/reference/submission.md): Read or remove your assignment submission. - [moodle submit](https://unicorn.tuuhub.com/docs/moodle/reference/submit.md): Upload local files into an assignment; returns the receipt Moodle shows afterwards. - [moodle sync](https://unicorn.tuuhub.com/docs/moodle/reference/sync.md): Keep one local folder per unit in step with Moodle: new files arrive, changed ones update, and a file you edited is never overwritten. - [moodle threads](https://unicorn.tuuhub.com/docs/moodle/reference/threads.md): Inspect forum discussion threads. - [moodle todo](https://unicorn.tuuhub.com/docs/moodle/reference/todo.md): List upcoming actionable timeline items. - [moodle uninstall](https://unicorn.tuuhub.com/docs/moodle/reference/uninstall.md): Remove local background jobs; optionally remove the selected Worker and configuration. - [moodle units](https://unicorn.tuuhub.com/docs/moodle/reference/units.md): Inspect enrolled units. - [moodle update](https://unicorn.tuuhub.com/docs/moodle/reference/update.md): Update the package and redeploy the managed MCP Worker when either is behind. - [moodle user](https://unicorn.tuuhub.com/docs/moodle/reference/user.md): Show authenticated user info. ## Ed Discussion: Ed Discussion CLI - [Ed Discussion CLI](https://unicorn.tuuhub.com/docs/edstem/index.md): Read and post on Ed Discussion from the terminal, a local MCP server, or a hosted MCP endpoint. - [Install and sign in](https://unicorn.tuuhub.com/docs/edstem/install.md): Install edstem-cli, create an Ed API token, and save it for later commands. - [Set up with an agent](https://unicorn.tuuhub.com/docs/edstem/agent-setup.md): Instructions an AI agent follows to install edstem-cli, get the user signed in, and connect it, through a short conversation. - [Units](https://unicorn.tuuhub.com/docs/edstem/units.md): List enrolled units, resolve unit references, and read the unit#number thread syntax. - [Threads](https://unicorn.tuuhub.com/docs/edstem/threads.md): List, search, show, and read Ed threads, and every filter that narrows them. - [Export a forum](https://unicorn.tuuhub.com/docs/edstem/export.md): Save a unit's threads and attachments as a Markdown archive you can read offline and resume later. - [Posting](https://unicorn.tuuhub.com/docs/edstem/posting.md): Post a new thread or a reply, review the plan first, and understand what the Markdown conversion does and doesn't support. - [Lessons and slides](https://unicorn.tuuhub.com/docs/edstem/lessons-and-slides.md): List and read Ed Lessons, mark them read, and show or submit quiz slides. - [Files](https://unicorn.tuuhub.com/docs/edstem/files.md): List and download Ed-hosted files attached to a lesson or a thread. - [Activity](https://unicorn.tuuhub.com/docs/edstem/activity.md): List your own recent activity across one unit or every unit. - [MCP server](https://unicorn.tuuhub.com/docs/edstem/mcp-server.md): Run edstem-mcp on your machine, connect to the hosted server, or deploy your own Cloudflare Worker. - [Configuration](https://unicorn.tuuhub.com/docs/edstem/configuration.md): Where edstem-cli stores its config file. - [Troubleshooting](https://unicorn.tuuhub.com/docs/edstem/troubleshooting.md): What you'll see when something goes wrong in edstem-cli, and how to fix it. ## Ed Discussion: Command reference - [edstem command reference](https://unicorn.tuuhub.com/docs/edstem/reference/index.md): Every edstem command, its arguments, options and defaults, generated from edstem commands --json. - [edstem auth](https://unicorn.tuuhub.com/docs/edstem/reference/auth.md): Manage Ed authentication. - [edstem user](https://unicorn.tuuhub.com/docs/edstem/reference/user.md): Show the current Ed identity and enrolled units. - [edstem units](https://unicorn.tuuhub.com/docs/edstem/reference/units.md): List or show enrolled units. - [edstem threads](https://unicorn.tuuhub.com/docs/edstem/reference/threads.md): List, search, show, or read Ed threads. - [edstem replies](https://unicorn.tuuhub.com/docs/edstem/reference/replies.md): Post replies to Ed threads. - [edstem lessons](https://unicorn.tuuhub.com/docs/edstem/reference/lessons.md): List, show, read, or mark lessons as read. - [edstem slides](https://unicorn.tuuhub.com/docs/edstem/reference/slides.md): Show, read, or submit lesson slides. - [edstem files](https://unicorn.tuuhub.com/docs/edstem/reference/files.md): List or download Ed-hosted lesson and thread files. - [edstem activity](https://unicorn.tuuhub.com/docs/edstem/reference/activity.md): List current-user activity. - [edstem update](https://unicorn.tuuhub.com/docs/edstem/reference/update.md): Report or install the latest edstem-cli release. - [edstem commands](https://unicorn.tuuhub.com/docs/edstem/reference/commands.md): Describe the complete command tree. - [edstem skills](https://unicorn.tuuhub.com/docs/edstem/reference/skills.md): Generate the agent skill. ## OnTrack: OnTrack CLI - [OnTrack CLI](https://unicorn.tuuhub.com/docs/ontrack/index.md): Terminal and scripting access to OnTrack for students, teaching staff, scripts and agents. - [Install the OnTrack CLI](https://unicorn.tuuhub.com/docs/ontrack/install.md): Install ontrack with npm or Bun, point it at your site, and run it for the first time. - [Set up with an agent](https://unicorn.tuuhub.com/docs/ontrack/agent-setup.md): Instructions an AI agent follows to install ontrack, point it at the user's site, and get them signed in. - [Sign in](https://unicorn.tuuhub.com/docs/ontrack/sign-in.md): How ontrack authenticates through your browser or SAML, and what it stores. - [Units and tasks](https://unicorn.tuuhub.com/docs/ontrack/units-and-tasks.md): List your units, resolve a UNIT reference, and read tasks and task sheets. - [Downloads](https://unicorn.tuuhub.com/docs/ontrack/downloads.md): Download unit resources and task sheets, and what --dest, --force and -o each control. - [Task workflow](https://unicorn.tuuhub.com/docs/ontrack/task-workflow.md): Set a task's self-reported state and submit files for review, both with a plan-then-confirm step. - [Chats](https://unicorn.tuuhub.com/docs/ontrack/chats.md): Check unread counts, read a task's comment history, and message a tutor. - [Roles and identity](https://unicorn.tuuhub.com/docs/ontrack/roles.md): List the teaching roles you hold and check who you're signed in as. - [Configuration](https://unicorn.tuuhub.com/docs/ontrack/configuration.md): Where ontrack looks for its config file, and the base_url key it needs. - [Troubleshooting](https://unicorn.tuuhub.com/docs/ontrack/troubleshooting.md): What you saw, why, and how to fix it — sign-in and configuration failures in ontrack. ## OnTrack: Command reference - [ontrack command reference](https://unicorn.tuuhub.com/docs/ontrack/reference/index.md): Every ontrack command, its arguments, options and defaults, generated from ontrack commands --json. - [ontrack user](https://unicorn.tuuhub.com/docs/ontrack/reference/user.md): Show the signed-in user - [ontrack auth](https://unicorn.tuuhub.com/docs/ontrack/reference/auth.md): Manage authentication - [ontrack units](https://unicorn.tuuhub.com/docs/ontrack/reference/units.md): Enrolled units - [ontrack tasks](https://unicorn.tuuhub.com/docs/ontrack/reference/tasks.md): Tasks in a unit: list, read, submit, set state - [ontrack chats](https://unicorn.tuuhub.com/docs/ontrack/reference/chats.md): Read and send task chat messages - [ontrack roles](https://unicorn.tuuhub.com/docs/ontrack/reference/roles.md): Teaching roles you hold - [ontrack commands](https://unicorn.tuuhub.com/docs/ontrack/reference/commands.md): Describe the complete command tree - [ontrack skills](https://unicorn.tuuhub.com/docs/ontrack/reference/skills.md): Generate the agent skill ## MCP: Connect an AI app - [MCP servers](https://unicorn.tuuhub.com/docs/mcp/index.md): Connect Claude, ChatGPT, Cursor or another AI app to your Moodle and Ed Discussion data, and pick the right option for it. - [Examples](https://unicorn.tuuhub.com/docs/mcp/examples.md): What to ask an AI app connected to the Moodle or Ed Discussion MCP servers, and what comes back. - [MCP troubleshooting](https://unicorn.tuuhub.com/docs/mcp/troubleshooting.md): Fixes for the errors you'll actually hit connecting a client to the Moodle or Ed Discussion MCP servers. ## MCP: Connect a client - [Connect Claude Code](https://unicorn.tuuhub.com/docs/mcp/clients/claude-code.md): Add the Moodle and Ed Discussion MCP servers to Claude Code. - [Connect Claude Desktop](https://unicorn.tuuhub.com/docs/mcp/clients/claude-desktop.md): Add the Moodle and Ed Discussion MCP servers to Claude Desktop. - [Connect claude.ai](https://unicorn.tuuhub.com/docs/mcp/clients/claude-ai.md): Add the Moodle and Ed Discussion MCP servers to claude.ai as custom connectors. - [Connect Codex](https://unicorn.tuuhub.com/docs/mcp/clients/codex.md): Add the Moodle and Ed Discussion MCP servers to Codex CLI. - [Connect ChatGPT](https://unicorn.tuuhub.com/docs/mcp/clients/chatgpt.md): Add the Moodle and Ed Discussion MCP servers to ChatGPT as custom connectors. - [Connect Cursor](https://unicorn.tuuhub.com/docs/mcp/clients/cursor.md): Add the Moodle and Ed Discussion MCP servers to Cursor. - [Connect VS Code](https://unicorn.tuuhub.com/docs/mcp/clients/vs-code.md): Add the Moodle and Ed Discussion MCP servers to VS Code's agent mode. - [Connect Windsurf](https://unicorn.tuuhub.com/docs/mcp/clients/windsurf.md): Add the Moodle and Ed Discussion MCP servers to Windsurf's Cascade. - [Connect Gemini CLI](https://unicorn.tuuhub.com/docs/mcp/clients/gemini-cli.md): Add the Moodle and Ed Discussion MCP servers to Gemini CLI. - [Connect another client](https://unicorn.tuuhub.com/docs/mcp/clients/other.md): Configure any MCP client — a local process or a remote URL — against Moodle or Ed Discussion by hand. ## Developers - [Developers](https://unicorn.tuuhub.com/docs/developers/index.md): Build against these CLIs — JSON shapes, exit codes, MCP internals, tool catalogs and agent skills. ## Developers: Shared behaviour - [The command model](https://unicorn.tuuhub.com/docs/concepts/command-model.md): The shared shape every command in the family follows, and how references resolve. - [Output formats](https://unicorn.tuuhub.com/docs/concepts/output-formats.md): Table versus JSON, the flags that control it, and what each product's JSON output looks like. - [Errors and exit codes](https://unicorn.tuuhub.com/docs/concepts/errors-and-exit-codes.md): The shared error JSON shape, the exit-code table, and the error vocabulary. - [Mutations](https://unicorn.tuuhub.com/docs/concepts/mutations.md): Which commands write, the plan-then-confirm flow, and the per-product exceptions. - [Humans and agents](https://unicorn.tuuhub.com/docs/concepts/humans-and-agents.md): How the CLI decides who it's talking to, and what changes because of it. - [Configuration](https://unicorn.tuuhub.com/docs/concepts/configuration.md): Config file locations, environment variables and precedence, across all three CLIs. ## Developers: Scripting each CLI - [Moodle CLI for scripts and agents](https://unicorn.tuuhub.com/docs/developers/moodle.md): Output shapes, field names, error codes, environment variables and other details for script authors, integration builders and MCP clients. - [Ed Discussion CLI for scripts and agents](https://unicorn.tuuhub.com/docs/developers/edstem.md): Exit codes, environment variables, retry behavior, and self-hosting details for scripting edstem-cli or building an agent integration. - [OnTrack CLI for scripts and agents](https://unicorn.tuuhub.com/docs/developers/ontrack.md): Exit codes, environment variables, non-interactive flags, and token-based sign-in for scripting ontrack or building an agent integration. ## Developers: Agents - [Agent skills](https://unicorn.tuuhub.com/docs/agents/skills.md): Install the generated skill bundle so a coding agent knows which command answers which request. - [Prompting an agent](https://unicorn.tuuhub.com/docs/agents/prompting.md): How to phrase a request so an agent with these tools runs the right command. ## Developers: MCP internals - [How MCP works](https://unicorn.tuuhub.com/docs/mcp/how-it-works.md): In plain language, what each Moodle and Ed Discussion MCP surface does: what runs where, what talks to what, and where your credentials live. - [Security](https://unicorn.tuuhub.com/docs/mcp/security.md): Where MCP credentials live, what gates a write, and how to revoke or rotate access. - [Moodle MCP tool catalog](https://unicorn.tuuhub.com/docs/mcp/tools/moodle.md): Every tool the Moodle MCP servers expose, with its parameters, server availability, and whether it writes to Moodle. - [Ed Discussion MCP tool catalog](https://unicorn.tuuhub.com/docs/mcp/tools/edstem.md): Every tool the Ed Discussion MCP servers expose, with its parameters, gating, and whether it writes to Ed.