Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/optimeta/paideia/init-coursegit clone --depth 1 https://github.com/OPTIMETA/PAIDEIAWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00062 | $0.05840 |
| Opus 5 | $0.00031 | $0.02920 |
| Sonnet 5 | $0.00012 | $0.01168 |
| Haiku 4.5 | $0.00006 | $0.00584 |
Grade B, and why
init-course scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
- Ubuntu: `sudo apt-get install poppler-utils tesseract-ocr tesseract-ocr-kor` Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -fsS --max-time 2 http://localhost:11434/api/tags >/dev/null 2>&1 \ How it starts
The opening of the file, as written. The whole thing — 445 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are bootstrapping the user's current working directory into a fresh paideia workspace. Everything you create lives in the user's CWD, not in the plugin. The plugin itself (skills, commands, vision_ocr.py) is auto-loaded — your job is the per-course state.
Execution plan
Run these steps sequentially. Use the Bash tool. Keep chat output compact — the user is watching progress.
Step 0 — Interface language (ask the user, always in English)
This prompt is always shown in English because we do not yet know the user's preference. After Step 0, all subsequent prompts and output in this command — and all future paideia commands and generated MD narrative — must follow the chosen language.
Print exactly:
Choose interface language for this course (paideia will use it for all
future prompts, drill instructions, and generated MD narrative):
1) en — English (default)
2) ko — 한국어
Press Enter without input: en
Wait for the answer. Normalize 1/english/en/empty → en; 2/korean/ko/한국어 → ko. Remember as INTERFACE_LANG. It goes into .course-meta in Step 6.
From this point on, every user-facing string in this command — prompts, confirmations, the final next-steps block — must be written in $INTERFACE_LANG. Steps 3, 5, and 11 provide both en and ko literal blocks; pick the matching one.
Step 1 — Python deps
Check + offer to install pypdf pdfplumber pytesseract pdf2image pillow reportlab:
python3 -c "import pypdf, pdfplumber, pytesseract, pdf2image, PIL, reportlab" 2>&1 || \
echo "MISSING_PYTHON_DEPS"
If missing: offer python3 -m pip install --break-system-packages --user pypdf pdfplumber pytesseract pdf2image pillow reportlab. Run only with user's OK.
Step 2 — System binaries
command -v pdftoppm >/dev/null 2>&1 && echo "poppler: ok" || echo "poppler: MISSING"
command -v tesseract >/dev/null 2>&1 && echo "tesseract: ok" || echo "tesseract: MISSING"
command -v ollama >/dev/null 2>&1 && echo "ollama: ok (optional)" || echo "ollama: not installed (optional — only needed for --ocr=ollama)"
tesseract --list-langs 2>&1 | grep -q '^kor$' && echo "tesseract-kor: ok" || echo "tesseract-kor: MISSING"
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 445 lines · 62 tokens per session scan B a41866bf2e85
init-course is a command published in the GitHub repository OPTIMETA/PAIDEIA (91 stars, last pushed 1mo ago), licensed MIT. It adds 62 tokens to every session and 5,840 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 2 findings (asks for root, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
fieldtheory
Explain and drive the Field Theory CLI — bookmark-sourced seeds, repo-aware possibility runs that score ideas onto a 2x2 grid, and the interconnected .md files they leave behind. Trigger when the user asks about ft, bookmarks, seeds, ft possible (or the older name ft ideas), grids, dots/nodes, or how to turn saved…
wiki-retro
Save an atomic insight from the current task into the wiki. Creates a single markdown file that layered recall surfaces in future sessions.
tree-ring-capture
Capture a concise validated lesson decision warning or preference in Tree Ring Memory.
publish
Publishes the portfolio: runs the link check, hands off to the content editor for any last fixes, then follows the deploy runbook.
demo-command
Example slash command that wraps the demo-skill. Showcases the command kind.
luyao-character
Command "luyao-character" from wordflowlab/novel-writer, covering 塑造平凡而伟大的人物, 使用方法, 人物类型, 基础类型 and 复合类型.