Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
TypeScript 100%
README.md
learn #
This fork is adapted for omo.dev. The original pi version lives upstream at amosblomqvist/learn.
My AI learning system from this video: How I Use AI to Learn Things.
This is a personal system I built for myself, shared as-is. Originally built as a pi configuration; this fork is an omo configuration: the teaching philosophy encoded in a skill, a few small extensions, and task briefs.
What's in it #
skills/teach/— the philosophy and the process;researcher.mdis the brief for the researcher taskskills/visualize/— adds a correct, minimal diagram to a lesson when an idea is clearer as a picture;mermaid-maker.mdandsvg-maker.mdare the maker briefs (dispatched through omo'stasktool)extensions/ask-user-question.ts— the agent asks you questions through a UI popupextensions/quiz.ts— graded questions with instant feedback (✓/✗, correct answer, explanation)extensions/md-log.ts— link a markdown file to the session (/md-log <file>,/md-unlog)
Install #
This repo is a .pi directory. From your learning project's root:
git clone <this repo> .pi
# OR, to track it as a submodule of your learning project:
git submodule add <this repo> .pi
Then open omo in that directory and trust the project when asked (project skills and extensions only load in trusted projects).
Vault setup (Obsidian) #
The lesson log and visuals live in your vault; everything else stays out of it:
- Keep your learning project root inside your Obsidian vault and open omo there. Makers publish PNGs to
<project>/viz/, which must be in-vault for embeds to resolve. - Create the log note before linking:
/md-loglinks an existing file, it never creates one (touch lesson.md, then/md-log lesson.md). The note must be in the same vault asviz/— Obsidian resolves![[name]]embeds by filename within one vault only. - Nothing to exclude from Sync:
.pi/,.omo/, and.gitall start with a dot, and Obsidian Sync always excludes hidden files and folders (only.obsidianis the exception). Lesson notes andviz/*.pngimages sync as normal vault content.
Requirements #
- omo. Subagents run through its built-in
tasktool, which spawns a worker that reads the brief file and follows it. - The visual makers must run on a model that can see images; the skill dispatches them with
category="unspecified-high". Point that category at a vision-capable model inomo.jsonc. - Rendering:
npx(for@mermaid-js/mermaid-cli, which uses a puppeteer-managed Chrome) andrsvg-convert(ornix shell nixpkgs#librsvg, or ImageMagick as a fallback). ask-user-question— use the copy bundled here. If your setup already has anask-user-questionextension, use this one in its place. Popups from different extensions serialize through a shared UI lock, which only works when it's the same implementation.
Notes #
The teaching skill is written for one learner (me). Edit the skill to fit how you learn best.