TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
Seply Learn turns your AI chats, notes and articles into an Expedition: one subject, split into Concepts you can read in different Views, share and keep adding to.
EducationTypeScript · PythonGitHub @mshafirOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Seply Learn: build and explore bodies of knowledge with AI. Concepts, linked and read through Views, curated with suggestions you accept or dismiss. Web, desktop and self-host.
Taken from the repository README
Loading the full README.
Read the full README ↗Seply Learn turns a question, an AI chat or a few files into an Expedition: a body of knowledge on one subject that you can read in several ways, share and keep growing.
Try it · Website · Desktop app · Self-host
Seply is the umbrella for a family of LLM tools (Learn, Plan and Work). Seply Learn is the first. It was previously called Umbel Learn (ADR 0002).
An Expedition holds what you know about one subject. You start one from a question, and you can add Sources: pasted AI chats, files and links. Seply Learn splits the material into Concepts, each one well-defined chunk of knowledge with a one-line summary, an overview paragraph and an optional full article. Concepts are joined by typed Relationships such as "part of" or "prerequisite", and each Concept records which Sources it came from.
You can mark each Concept as read or already known. Views then show what you have covered.
A View answers one question about the Expedition and is laid out automatically from its Concepts. The same Concepts appear in every View, so all of them stay current as the Expedition grows. There are eleven View Types:
Each View Type is defined in docs/view-types/.
A curator agent builds the first version of an Expedition: it reads the Sources, proposes Views, then builds them one at a time while you watch. After that, the AI doesn't change shared content on its own. When you ask it to grow the Expedition, add a Source later, or connect an outside agent, its changes arrive as suggestions that you accept or dismiss item by item.
The AI runs on the server's key, its readers' own keys, or both, as the server chooses. On learn.seply.app, anyone can sign up and read, create and share; using the server's AI needs an approved account.
Seply Learn has a remote MCP server at /mcp, so an agent such as Claude Code can read your Expeditions, create new ones from a conversation, and send suggestions to existing ones. It signs in with OAuth or a personal API token, and you choose which Expeditions it may use. The agent uses its own model, so MCP calls don't spend the server's AI key.
For Claude Code there is a plugin with the MCP server and a skill:
claude plugin marketplace add mshafir/seply-learn
claude plugin install seply-learn@seply
See plugins/seply-learn and the MCP spec.
The desktop app opens Seply Learn in its own window, for macOS, Windows and Linux. It uses learn.seply.app or a server you choose, and opens seply:// links. Downloads are on seply.app/desktop and in the desktop releases. The builds aren't signed yet; docs/desktop.md explains how to open them.
Seply Learn runs on your own machine or server as one container plus Postgres, with Docker Compose and your own AI key (Anthropic, OpenAI, Google, the Vercel AI Gateway, or any OpenAI-compatible server such as Ollama). People sign in with an email and password, or with Google if you set it up. Releases publish the image as ghcr.io/mshafir/seply-learn.
git clone https://github.com/mshafir/seply-learn.git
cd seply-learn
cp .env.example .env # fill in the required values and an AI key
docker compose up -d
The self-host guide covers AI keys, sign-in, email, S3 storage, map tiles, backups and upgrades.
This is a TypeScript monorepo, managed with pnpm and Turborepo. mise provides Node and pnpm at the versions in mise.toml.
mise install
mise exec -- pnpm install
mise exec -- pnpm check # dependency rule, typecheck, lint and tests
mise exec -- pnpm check:private # no private data in tracked files
While working on one package, check just that one: mise exec -- pnpm turbo typecheck lint test --filter=<package>....
apps/web, run the Worker with wrangler dev against any Postgres, and open http://localhost:8787. The steps are in Running it locally. mise exec -- pnpm --filter web dev serves the frontend on port 5173 and proxies the API to the Worker.mise exec -- pnpm --filter @seply/site dev serves seply.app on port 4321 (apps/site).apps/server-node.apps/desktop.Each package's README states its contract. CLAUDE.md has the working rules, and CONTEXT.md the glossary that code and docs use.
| Path | What it is |
|---|---|
apps/ | The web app (web), the Cloudflare Worker (worker), the Node server for self-hosting (server-node), the desktop app (desktop), the landing site (site) and the explainer video (video) |
packages/ | domain (the model and its ops), sync, views (renderers and layouts), ui (the design system), ai (the curator agent), server (the API, MCP and jobs) and shared config |
docs/spec/v1/ | The v1 spec: domain model, architecture, screens, Views, AI, MCP, design system, landing site, desktop |
docs/plan/v1/ | The v1 plan: milestones M0–M8, from foundations to the landing site and desktop app, and their work packages (tracked as GitHub Issues) |
CONTEXT.md | The glossary |
docs/view-types/ | View Type definitions, written as instructions for curators and agents |
docs/self-host.md, docs/desktop.md | The self-host guide and the desktop install steps |
Issues and pull requests are welcome. Read CLAUDE.md and the relevant spec section first, keep to the glossary's words, and run pnpm check and pnpm check:private before opening a PR. This repository is public, so fixtures must be synthetic or already public. Personal chats never go in it.
docs/adr/ | Architecture decision records |
docs/wayfinder/mindmaps-v1/ | The planning map and the decision tickets behind the spec |
plugins/seply-learn/ | The Claude Code plugin: the MCP server and the seply-learn skill |
prototypes/ | Early prototypes of the Views and the curator playbook, kept for reference |