TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證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.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 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 |