Your course. Your patterns. Your errors. Your cheatsheet.
A Hermes Agent plugin that turns your own materials into a permanent, editable, per-course study graph β every artifact shaped by you, not by a generic syllabus.
Original PAIDEIA coverage and interactive demo.
νκ΅μ΄ README Β Β·Β taewoopark.com β author site
The PAIDEIA family β one study engine, every agentic runtime
| Platform | Repository | What it is |
|---|---|---|
| PAIDEIA | The original β a Claude Code plugin. | |
| PAIDEIA-codex | OpenAI Codex skills + bundled MCP server. | |
| PAIDEIA-opencode | Command-line harness driving opencode. | |
| PAIDEIA-Hermes | Hermes Agent plugin: CLI commands + gateway routing. | |
| PAIDEIA-mcp | Standalone local MCP server β drive PAIDEIA from Alt local models. | |
| PAIDEIA-Alt | Exam Radar β the Alt lecture-capture plugin (altalt.org). |
Generic study tools teach you the average syllabus. Paideia teaches you your syllabus β
from your professor's notes, your HW emphases, your handwriting, your errors. Every artifact is a markdown file you can edit.
In ancient Greece, ΠαιδΡία was never the deposit of facts into a passive student. It was the lifelong formation of a complete human being β through structured encounter with primary texts, guided practice under a master, and reflective dialogue that folds feedback into deeper revision.
This plugin implements that cycle for the specific, bounded problem of exam preparation in math, physics, and engineering courses:
ingest βββΆ analyze βββΆ drill βββΆ grade βββΆ weakmap βββΆ cheatsheet
β² β
βββββββββββββββββββ feedback loop ββββββββββββββββββββββββ
The study stages save Markdown artifacts in your course folder. You can keep reading, editing, and versioning those files independently of the agent. Generating new artifacts still requires the runtime, tools, and model used by the chosen stage.
Paideia starts with your course, your professor's assignments, and your mistakes. The input is the folder you bring: lecture notes, textbook chapters, homework, solutions, and scanned attempts.
Generic curricula and manually curated flashcards can be useful companions. Paideia adds a specific workflow: extract recurring moves from your solutions, rank practice by homework coverage, and feed recorded errors into the next drill. The table describes that workflow, rather than the features or subscription terms of every learning service.
| Axis | Paideia | A generic course or an unstructured chat |
|---|---|---|
Solution patterns (P1..Pk) |
Extracted from your course's solutions, with source citations | Requires course-specific material and instructions |
| Drill priority | Weighted by your professor's HW emphasis | Must be selected and maintained separately |
| Cheatsheet | Errors shape the traps section; the course index supplies references | Must be assembled and revised separately |
| Per-course state across sessions | Markdown + metadata files in the course folder | Depends on the service and how context is supplied |
| Editing an artifact you disagree with | Open the .md in any editor and save |
Depends on the tool's editing and export support |
| Carrying prep into another semester | Copy the course folder and revise the changed material | Requires moving the relevant material and history |
| Version history of your understanding | git log / git diff, when you commit the files |
Depends on the tool's versioning support |
| Where the artifacts live | Your disk, as text | Depends on the service |
The runner does the model work; the study graph remains yours to open, read, edit, and diff. Changing providers or pausing a subscription does not remove the files already produced.
Default answer OCR is claude: page images are read through the runner's vision path. For local answer OCR, install Ollama and qwen3-vl:8b, then explicitly select OCR_ENGINE: ollama in .course-meta or pass --ocr=ollama to grade. Downloading the model alone does not change the engine. tesseract is the other local option. Local OCR keeps that transcription step local; subsequent analysis and grading still use the configured model and may send it the transcribed text.
Homework is Paideia's primary signal for allocating exam-prep time. Sections with more assigned problems get more practice; sections without homework remain reference material by default. These are study-priority tiers, not measured probabilities or a guarantee of what the professor will test.
| Tier | HW count on section | Treatment | Target share of mock-exam points |
|---|---|---|---|
| π₯π₯ Exam-primary | 3+ | Drill hardest | β₯70% |
| π₯ Exam-likely | 2 | Drill next | ~25% |
| π‘ Exam-possible | 1 | Warm-pass review | β€5% |
| βͺ Low-risk | 0 | Reference only | 0 by default |
/paideia quiz all, /paideia mock 90, and /paideia hwmap hot use this ranking. These allocations are instructions to the generating agent; inspect the resulting mock before relying on its exact distribution. Explicit requests and imported Exam Radar signals can inform what you choose to review.
Actual macOS CLI sessions, viewed through a local terminal viewer. The course uses small synthetic demonstration materials. Β· Capture notes
/paideia status β course Β· D-N Β· phase
|
/paideia help β command reference
|
/paideia init β course setup
|
/paideia doctor β dependency check
|
Start Hermes in the course folder and type /paideia <subcommand>. One slash command exposes 17 study/setup actions, plus help:
status,doctor,help, andinit name="β¦" exam=YYYY-MM-DD β¦return Python-generated results directly.- Bare
inithands an interactive setup wizard to the agent. The 14 study actions (ingest,analyze, drills, grading, reports, andalt) inject an agent turn; the initial βhanded to the agentβ line is an acknowledgement, not the completed artifact. - The agent reads the bundled command spec and skill files and writes results into the current course. You stay in the same conversation for a blind drill's strategy reply.
- PAIDEIA registers a session-start banner and provides
/paideia status. Open Markdown and equations in Obsidian alongside the CLI.
| Stage | What it does | Commands | Produces |
|---|---|---|---|
| Encounter | Read the professor's signal | /paideia ingest |
converted/**/*.md β every lecture, textbook chapter, HW, solution, as clean LaTeX markdown |
| Structure | Extract the grammar of the course | /paideia analyze |
course-index/{summary,patterns,coverage}.md β topic tree, recurring solution patterns (P1..Pk), HW-density exam-tier ranking |
| Practice | Active recall weighted by assigned homework | /paideia quiz, /paideia twin, /paideia blind, /paideia chain, /paideia mock |
quizzes/, twins/, chain/, mock/ β problems you solve on paper |
| Reflection | Your hand-written work becomes a grade | /paideia grade |
answers/converted/<name>.md + errors/log.md β OCR via the agent's vision (default), Ollama/Qwen3-VL, or Tesseract; then strategy-based grading |
| Diagnosis | Errors compressed into a priority-ranked weakness report | /paideia weakmap |
weakmap/weakmap_<ts>.md β append-only history |
| Distillation | One page, error-driven, printable | /paideia cheatsheet, /paideia derive, /paideia pattern |
cheatsheet/final.md, derivations/<slug>.md β reference only what you actually need |
Supporting: /paideia hwmap shows homework-based study priorities, /paideia status shows where you are in the cycle, /paideia init bootstraps a fresh course folder.
The plugin also registers pre_gateway_dispatch. On a configured Hermes gateway, messages such as !paideia quiz Β§1.2 3 (Slack/Matrix), /paideia quiz Β§1.2 3, or paideia quiz Β§1.2 3 can be rewritten into the same study prompt. This rewrite applies to the 14 model-driven study actions only.
status, doctor, help, and init fall through to the host's plugin-command handler. Use the explicit init name="β¦" exam=β¦ form there: the bare wizard depends on CLI inject_message() and the gateway fallback can return the prompt text instead of starting a wizard. Gateway behavior also depends on the host exposing plugin commands on that platform.
Course paths are on the machine running the gateway. Agent-driven prompts use the agent's working directory; deterministic handlers and the banner use the Hermes process's Path.cwd(). Start the gateway in the intended course folder and align terminal.cwd with it. Setting only terminal.cwd does not redirect Python handlers. Upload or copy scans into that server-side course. The README screenshots show the CLI; they are not screenshots of a live Slack deployment.
Required
- hermes-agent, on any provider (Nous Portal, OpenAI/Codex, Anthropic, OpenRouter, local, β¦).
- Python 3.10+ (plugin syntax; the host may require newer) + a Unix-style shell (
bash/zsh; WSL2 on Windows). poppler(pdftoppm) β required by every OCR tier.- macOS:
brew install poppler tesseract tesseract-lang - Linux (Debian/Ubuntu):
apt-get install poppler-utils tesseract-ocr tesseract-ocr-kor
- macOS:
- Python libs:
pip install pdf2image pillow pytesseract reportlab pypdf pdfplumber. Onlypdf2imageandpilloware load-bearing β every OCR tier starts by rasterizing the PDF, so/paideia doctorreports those two as failures and the rest as warnings naming the one command each serves (pytesseractβ the tesseract tier,reportlabβcheatsheet --pdf,pypdf/pdfplumberβ ad-hoc PDF work).
Optional β only for --ocr=ollama (every page image stays on your machine)
ollama+qwen3-vl:8b(~6 GB).brew install ollama/ install script, thenollama pull qwen3-vl:8b.
Run /paideia doctor any time to check all of the above (and /paideia doctor --fix to repair the permission-free ones). It probes the same python3 your agent's terminal uses, so it reports what the agent can actually run.
hermes plugins install OPTIMETA/PAIDEIA-Hermes
hermes plugins enable paideiaRestart hermes; the /paideia command is now available in every session. Alternatives:
# B) git clone straight into the user-plugins dir
git clone https://github.com/OPTIMETA/PAIDEIA-Hermes ~/.hermes/plugins/paideia
hermes plugins enable paideia
# C) dev / local checkout (symlink β edits go live on the next session)
git clone https://github.com/OPTIMETA/PAIDEIA-Hermes && ./PAIDEIA-Hermes/install.shhermes plugins enable paideia records enablement in the active Hermes profile. Plugin discovery uses that profileβs plugins directory; HERMES_HOME can select an isolated profile.
Open hermes inside the folder you want to use for this course, then either run the wizard:
/paideia init
β¦or scaffold non-interactively in one line:
/paideia init name="Complex Analysis MATH 405" exam=2026-12-15 type=final lang=en ocr=claude weak="contour integration"
Either form collects the same six fields β interface language en|ko, COURSE_NAME, EXAM_DATE, EXAM_TYPE, USER_WEAK_ZONES, and the OCR engine β and both run the same scaffolding: the directory skeleton, .course-meta, a project PAIDEIA.md, a .gitignore that excludes archived scans and OCR scratch, and a seeded errors/log.md. A malformed exam= date is rejected rather than scaffolded, since a course whose countdown never appears gives you nothing to notice.
Scaffolding does not initialize Git. Run git init and commit the files if you want version history; add an answers/*.pdf ignore rule if active scans should also stay untracked. Re-running init refreshes .course-meta and preserves existing PAIDEIA.md and error history.
The wizard also runs a dependency check first; after the one-liner, run /paideia doctor yourself. Override the OCR engine for a single grade with /paideia grade --ocr=claude path/to/answer.pdf.
After /paideia init, your course folder looks like this:
my-course/
βββ .course-meta # course name, exam date, interface language (en|ko), OCR engine
β # one KEY: value per line, safe to hand-edit;
β # a `# comment` needs two spaces before it,
β # so `Complex Analysis #2` stays a course name
βββ PAIDEIA.md # per-course workflow context the agent reads
βββ .gitignore # excludes archived scans + OCR scratch; active answer PDFs need your own ignore rule
β
βββ materials/ # YOU DROP RAW FILES HERE (PDF or MD)
β βββ lectures/ textbook/ homework/ solutions/
β
βββ converted/ # generated Markdown β back up edits before re-ingest (output of /paideia ingest)
β βββ lectures/ textbook/ homework/ solutions/
β
βββ course-index/ # knowledge base β built by /paideia analyze
β βββ summary.md # topic tree (Β§1, Β§1.1, Β§2, β¦)
β βββ patterns.md # recurring solution patterns, labeled P1, P2, β¦
β βββ coverage.md # HW β Β§ map with π₯π₯ / π₯ / π‘ / βͺ exam tiers
β βββ radar.md # lecture-emphasis signal β imported by /paideia alt
β
βββ answers/ # YOU DROP HAND-WRITTEN SCAN PDFs HERE
β βββ converted/ # /paideia grade writes OCR'd markdown here
β
βββ errors/log.md # append-only YAML error log (seed for /weakmap + /cheatsheet)
β
βββ quizzes/ # /paideia quiz β each problem has a hidden _answers.md sibling
βββ mock/ # /paideia mock β full mock exams (hidden _sol.md siblings)
βββ twins/ # /paideia twin β same pattern, new surface
βββ chain/ # /paideia chain β multi-pattern integration problems
βββ derivations/ # /paideia derive β clean reference derivations
βββ cheatsheet/ # /paideia cheatsheet β error-driven one-pager (+ optional PDF)
βββ weakmap/ # /paideia weakmap β timestamped, append-only history
Drop source files in materials/ and answer scans in answers/. All Markdown artifacts are editable; generation can overwrite derived files, so commit edits you want to preserve. Keep errors/log.md and the weakmap history: they record personal attempts that cannot be reconstructed from the source PDFs alone. Runtime context files and OCR engine names differ between editions; see the migration FAQ.
Paideia writes everything as plain markdown with LaTeX math ($...$, $$...$$); you can read it in any editor, but Obsidian is the natural choice:
- Renders
$...$and$$...$$math via MathJax with zero configuration. - Backlinks let you click from
quizzes/q_<ts>.mdstraight into the citedconverted/lectures/chN.md Β§K. - The whole course folder is just a vault β point Obsidian at
~/courses/my-course, and everything is a searchable graph. Offline, free, local β consistent with Paideia's philosophy.
The terminal is bad for math; don't fight that.
Obsidian is the companion at the reading end. Alt is the companion at the other end β where the lectures come in. Alt records and transcribes your lectures, and OPTIMETA's Exam Radar plugin runs inside it to rank topics by how strongly the professor emphasized them out loud. Send that into Paideia with /paideia alt, and the loop closes: attend the lecture β capture it β extract the exam signal β study what matters.
cp ~/textbooks/ch*.pdf ~/courses/my-course/materials/textbook/
cp ~/lecture-notes/wk*.pdf ~/courses/my-course/materials/lectures/
cp ~/hw/hw*.pdf ~/courses/my-course/materials/homework/
cp ~/hw/hw*_sol.pdf ~/courses/my-course/materials/solutions/In Hermes:
/paideia ingest # every PDF β vision pipeline (parallel agents, LaTeX-faithful)
/paideia analyze <weak-zone hints> # build patterns + coverage + summary
/paideia hwmap hot # surface π₯π₯ exam-primary zones
/paideia quiz all 20 # broad diagnostic, 20 problems
# solve on paper (40 min), scan to answers/diagnostic.pdf
/paideia grade # selected OCR engine + strategy grade
/paideia weakmap # priority-ranked weakness report
/paideia blind hw3-p2 # strategy-only drill on a known problem
/paideia twin hw3-p2 # variant with same pattern, new surface
/paideia chain 3 # multi-pattern integration problem
/paideia quiz weakmap 5 # 5 problems targeting the latest weakmap
/paideia mock 90 # full 90-min mock weighted by HW density
# solve on paper, scan, upload to answers/mock_<ts>.pdf
/paideia grade # grade the mock
/paideia cheatsheet --pdf # error-driven one-pager
/paideia weakmap # review weak zones one more time
/paideia weakmap # top 3 only. Do not learn new things.
This is the installed command inventory for this edition. It does not include the original's reindex or graph commands.
/paideia <subcommand> [args] β run /paideia help for the list inline.
| Command | Purpose |
|---|---|
/paideia init [name=β¦ exam=β¦ β¦] |
Bootstrap a fresh course folder (wizard, or one-line with args) |
/paideia doctor [--fix] |
Diagnose the install + workspace; --fix repairs permission-free issues |
/paideia status |
One-line course Β· D-N Β· phase Β· top-miss pattern |
/paideia ingest [--force] |
Every PDF in materials/** β markdown in converted/** (subagent per PDF, LaTeX-faithful) |
/paideia analyze [hints] |
Build course-index/{summary,patterns,coverage}.md |
/paideia hwmap hot|<Β§> |
Surface π₯π₯ Exam-primary sections ranked by HW density |
/paideia pattern <Β§|Pk|keyword> |
Show pattern cards from course-index |
/paideia derive <target> |
Clean reference derivation to derivations/<slug>.md |
/paideia quiz <topic|Β§|weakmap> [N] |
N practice problems, answers hidden in a sibling _answers.md |
/paideia blind <problem-id> |
Strategy-check drill on a known problem (describe approach, no re-solve) |
/paideia twin <problem-id> |
Variant of a known problem β same pattern, new surface |
/paideia chain <N> |
Multi-pattern integration problem combining N patterns |
/paideia mock <minutes> |
Full mock exam, HW-density weighted |
/paideia grade [--ocr=<engine>] [path] |
OCR an answer PDF, strategy-grade, append errors/log.md |
/paideia weakmap [concept] |
Priority-ranked weakness report β weakmap/weakmap_<ts>.md |
/paideia cheatsheet [--pdf] |
Error-driven one-pager |
/paideia alt [paste] |
Import an OPTIMETA Exam Radar (Alt) export β radar.md + a lecture-emphasis column on coverage.md |
PDFs are rendered into page images before transcription. Markdown sources are copied with a provenance header. Ingest writes the converted material; analyze then creates summary.md, patterns.md, and coverage.md from those sources.
pd_render.py streams one page at a time, using 160 dpi and a maximum 1800 px long edge for ingest. The command spec asks Hermes to delegate one PDF per agent, with sequential page reading. The selected model and available tools determine whether that agent workflow can run.
Ingest always follows the agent-vision specification. The OCR_ENGINE choice below controls answer grading; selecting ollama does not reroute /paideia ingest to local OCR. Plain Markdown sources do not require image recognition.
Solve on paper, scan to answers/, then run /paideia grade. Engine choice is per course and can be overridden with --ocr=<engine>.
| Engine | Default? | How it runs | When to pick it |
|---|---|---|---|
claude |
Yes | Render pages, then read them through the agent's vision path. | A working vision-capable model/tool configuration. |
ollama |
Optional | Local Ollama qwen3-vl:8b, with Tesseract fallback. |
Keep the answer's OCR page images local. |
tesseract |
Optional | Local pytesseract. |
Typed scans; handwriting and math need careful review. |
Default answer OCR is claude: page images are read through the runner's vision path. For local answer OCR, install Ollama and qwen3-vl:8b, then explicitly select OCR_ENGINE: ollama in .course-meta or pass --ocr=ollama to grade. Downloading the model alone does not change the engine. tesseract is the other local option. Local OCR keeps that transcription step local; subsequent analysis and grading still use the configured model and may send it the transcribed text.
claude is a legacy engine label retained by this port. It means the Hermes agent vision workflow; it does not choose Anthropic or switch the configured model. pd_vision_ocr.py implements only the local tiers; the command spec handles native vision.
The grading instructions check (1) the selected pattern Pk, (2) the variables, substitution, basis, or contour, and (3) the final expression's form. Review the transcription and grade when OCR is uncertain. Errors are appended to errors/log.md using problem_id, pattern, error_type, summary, source, and date. Error types include pattern-missed, wrong-variable, wrong-end-form, algebraic, sign, and definition.
The cheatsheet uses the course index and error history together: patterns/formulas provide reference material, while your errors drive the traps and corrections. --pdf also requests a printable cheatsheet/final.pdf; inspect the rendered equations before printing.
/paideia analyze reads the course's solutions and worked examples, labels recurring moves P1, P2, β¦, and cites the source files under converted/. The resulting pattern cards and HW coverage are the context for later drills. The model-generated index should be checked against your assignments.
Commands append attempts to errors/log.md and save dated reports under weakmap/. Keep that history when re-ingesting or migrating. Generated problem sets have separate answer/solution siblings; solve the problems before opening them.
/paideia status reports course Β· D-N Β· phase Β· top-miss. The detector uses setup when patterns.md is absent; diag when patterns exist without both a quiz problem and a recognized error entry; drill once both exist; mock after a recognized mock-sourced record; cram when cheatsheet/final.md or .pdf exists; and cool on exam day. The latest weakmap's first pattern is preferred, with error-log frequency as fallback. This is a filesystem heuristic, not evidence of mastery.
Hermes also registers an on_session_start banner. The hook is silent outside a course; an explicit /paideia status there returns setup guidance.
PAIDEIA-Hermes/ # == ~/.hermes/plugins/paideia/
βββ plugin.yaml # manifest (name, version, hooks)
βββ __init__.py # register(ctx): /paideia command + on_session_start + pre_gateway_dispatch
βββ pd_meta.py pd_workspace.py pd_errlog.py pd_weakmap.py # deterministic engine
βββ pd_status.py pd_banner.py pd_doctor.py # status / banner / diagnostics
βββ pd_render.py pd_vision_ocr.py # PDFβPNG + offline OCR tiers (run standalone)
βββ pd_prompts.py pd_commands.py # inject-prompt builder + /paideia dispatcher
βββ tests/ # stdlib-only regression suite β ./tests/run.sh
βββ commands/ # 15 agent-facing command specs (.md)
βββ skills/
β βββ paideia-pdf/{SKILL.md,VISION.md} # vision ingest pipeline
β βββ paideia-vision-ocr/SKILL.md # the agent's vision + Ollama + tesseract
β βββ paideia-course-builder/SKILL.md # ingest + analyze
β βββ paideia-exam-drill/{SKILL.md,twin-recipe.md}
β βββ paideia-answer-processing/SKILL.md # strategy-grade OCR output
β βββ paideia-alt-import/SKILL.md
βββ install.sh LICENSE CHANGELOG.md README.md README.ko.md
Run the tests before sending a patch β no install step, no pytest, no venv:
./tests/run.sh # 98 tests, runtime variesThey cover the deterministic engine end to end and pin the cross-file contracts
that would otherwise drift silently: pd_doctor.py deliberately keeps its own
standalone copies of the directory skeleton, the meta keys and the error-log
seed, and every LLM subcommand must have both a command spec and a skill that
exists on disk.
Four of them check that errors/log.md stays valid YAML under fuzzing, which
needs a YAML parser. Without one they skip and the run reports
OK (skipped=4) β so pip install pyyaml if you are touching pd_errlog.py,
or that "OK" is quieter than it looks.
How it maps to hermes' extension surfaces:
| PAIDEIA (Claude Code) | PAIDEIA-Hermes (hermes-agent) |
|---|---|
/paideia:* namespaced commands |
one /paideia slash command + subcommand dispatch (ctx.register_command) |
| auto-loaded skills | skills/paideia-*/SKILL.md, read by absolute path from the inject prompt |
in-session command runs the .md directly |
handler inject_message()s a turn (CLI) / pre_gateway_dispatch rewrite (Slack/Discord) |
SessionStart hook banner |
on_session_start hook |
statusLine hook |
/paideia status + the session banner |
| parallel ingest agents | hermes subagent delegation (one per PDF) |
CLAUDE.md per course |
PAIDEIA.md per course |
- Read the math as Markdown. Open the course in Obsidian or a Markdown-capable desktop view.
- Solve on paper. Scan the answer and choose the OCR path that fits your setup.
- Review strategy and transcription. Pattern, variables, and final form guide grading; OCR and model judgments can need correction.
- Extract patterns from your course. Cite the supplied solutions and worked examples.
- Learn from recorded errors. Let them shape practice and the cheatsheet's traps.
- Use homework to prioritize. Treat its density as a study signal and check it against the announced exam scope.
- Keep the study graph yours. Editable Markdown, preserved error history, and version control across sessions.
Does this work for non-math courses? Ingest and summarization can help, but the practice workflow assumes recurring problem-solving patterns. It is designed for math, physics, engineering, and related quantitative courses.
How does the next session remember my work? The course context, index, and error history are files. Later commands read them again; your study record is not dependent on chat history alone.
Can I edit the patterns or cheatsheet? Yes. Save changes in any Markdown editor and commit the files you want to preserve before regenerating them. Keep the error log and weakmap history.
Korean and English mixed materials?
Set INTERFACE_LANG: en or ko in .course-meta for the generated narrative. File paths, pattern IDs, YAML keys, and tier tokens stay unchanged. The local OCR helper uses the corresponding Tesseract language configuration; install the needed language packs.
Do I need Ollama, and is the whole workflow offline? Ollama is optional. The default uses the runtimeβs vision path. Local OCR keeps image transcription on your machine, but analysis and grading still use your configured model. See the OCR engine table above for the required setup.
Can I move a course between PAIDEIA editions?
The Markdown study artifacts share a layout. Review the destination's context file and engine names first: CLAUDE.md / AGENTS.md / PAIDEIA.md, and claude / codex-native / vision or ollama / qwen3-vl. Preserve your existing metadata and personal history; the versions do not have identical configuration or command sets.
Does model-generated grading need review? Yes. The source scan, transcription, referenced patterns, and YAML log let you inspect and correct an assessment. The status indicator is a file-based workflow cue, not an independent measurement of understanding.
MIT. PAIDEIA-Hermes is a hermes-agent port of OPTIMETA/PAIDEIA and carries the same license and copyright (Β© 2026 Taewoo Park); see LICENSE. Use freely β fork and modify for your own courses. The point of the plugin is that the study graph it builds is yours to shape, not a fixed product you have to live with.
Credits: the original PAIDEIA (Claude Code) and the host platform NousResearch/hermes-agent (MIT).
Generic curricula teach the average student. ΠαιδΡία β formation, one student at a time.



