Your teaching files, your AI co-teacher. Upload curriculum materials, get a digital co-teacher that generates lessons in your voice.
Project description
EDUagent ๐
Your teaching files, your AI co-teacher.
Open-source AI assistant that learns from your lesson plans and generates new ones in your exact teaching voice.
No cloud service. No vendor lock-in. Your materials stay on your machine.
Quickstart ยท Features ยท Roadmap ยท Contributing
If EDUagent helps your teaching, give it a star. It helps other teachers find it.
How it works
Your lesson plans (PDFs, DOCX, PPTX, TXT)
โ
EDUagent reads them and learns your teaching fingerprint:
โข Teaching style (inquiry-based, direct instruction, Socratic...)
โข Structural preferences (AIM questions, Do Nows, exit tickets...)
โข Vocabulary level and tone
โข Assessment approach
โ
You ask: "Plan a 2-week unit on WWI for my 10th graders"
โ
EDUagent generates:
โข Full unit plan with essential questions
โข 10 daily lesson plans in YOUR voice
โข Student worksheets, assessments, rubrics
โข IEP/504 accommodations
โข Differentiation for struggling/advanced/ELL students
Real output
This is actual EDUagent output โ not mockups. Generated for an 8th grade Social Studies class studying the American Revolution.
Unit plan:
Unit: "Liberty and Loyalty: The American Revolution"
Duration: 2 weeks (10 lessons)
Essential Questions:
1. Was war inevitable?
2. What defines freedom?
3. How do ideas change the world?
4. When is rebellion justified?
Lesson 1 โ Do Now (verbatim from generation):
Alright, friends, as you settle in, I want you to take out your notebook and answer this question on the board: 'What does freedom mean to you? Is there ever a time when following the rules is more important than being free?' Take 5 minutes to jot down your honest thoughts. There are no wrong answers here; I just want to hear your voice.
Lesson 1 โ Direct Instruction (verbatim):
Alright, friends, today we're starting one of my favorite units in all of history. We're going to answer a question that sounds simple but is actually incredible: How did ordinary people decide to risk everything for freedom? I want you to really sit with this for a second.
Lesson 2 โ Do Now (verbatim):
Alright, friends, settle in. Grab your notebooks. I want you to think about this: Have you ever had to pay for something or follow a rule that you didn't agree with? Maybe a chore you didn't want to do, or a fee you thought was unfair? Write down: 1) What was the rule or cost? 2) How did it make you feel? 3) Did you speak up against it? You have 5 minutes. Let's get those minds warming up.
Every lesson includes differentiation, exit tickets, and homework โ all in the teacher's voice. See FEATURES.md for more.
๐ Getting Started
Never used a terminal? No problem. We'll walk you through everything step by step.
Step 1 โ Check that Python is installed
EDUagent runs on Python. Most Macs already have it. Here's how to check:
- On a Mac: press
Cmd + Space, typeTerminal, hit Enter - On Windows: press the Windows key, type
cmd, hit Enter - In the window that opens, type this and press Enter:
If you see something likepython --versionPython 3.11.2, you're good. If you see an error, download Python here โ click the big yellow button and run the installer.
Step 2 โ Install EDUagent
In the same Terminal window, type this and press Enter:
pip install eduagent
Wait about 30 seconds. You'll see text scrolling โ that's normal. When it stops and you see a $ again, it worked.
Step 3 โ Get an AI key (free to start)
EDUagent needs an AI brain. The easiest option is Anthropic Claude โ you get $5 free credit, no credit card required.
- Go to console.anthropic.com and create a free account
- Click API Keys in the left sidebar โ Create Key
- Copy the key (starts with
sk-ant-...) - Back in Terminal, type this (replace the key with yours):
- Mac/Linux:
export ANTHROPIC_API_KEY=sk-ant-your-key-here - Windows:
set ANTHROPIC_API_KEY=sk-ant-your-key-here
- Mac/Linux:
Prefer ChatGPT? Use
OPENAI_API_KEY=instead. Want free? Install Ollama and runeduagent config set-model ollamaโ no API key needed.
Step 4 โ Start EDUagent
eduagent chat
That's it. EDUagent will ask you a few questions about what you teach, then you can point it at your existing lesson plans (or just start from scratch).
Example:
EDUagent: What do you teach?
You: 9th grade Global History in New York
EDUagent: Do you have any lesson plans or materials I can learn from?
You: yes, they're in my Documents/Teaching folder
EDUagent: Analyzing 246 files... I can see your style now.
You love Socratic questioning, primary sources, and AIM questions.
Ready to help โ what do you need?
You: write a do now for tomorrow's lesson on the causes of WWI
EDUagent: Here's your Do Now...
๐ฑ Want it on your phone? (Telegram bot)
Once EDUagent is set up, you can connect it to Telegram so you can generate lessons from your phone โ during your commute, in the copy room, wherever.
What is Telegram? It's a free messaging app (like iMessage or WhatsApp). You need the app on your phone and an account. Download it at telegram.org if you don't have it yet.
Step 1 โ Create your teacher bot
- Open Telegram on your phone
- In the search bar, type @BotFather and tap the result (it has a blue checkmark)
- Tap Start, then send this message:
/newbot - It will ask for a name โ type something like
My Lesson Planner - It will ask for a username โ type something like
mrsmith_lessons_bot(must end inbot) - BotFather will send you a token โ a long string like
7412836591:AAHdqTqFEe... - Copy that token (hold down on it, select Copy)
Step 2 โ Connect it to EDUagent
In Terminal on your computer:
pip install 'eduagent[telegram]'
eduagent bot --token PASTE-YOUR-TOKEN-HERE
Leave that Terminal window open (the bot runs as long as the window is open). Now open Telegram, find your new bot, and send it a message โ it should respond!
Keep it running: For the bot to work when your computer is closed, you'll need to run it on a server. For most teachers, just running it during school hours is fine.
Bonus: Student bot (your students ask questions, get your answers)
You can create a second bot for your students. They join with a class code you create โ then they can ask questions about the lesson and get answers in your teaching voice, any time of day.
- Repeat Step 1 above to create a second bot (e.g.,
mrsmith_students_bot) - Copy the new token
- In Terminal:
eduagent student-bot --token PASTE-STUDENT-BOT-TOKEN-HERE - In your teacher bot, type:
/create-classto get a class code - Share the code and your student bot username with your students
- Students open Telegram, find your student bot, send
/join YOUR-CODEand start asking questions
๐ Prefer a website interface?
eduagent serve
Then open your browser and go to http://localhost:8000 โ you'll see a full dashboard.
๐ฆ Installation options
pip install eduagent # Core (terminal chat + web dashboard)
pip install 'eduagent[telegram]' # + Telegram bot for teacher and students
pip install 'eduagent[voice]' # + Voice note transcription
pip install 'eduagent[all]' # Everything
# Requires Python 3.10+. Run: python --version
# Don't have Python? Download at https://python.org/downloads
๐ง Which AI should I use?
EDUagent is the tool โ it needs an AI brain to do the thinking. Think of it like a car: EDUagent is the car, and the AI is the engine. You pick the engine and pay for it directly. Nothing goes through our servers.
Option 1 โ Anthropic Claude (best quality, pay per use)
Claude is widely considered the best AI for writing and nuanced instruction. Two models to choose from:
- Claude Sonnet 4.6 โ excellent quality, more affordable. Great for daily lesson planning.
- Claude Opus 4.6 โ the smartest available. Noticeably better output, noticeably more expensive.
Setup:
- Go to console.anthropic.com and create an account
- Add a credit card (you only pay for what you use โ no subscription)
- Click API Keys in the left sidebar โ Create Key โ copy it
- In Terminal:
export ANTHROPIC_API_KEY=sk-ant-your-key-here
Cost depends entirely on how much you use it. Light use (a few lessons a week): $10โ30/month. Heavy daily use: $100โ200/month. Opus 4.6 is roughly 5ร more expensive than Sonnet โ only worth it if output quality is your top priority.
Option 2 โ OpenAI GPT-5.4 (professional grade, pay per use)
The company behind ChatGPT. GPT-5.4 is highly capable and produces professional-quality output.
Setup:
- Go to platform.openai.com and create an account
- Add a credit card under Billing
- Click API Keys โ Create new secret key โ copy it
- In Terminal:
export OPENAI_API_KEY=sk-your-key-here
GPT-5.4 is powerful but the cost adds up fast. Light use: $10โ30/month. Heavy daily use: $100โ200/month. No monthly cap โ you pay for every token.
Option 3 โ Ollama Cloud with MiniMax M2.7 (~$20/month flat rate)
Ollama is a platform that gives you access to powerful AI for a flat monthly fee โ no surprise bills. MiniMax M2.7 is an excellent model for education: smart, fast, and great at learning your teaching voice.
Setup:
- Go to ollama.com and create a free account
- There is some free usage to try it before committing
- Upgrade to the $20/month plan for unlimited use
- Find your API key: log in โ click your profile icon (top right) โ Settings โ API Keys โ Generate
- In Terminal:
export OLLAMA_API_KEY=your-key-heretheneduagent config set-model ollama
Best value for most teachers. Flat rate, no surprises, and MiniMax M2.7 is excellent at capturing your specific teaching style.
Option 4 โ Local model on your own computer (โ ๏ธ not recommended)
You can run a small AI model entirely on your computer โ free, no internet needed. The catch: local models are significantly less intelligent than cloud options. They often struggle to capture your teaching voice or write naturally. Most teachers will be disappointed with the results.
If you want to try anyway, we recommend the Qwen 3.5 series:
| Your computer | Recommended model | Command to install |
|---|---|---|
| Basic laptop (8GB RAM) | Qwen 3.5 4B | ollama pull qwen3.5:4b |
| Modern Mac or PC (16GB RAM) | Qwen 3.5 9B | ollama pull qwen3.5:9b |
| High-end workstation (32GB+ RAM) | Qwen 3.5 32B | ollama pull qwen3.5:32b |
Then run: eduagent config set-model ollama
Start with Option 3 if cost is your concern โ $20/month for cloud is far better than a free local model.
Bottom line: Most teachers should start with Option 3 (Ollama cloud, $20/month). Flat rate, great quality, no surprises. If you want the best possible output regardless of cost, use Option 1 with Claude Sonnet 4.6.
๐ Commands
| Command | What it does |
|---|---|
eduagent chat |
Start terminal chat |
eduagent bot --token TOKEN |
Start teacher Telegram bot |
eduagent student-bot --token TOKEN |
Start student Telegram bot |
eduagent serve |
Start web dashboard |
eduagent ingest <path> |
Learn from your lesson plans |
eduagent persona show |
See what EDUagent learned about you |
eduagent unit <topic> |
Generate a unit plan |
eduagent lesson <topic> |
Generate a single lesson |
eduagent materials |
Generate worksheet + assessment |
eduagent sub-packet |
Generate a substitute teacher packet |
eduagent standards list |
Browse your state's standards |
eduagent demo |
See example output (no API key needed) |
๐๏ธ Architecture
Teacher's files (PDFs, DOCX, PPTX, TXT)
โ ingestor.py
Document corpus
โ persona.py
TeacherPersona (style, structure, voice)
โ
Generation pipeline:
planner.py โ UnitPlan
lesson.py โ DailyLesson
materials.py โ Worksheet + Assessment
differentiation.py โ IEP/504 modifications
Delivery:
commands/bot.py โ Telegram bot
commands/generate.py โ Generation CLI commands
commands/config.py โ Config & API key management
commands/export.py โ Export (PDF, Classroom, share)
api/server.py โ Web dashboard (FastAPI)
cli.py โ Entry point (~100 lines)
Security & reliability:
API keys stored in OS keychain (keyring) โ never in config.json
JSON repair via json-repair package for resilient LLM output parsing
Thread-safe SQLite with per-operation connections and context managers
SQL injection guards on all dynamic queries
CORS middleware + slowapi rate limiting on API endpoints
โ Features
- Persona extraction from your curriculum files
- Unit planning with essential questions + lesson sequence
- Daily lesson generation (AIM, Do Now, instruction, exit ticket)
- Worksheets, assessments, rubrics
- IEP/504 accommodation generation
- 50-state standards alignment (auto-detects your state)
- Telegram bot (standalone, no other tools required)
- Web dashboard with streaming generation
- Student chatbot (students ask questions in teacher's voice)
- Voice note transcription
- School/department curriculum sharing
- Substitute teacher packet generator
- Parent communication generator
- Subject skill libraries (Social Studies, Math, Science, ELA, History)
- Self-improvement loop (gets better the more it's used)
- MCP server (tools callable from any AI agent)
- Google Classroom export (personal accounts only โ never school accounts)
- Hosted version (coming soon)
See FEATURES.md for detailed descriptions and screenshots.
๐ Privacy
- Your files never leave your machine unless you choose a cloud LLM
- API keys stored in OS keychain โ not in config files, not in the repo
- Google Drive: Personal accounts only. Never use school-issued Google accounts โ your district's IT policy almost certainly prohibits third-party OAuth, and we don't want to be the reason you get a call from your principal.
๐บ๏ธ Roadmap
See ROADMAP.md for the full plan. Highlights:
| Version | What's coming |
|---|---|
| v0.2.0 | Hosted version โ no install, no terminal, no API keys |
| v0.3.0 | iOS and Android apps |
| v1.0.0 | District deployment with admin dashboard and SSO |
๐ค Contributing
See CONTRIBUTING.md. First issues are labeled good first issue.
Subject matter experts welcome: if you know how great lessons are structured in your subject, open a PR for eduagent/skills/your_subject.py.
๐ License
MIT. Build on it, sell it, use it in your classroom. Just don't be evil.
๐จโ๐ซ Built by a teacher
EDUagent was created by Mr. Mac โ 9 years teaching Social Studies in Long Island, NY school districts. This isn't a startup's idea of what teachers need. It's a tool built by someone who writes lesson plans every week, knows what a good Do Now looks like, and got tired of starting from scratch.
Mr. Mac is the primary user and the reason this exists. Every feature was built because he needed it.
If EDUagent saves you time, star it on GitHub so other teachers can find it.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eduagent-0.1.2.tar.gz.
File metadata
- Download URL: eduagent-0.1.2.tar.gz
- Upload date:
- Size: 405.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46e2b10c2c495255b4b9e44d3a28bb29e78ef119a04b2b67e895ab34793adc0b
|
|
| MD5 |
f56e78f85edfdf300a090a9dfff601ac
|
|
| BLAKE2b-256 |
a82c155e598fb8b3012140e401ebb951f1ce4b312666bbb17cb05eaad689b23d
|
File details
Details for the file eduagent-0.1.2-py3-none-any.whl.
File metadata
- Download URL: eduagent-0.1.2-py3-none-any.whl
- Upload date:
- Size: 322.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b62ccf46f607d31ed4e708ddb90d75790a8df4fec0ece2a6d7df9d33d3a27305
|
|
| MD5 |
2335cde7c30821d60143e120e9e10c06
|
|
| BLAKE2b-256 |
970f753fcf7d043fdb6d8d0ef5017715df823c2bcb0a06aee4f7f7f82f306648
|