PairLearn
pendingby Boyan Lin
AI-copiloted learning — build curriculums, track progress, and continue sessions with any LLM.
PairLearn
AI-copiloted learning for Obsidian. Build curriculums, track progress, and continue sessions with any LLM — Claude, ChatGPT, Codex, or a local model.
PairLearn pairs you with AI to learn anything. Everything is stored as plain Markdown, so you're never locked into one tool.
Installation
From Obsidian Community Plugins
- Open Settings → Community Plugins → Browse
- Search for PairLearn
- Click Install, then Enable
Manual Install
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create a folder
.obsidian/plugins/pairlearn/in your vault - Copy the three files into it
- Enable PairLearn in Settings → Community Plugins
Getting Started
- Click the graduation cap icon in the left ribbon (or use command palette: "Open PairLearn")
- Click + New Topic to create your first learning topic
- Use an AI to build your curriculum:
- Claude Code: Use
/learnand say "I want to learn Rust" - ChatGPT / any LLM: Copy
Learning/CONTEXT.md+ your topic'sprogress.mdinto a chat and say "Help me build a curriculum"
- Claude Code: Use
- Come back to PairLearn to see your progress dashboard
How It Works
Learning/ # In your Obsidian vault
├── INDEX.md # Master index of all topics
├── CONTEXT.md # Instructions for any LLM (portability layer)
├── <topic-slug>/ # One folder per learning topic
│ ├── plan.md # Versioned curriculum
│ ├── progress.md # Current state — THE key file
│ └── lessons/ # Session logs (append-only)
│ └── YYYY-MM-DD-HH-<slug>.md
The Key Files
progress.md— Source of truth for where you are. Any LLM can read this and know exactly where to pick up.plan.md— Your curriculum. Versioned — old versions archived inline under<details>blocks.CONTEXT.md— Paste this +progress.mdinto any AI to continue learning anywhere.
Plugin Features
- Learning Hub — Dashboard of all topics with status, progress bars, and filters
- Topic Dashboard — Current position, chapter list, confidence ratings, lesson history
- Interactive confidence stars — Click to rate your understanding (1-5) per chapter
- Chapter checkboxes — Mark chapters complete directly from the dashboard
- Status management — Pause, archive, and restore topics
- Auto-refresh — Dashboard updates when files change (e.g., after an AI session)
- Open files — Click to open plan, progress, or lesson files in Obsidian
Using with AI Tools
Claude Code (recommended)
/learn # Opens the learning skill
"I want to learn Rust" # Starts a new topic
"Continue Solana" # Picks up where you left off
"How's my progress?" # Shows all topics
ChatGPT / Any Chat LLM
- Copy
Learning/CONTEXT.md - Copy your topic's
progress.md - Paste both into a new chat
- Say "Let's continue" — the AI knows exactly where you are
Codex / Agentic Tools
Point the agent at Learning/. CONTEXT.md has all instructions needed.
Concepts
Confidence Scale (1-5)
| Rating | Meaning |
|---|---|
| 1 | Lost — need to start over |
| 2 | Shaky — get the idea, can't apply it |
| 3 | Okay — can do it with references |
| 4 | Solid — can do it independently |
| 5 | Mastery — can teach it |
Topic Status
| Status | Meaning |
|---|---|
active | Currently studying |
paused | On hold, will resume |
completed | Finished the curriculum |
archived | No longer pursuing |
Plan Versioning
- Minor (v1.1, v1.2): Reordering, adding sub-topics, adjusting scope
- Major (v2.0): Fundamental restructure, different learning approach
Design Principles
- Plain Markdown — no databases, no proprietary formats
- AI-portable — works with any LLM via
CONTEXT.md+progress.md - Append-only lessons — sessions are never overwritten
- Versioned plans — curricula evolve, old versions are kept
- Human-readable — browse everything in Obsidian, a text editor, or on GitHub
Development
npm install
npm run dev # Watch mode
npm run build # Production build
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.