loading [
0%
]
EN
☽
EN
RU
☀
☽

User guide

Getting a program from an LLM, the screens, the exam, notes and encryption, the Obsidian plugin and Markdown export.


Getting started

  1. Get a learning program. The prompts for that live in the repository: core/assets/generate-roadmap.md produces the skeleton of a program, and core/assets/generate-topic.md produces a single topic file. Paste the first one into any LLM chat, write below it what you want to learn, take the resulting roadmap.yaml and progress.yaml, then use the second prompt to build the topics one by one. The result is a bundle — a folder with roadmap.yaml, topics/*.yaml and examiner.md. There is a ready example in the repository under examples/llm-agents-base. There is no “copy the prompt” button in the interface yet.
  2. Open it. On the home screen press “Choose folder” or “Choose archive”. The app validates the bundle and shows the errors, if any.
  3. Open a topic and start.

Screens

ScreenWhat for
Programevery topic by stage, statuses, entry point into a topic
Topicmaterials, practice, questions, note
Practicetimer for the topic’s timebox, survives a restart
Examquestions, answers and the verdict
Queuewhat to do now: available topics and reviews that came due
Reviewtopics whose revalidation date has arrived
Staletopics that changed after the program was regenerated
Graphtopic dependencies by layer
Notes · Searchall notes and search across them
Statisticshours, statuses, history
Settingslanguage, LLM provider, notes, encryption, offline, history

The exam

Two paths, both yours:

  • Copy-paste (the default). The app assembles the prompt, you paste it into any chat and paste the model’s answer back. No key, no account.
  • Provider. Settings let you point at Ollama (local) or an OpenAI-compatible endpoint with a key. The key is kept in the OS keychain.

The verdict is written into your program’s progress.yaml. Nothing else in the bundle is ever written to. What the model has to return, and what each verdict does to a topic’s status, is in the exam protocol.

Notes

A topic note is a plain .md file with a tolearn: roadmap/topic frontmatter. By default notes live in the app’s data directory, but settings let you point at your own vault — an Obsidian folder, for instance: edits made outside are then picked up.

Encryption (Settings → “Encryption”) covers the internal directory: the files become unreadable from outside and the file names give away nothing. The price is stated right on that screen — an external editor, picking up outside edits and the Obsidian plugin all stop working, and losing both the passphrase and the device key means losing the notes. External storage is never encrypted.

Offline

A topic’s materials are downloaded once and saved whole, as a single HTML file. After that the network is not needed: the reader shows the text from the archive. Nothing but an explicitly requested download ever goes online — details in Offline mode.

The Obsidian plugin

It shows the program, the status of the open topic and a “time to review” mark in the status bar, and opens a topic in the app on command. It never writes anything. Point it at the app’s data directory in the plugin settings. The status it shows is the recorded one — blocking and staleness are recomputed by the app, so the precise answer is always there. With encryption on the plugin sees no statuses and says so.

Export

The “Export to Markdown” button on the program screen collects the whole program into one file — table of contents, topics, notes. Answers and traps make it into the file only for topics that were passed. The export never writes inside the bundle itself.