An AI workflow that reads your course materials or project descriptions β or just a topic/language you name yourself β and generates a personalized, ADHD-friendly study pack. Transforms lecture slides, PDFs, and assignment briefs (or nothing but a goal) into a single interactive HTML page β flip flashcards, a live-feedback quiz, collapsible concept/step cards, Pomodoro + break timers, and progress tracking, all in one file you just double-click open.
The study output is specifically designed for ADHD learners β this is the most distinctive thing about it:
- 25-minute task blocks with clear end goals
- Mandatory 10-minute breaks every 50 minutes
- Direct action language ("Open this file, read it twice")
- Active learning tasks (write, say aloud, draw)
- Visual analogies for abstract concepts
- Common mistake warnings to prevent confusion
- Multiple learning modalities (visual, auditory, kinesthetic)
Every mode produces a single self-contained index.html β no server, no build
step, no internet connection needed. Open it in any browser and:
- Flip flashcards β click to reveal, mark "I knew it" / "Still learning", filter by topic/difficulty, shuffle
- Live quiz feedback β multiple choice highlights correct/incorrect instantly; short-answer questions reveal a model answer on demand
- Collapsible concept cards, steps, and code walkthroughs β search/filter, accordion-style, code blocks with a one-click copy button
- Built-in timers β a focus timer per task block and an automatic 10-minute break timer, with a sound when time's up
- Progress tracking β checkboxes, known/learning flashcard state, and a
completion ring, all saved in your browser (
localStorage) so closing and reopening the file picks up where you left off - Dark/light mode β follows your system theme, with a manual toggle
- Printable cheat sheet β a
Printbutton gives a clean, nav-free page
Progress is stored per-browser and per-generation β regenerating a pack starts progress fresh, since the content (and therefore task order) may have changed.
Flashcards are also exported as 05a_flashcards.csv for Anki import, since
that's a separate workflow worth keeping outside the browser.
Currently built for Claude Code. Support for other AI agents/runners is planned for a future release.
Pick one of four presets when you run it:
- π Study mode: ADHD-friendly study schedules with concept summaries, flashcards, and practice materials
- π Assignment mode: Step-by-step completion guides for individual assignments
- π§ Solver mode: Complete working solutions with comprehension guides
- πΊ Roadmap mode: A learning roadmap for a topic or language you name yourself β no course files needed, just a goal and a timeframe
- Python 3.x
- Claude Code CLI (
npm install -g @anthropic-ai/claude-code) - Canvas API access (for automatic material fetching)
-
Clone and configure:
git clone <repository-url> cd LearningAgent
-
Create
.envfile:CANVAS_TOKEN=your_canvas_api_token CANVAS_URL=https://your-institution.instructure.com
-
Run it:
# Auto-detect mode from course materials ./run.sh COURSE-CODE 10 # Specify a preset explicitly ./run.sh SYS-102 10 --mode study ./run.sh CS-201 8 --mode assignment ./run.sh MATH-301 6 --mode solver
./run.sh SYS-102 10 --mode studyGenerates one interactive page (outputs/index.html) with:
- Hour-by-hour ADHD-friendly study schedule β checkable tasks with built-in focus timers
- Concept summary cards with analogies and common mistakes
- 30 flip-to-reveal flashcards (also exported as CSV for Anki import)
- Practice quiz with instant feedback and model answers
- One-page printable cheat sheet for exam day
- "Say it out loud" scripts with a practice timer
- Danger questions targeting examiner traps
./run.sh CS-301 12 --mode assignmentGenerates one interactive page (outputs/assignments/index.html) with:
- Sidebar overview of all assignments with time estimates
- Step-by-step completion guide per assignment, with a persisted checklist
- Code scaffolds with a one-click copy button
- Relevant lecture material references
- Common mistakes and testing strategies
- Hints that reveal one at a time so you don't spoil the rest
./run.sh PHYS-201 8 --mode solverGenerates a runnable solution plus one interactive page (outputs/solver/index.html) with:
- Complete working solution (ready to submit) in
outputs/solver/solution/ - Tabbed comprehension guide: Big Picture, Task Analysis, Solution Notes, Code Walkthrough, Q&A Practice
- Code walkthrough with collapsible file/section explanations
- Self-check "questions you must be able to answer" with reveal-answer and a persisted "I can explain this" checklist
- 30-minute crash course for solution comprehension
./run.sh Japanese 5 --mode roadmap
./run.sh "Machine Learning" 6 --mode roadmap \
--type=subject --current="knows Python" --target="ship a small ML project" --duration="3 months"No course files needed β you're prompted for (or pass as flags) a type (subject or language), your current level, your target level, and a duration (e.g. "2 months", "1 year"). The first argument is the topic itself, the second is hours/week you can commit.
Generates one interactive page (outputs/roadmap/index.html) with:
- A phase-by-phase roadmap sized to your duration and weekly hours, each phase with focus areas, checkable milestones, a checkpoint self-test, and phase-specific resources
- General materials (apps, books, courses, communities) for the whole plan β real, verified links where available
- A study log: log each session's date/minutes/notes, see a day streak, total hours, and a GitHub-style 12-week heatmap β all saved in your browser so it persists across visits
- The same progress ring, confetti, and dark/light mode as the other modes
COURSE-CODE is just a folder label β you don't need a real course for this
to work. Drop a single project brief/spec (plus any reference material) and
generate both a concept study pack and a step-by-step completion guide for
it, exactly like the course examples in course-materials/:
# 1. Drop your project doc(s) into course-materials/MY-PROJECT/project/
./run.sh MY-PROJECT 8 --source=local
# 2. Generate the concept study pack (topic map, flashcards, cheat sheet...)
./run.sh MY-PROJECT 8 --mode study --skip-fetch
# 3. Generate the step-by-step completion guide
./run.sh MY-PROJECT 8 --mode assignment --skip-fetchWorks for:
- Personal projects β a side project spec, a portfolio piece, a self-assigned build
- Class projects β a single assignment/project brief without a full course of lecture material
Notes:
--source=localprompts you once to drop files intocourse-materials/MY-PROJECT/project/; use--skip-fetchon the following runs against the same folder so it reuses those files instead of asking again.- Assignment mode reads
assignments.jsonfirst, then falls back to scanning brief files (.pdf.txt.md) directly β make sure your project doc is one of those formats. - If your project already includes starter/source code, drop that in too β the folder will auto-detect
solvermode instead unless you pass--modeexplicitly.
./run.sh <course> <hours> [options]
Options:
--mode <mode> study | assignment | solver | roadmap | auto (default: auto)
--skip-fetch Use existing materials, don't fetch from Canvas
--source=local Drop files manually instead of Canvas fetch
Roadmap-mode-only options (prompted interactively if omitted):
--type=<type> subject | language
--current=<text> Current level, e.g. "complete beginner"
--target=<text> Target level/goal, e.g. "conversational"
--duration=<text> e.g. "2 months", "1 year"
Examples:
./run.sh SEN-109 10 # Auto-detect mode
./run.sh SEN-109 10 --mode study # Study pack for exam
./run.sh SEN-109 10 --mode assignment # Assignment guides
./run.sh SEN-109 10 --skip-fetch --mode study # Use existing files
./run.sh Japanese 5 --mode roadmap # Learning roadmap, prompts for detailscourse-materials/
βββ COURSE-CODE/
β βββ manifest.json # Course metadata
β βββ assignments.json # Assignment details
β βββ files/
β β βββ lecture-1.pdf # Lecture slides
β β βββ lecture-2.pptx # More lectures
β β βββ lab-materials/ # Lab files
β βββ project/ # Manual file drop (--source=local)
course-materials/COURSE-CODE/outputs/
βββ index.html # β
START HERE β interactive study pack (study/auto mode)
βββ 01_topic_map.json # Internal working data β all course topics analyzed
βββ 02_priority_list.json # Internal working data β study priority order
βββ 05a_flashcards.csv # Anki import file (same cards as in index.html)
βββ assignments/
β βββ index.html # β
START HERE β interactive assignment guide (assignment mode)
βββ solver/
β βββ index.html # β
START HERE β interactive comprehension guide (solver mode)
β βββ solution/ # Complete, runnable solution files
βββ roadmap/
βββ index.html # β
START HERE β interactive roadmap + study log (roadmap mode)
Roadmap mode has no input structure β it's driven entirely by the TOPIC,
level, and duration you give run.sh, so course-materials/<topic>/ only
ever contains outputs/roadmap/.
Each index.html is self-contained β open it directly in a browser, no server
or build step required. See Interactive HTML output
above for what's in it.
Fetches from Canvas automatically:
- Lecture slides and course files
- Assignment briefs and rubrics
- Course syllabus and schedule
- Any linked external resources
For courses without Canvas access:
./run.sh COURSE-CODE 10 --source=local
# Drop files into: course-materials/COURSE-CODE/project/
# Supports: .pdf .pptx .txt .md .py .js .cpp .zip and more- Lectures: PDF, PPTX, TXT, MD
- Code: PY, JS, TS, CPP, C, RS, JAVA
- Documents: PDF, TXT, MD, DOCX
- Archives: ZIP, TAR, RAR (auto-extracted)
- Assignments: Any text-based format
- Exams: Comprehensive study schedules with practice questions
- Quizzes: Targeted concept summaries and flashcards
- Projects: Technical concept foundation for implementation
- Labs: Hands-on skill development with theoretical backing
- Programming projects with code scaffolds
- Research papers with outline and source guidance
- Problem sets with step-by-step solutions
- Design projects with methodology and evaluation
Adjust total study time based on course difficulty:
- Light courses: 4-6 hours
- Standard courses: 8-12 hours
- Heavy courses: 15-20 hours
Claude adapts output to different learning needs:
- Visual learners get diagrams and concept maps
- Auditory learners get speaking scripts and explanations
- Kinesthetic learners get hands-on exercises and building tasks
"No materials found"
# Check if course materials were fetched
ls course-materials/COURSE-CODE/
# If empty, try manual fetch or check Canvas credentials"Canvas authentication failed"
# Verify .env file exists and contains valid tokens
cat .env
# Test Canvas connection manually"Files not generated"
- Ensure Claude Code CLI is installed and authenticated
- Check that course materials exist in expected directories
- Try running with
--skip-fetchif materials already exist
- Check the course-materials directory structure
- Verify Canvas API permissions
- Ensure all prerequisites are installed
- Run with manual file drop mode for debugging
# Process multiple courses
for course in SYS-102 CS-201 MATH-301; do
./run.sh $course 10 --mode study
doneThe schedule lives as data inside outputs/index.html, in a
<script id="pack-data" type="application/json"> block. To tweak time blocks,
add personal notes, or adjust break timing, edit that JSON directly β the page
re-renders it on load, no build step needed. For bigger changes (different
topics, different hours), just re-run ./run.sh β it regenerates the whole
pack, though note this resets saved progress (see
Interactive HTML output).
# Import flashcards
# 1. Open Anki
# 2. File β Import
# 3. Select: course-materials/COURSE-CODE/outputs/05a_flashcards.csv
# 4. Configure field mapping
# 5. Import and start daily reviewThis project is designed to be extensible:
- New presets: Add to
INSTRUCTIONS.md - File types: Extend parsing in
canvas_fetcher.py - Learning styles: Customize output templates
- Assessment types: Add new question formats
- 2026.05 v1.0 β initial project setup with study, assignment, and solver modes
- 2026.09 v1.1 β adding modes for assignment and project guided
- 2026.09 v1.2 β fixing learning guide/pack presentation
- 2026.09 v1.3 β adding language learning mode and subject/topic learning
MIT β see LICENSE.
Built with Claude Code for content analysis and generation. Designed for neurodivergent learners and evidence-based study techniques.
Need help? Open an issue or check the troubleshooting section above. Works best with well-organized course materials and clear learning objectives.