clawed 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. clawed-0.3.0/.gitignore +42 -0
  2. clawed-0.3.0/LICENSE +21 -0
  3. clawed-0.3.0/PKG-INFO +368 -0
  4. clawed-0.3.0/README.md +295 -0
  5. clawed-0.3.0/clawed/__init__.py +17 -0
  6. clawed-0.3.0/clawed/__main__.py +51 -0
  7. clawed-0.3.0/clawed/analytics.py +284 -0
  8. clawed-0.3.0/clawed/api/__init__.py +1 -0
  9. clawed-0.3.0/clawed/api/deps.py +31 -0
  10. clawed-0.3.0/clawed/api/routes/__init__.py +1 -0
  11. clawed-0.3.0/clawed/api/routes/chat.py +68 -0
  12. clawed-0.3.0/clawed/api/routes/export.py +177 -0
  13. clawed-0.3.0/clawed/api/routes/feedback.py +134 -0
  14. clawed-0.3.0/clawed/api/routes/generate.py +613 -0
  15. clawed-0.3.0/clawed/api/routes/ingest.py +79 -0
  16. clawed-0.3.0/clawed/api/routes/lessons.py +26 -0
  17. clawed-0.3.0/clawed/api/routes/school.py +123 -0
  18. clawed-0.3.0/clawed/api/routes/settings.py +193 -0
  19. clawed-0.3.0/clawed/api/routes/tools.py +130 -0
  20. clawed-0.3.0/clawed/api/routes/waitlist.py +46 -0
  21. clawed-0.3.0/clawed/api/server.py +840 -0
  22. clawed-0.3.0/clawed/api/static/app.js +809 -0
  23. clawed-0.3.0/clawed/api/static/style.css +1527 -0
  24. clawed-0.3.0/clawed/api/static/widget.js +196 -0
  25. clawed-0.3.0/clawed/api/templates/analytics.html +282 -0
  26. clawed-0.3.0/clawed/api/templates/base.html +52 -0
  27. clawed-0.3.0/clawed/api/templates/dashboard.html +168 -0
  28. clawed-0.3.0/clawed/api/templates/generate.html +362 -0
  29. clawed-0.3.0/clawed/api/templates/index.html +246 -0
  30. clawed-0.3.0/clawed/api/templates/lesson.html +249 -0
  31. clawed-0.3.0/clawed/api/templates/profile.html +177 -0
  32. clawed-0.3.0/clawed/api/templates/settings.html +233 -0
  33. clawed-0.3.0/clawed/api/templates/stats.html +140 -0
  34. clawed-0.3.0/clawed/api/templates/students.html +54 -0
  35. clawed-0.3.0/clawed/assessment.py +334 -0
  36. clawed-0.3.0/clawed/auth.py +110 -0
  37. clawed-0.3.0/clawed/bot_state.py +267 -0
  38. clawed-0.3.0/clawed/chat.py +91 -0
  39. clawed-0.3.0/clawed/cli.py +147 -0
  40. clawed-0.3.0/clawed/cli_chat.py +7 -0
  41. clawed-0.3.0/clawed/commands/__init__.py +1 -0
  42. clawed-0.3.0/clawed/commands/_helpers.py +118 -0
  43. clawed-0.3.0/clawed/commands/bot.py +719 -0
  44. clawed-0.3.0/clawed/commands/config.py +1042 -0
  45. clawed-0.3.0/clawed/commands/export.py +749 -0
  46. clawed-0.3.0/clawed/commands/generate.py +860 -0
  47. clawed-0.3.0/clawed/commands/generate_assessment.py +589 -0
  48. clawed-0.3.0/clawed/commands/generate_unit.py +463 -0
  49. clawed-0.3.0/clawed/commands/queue.py +116 -0
  50. clawed-0.3.0/clawed/commands/schedule_cmd.py +169 -0
  51. clawed-0.3.0/clawed/commands/sub.py +161 -0
  52. clawed-0.3.0/clawed/commands/workspace_cmd.py +241 -0
  53. clawed-0.3.0/clawed/config.py +214 -0
  54. clawed-0.3.0/clawed/corpus.py +323 -0
  55. clawed-0.3.0/clawed/curriculum_map.py +239 -0
  56. clawed-0.3.0/clawed/database.py +711 -0
  57. clawed-0.3.0/clawed/demo/__init__.py +55 -0
  58. clawed-0.3.0/clawed/demo/demo_assessment.json +70 -0
  59. clawed-0.3.0/clawed/demo/demo_lesson_science_g6.json +25 -0
  60. clawed-0.3.0/clawed/demo/demo_lesson_social_studies_g8.json +25 -0
  61. clawed-0.3.0/clawed/demo/demo_unit_plan.json +75 -0
  62. clawed-0.3.0/clawed/differentiation.py +208 -0
  63. clawed-0.3.0/clawed/doc_export.py +9 -0
  64. clawed-0.3.0/clawed/drive.py +165 -0
  65. clawed-0.3.0/clawed/evaluation.py +230 -0
  66. clawed-0.3.0/clawed/export_docx.py +585 -0
  67. clawed-0.3.0/clawed/export_markdown.py +722 -0
  68. clawed-0.3.0/clawed/export_pdf.py +137 -0
  69. clawed-0.3.0/clawed/export_pptx.py +831 -0
  70. clawed-0.3.0/clawed/export_theme.py +156 -0
  71. clawed-0.3.0/clawed/exporter.py +2 -0
  72. clawed-0.3.0/clawed/feedback.py +80 -0
  73. clawed-0.3.0/clawed/formats/__init__.py +10 -0
  74. clawed-0.3.0/clawed/formats/flipchart.py +52 -0
  75. clawed-0.3.0/clawed/formats/notebook.py +53 -0
  76. clawed-0.3.0/clawed/formats/xbk.py +70 -0
  77. clawed-0.3.0/clawed/gateway.py +310 -0
  78. clawed-0.3.0/clawed/gateway_response.py +40 -0
  79. clawed-0.3.0/clawed/generation.py +810 -0
  80. clawed-0.3.0/clawed/handlers/__init__.py +4 -0
  81. clawed-0.3.0/clawed/handlers/export.py +91 -0
  82. clawed-0.3.0/clawed/handlers/feedback.py +91 -0
  83. clawed-0.3.0/clawed/handlers/gaps.py +20 -0
  84. clawed-0.3.0/clawed/handlers/generate.py +91 -0
  85. clawed-0.3.0/clawed/handlers/ingest.py +54 -0
  86. clawed-0.3.0/clawed/handlers/misc.py +100 -0
  87. clawed-0.3.0/clawed/handlers/onboard.py +147 -0
  88. clawed-0.3.0/clawed/handlers/schedule.py +50 -0
  89. clawed-0.3.0/clawed/handlers/standards.py +25 -0
  90. clawed-0.3.0/clawed/hosted.py +91 -0
  91. clawed-0.3.0/clawed/improver.py +240 -0
  92. clawed-0.3.0/clawed/ingestor.py +321 -0
  93. clawed-0.3.0/clawed/io.py +46 -0
  94. clawed-0.3.0/clawed/landing/index.html +929 -0
  95. clawed-0.3.0/clawed/landing/success.html +58 -0
  96. clawed-0.3.0/clawed/lesson.py +137 -0
  97. clawed-0.3.0/clawed/llm.py +390 -0
  98. clawed-0.3.0/clawed/materials.py +207 -0
  99. clawed-0.3.0/clawed/mcp_server.py +182 -0
  100. clawed-0.3.0/clawed/memory_engine.py +782 -0
  101. clawed-0.3.0/clawed/model_router.py +85 -0
  102. clawed-0.3.0/clawed/models.py +747 -0
  103. clawed-0.3.0/clawed/onboarding.py +402 -0
  104. clawed-0.3.0/clawed/openclaw_plugin.py +137 -0
  105. clawed-0.3.0/clawed/parent_comm.py +254 -0
  106. clawed-0.3.0/clawed/persona.py +62 -0
  107. clawed-0.3.0/clawed/planner.py +106 -0
  108. clawed-0.3.0/clawed/prompts/504_accommodations.txt +39 -0
  109. clawed-0.3.0/clawed/prompts/assessment.txt +81 -0
  110. clawed-0.3.0/clawed/prompts/curriculum_gaps.txt +49 -0
  111. clawed-0.3.0/clawed/prompts/dbq_assessment.txt +106 -0
  112. clawed-0.3.0/clawed/prompts/differentiation.txt +73 -0
  113. clawed-0.3.0/clawed/prompts/formative_assessment.txt +56 -0
  114. clawed-0.3.0/clawed/prompts/iep_modification.txt +67 -0
  115. clawed-0.3.0/clawed/prompts/lesson_plan.txt +139 -0
  116. clawed-0.3.0/clawed/prompts/pacing_guide.txt +58 -0
  117. clawed-0.3.0/clawed/prompts/parent_note.txt +41 -0
  118. clawed-0.3.0/clawed/prompts/persona_extract.txt +85 -0
  119. clawed-0.3.0/clawed/prompts/quiz.txt +59 -0
  120. clawed-0.3.0/clawed/prompts/rubric.txt +43 -0
  121. clawed-0.3.0/clawed/prompts/sub_packet.txt +75 -0
  122. clawed-0.3.0/clawed/prompts/summative_assessment.txt +65 -0
  123. clawed-0.3.0/clawed/prompts/tiered_assignments.txt +37 -0
  124. clawed-0.3.0/clawed/prompts/unit_plan.txt +67 -0
  125. clawed-0.3.0/clawed/prompts/worksheet.txt +66 -0
  126. clawed-0.3.0/clawed/prompts/year_map.txt +87 -0
  127. clawed-0.3.0/clawed/quality.py +133 -0
  128. clawed-0.3.0/clawed/router.py +561 -0
  129. clawed-0.3.0/clawed/scheduler.py +399 -0
  130. clawed-0.3.0/clawed/school.py +128 -0
  131. clawed-0.3.0/clawed/search.py +199 -0
  132. clawed-0.3.0/clawed/skills/__init__.py +5 -0
  133. clawed-0.3.0/clawed/skills/art.py +96 -0
  134. clawed-0.3.0/clawed/skills/base.py +53 -0
  135. clawed-0.3.0/clawed/skills/computer_science.py +107 -0
  136. clawed-0.3.0/clawed/skills/ela.py +92 -0
  137. clawed-0.3.0/clawed/skills/foreign_language.py +95 -0
  138. clawed-0.3.0/clawed/skills/history.py +94 -0
  139. clawed-0.3.0/clawed/skills/library.py +207 -0
  140. clawed-0.3.0/clawed/skills/math.py +86 -0
  141. clawed-0.3.0/clawed/skills/music.py +94 -0
  142. clawed-0.3.0/clawed/skills/physical_education.py +107 -0
  143. clawed-0.3.0/clawed/skills/science.py +99 -0
  144. clawed-0.3.0/clawed/skills/social_studies.py +82 -0
  145. clawed-0.3.0/clawed/skills/special_education.py +111 -0
  146. clawed-0.3.0/clawed/slide_images.py +498 -0
  147. clawed-0.3.0/clawed/standards.py +694 -0
  148. clawed-0.3.0/clawed/state.py +383 -0
  149. clawed-0.3.0/clawed/state_standards.py +257 -0
  150. clawed-0.3.0/clawed/student_bot.py +669 -0
  151. clawed-0.3.0/clawed/student_cli.py +164 -0
  152. clawed-0.3.0/clawed/student_telegram_bot.py +336 -0
  153. clawed-0.3.0/clawed/sub_packet.py +221 -0
  154. clawed-0.3.0/clawed/task_queue.py +275 -0
  155. clawed-0.3.0/clawed/telegram_bot.py +913 -0
  156. clawed-0.3.0/clawed/templates_lib.py +410 -0
  157. clawed-0.3.0/clawed/tg.py +10 -0
  158. clawed-0.3.0/clawed/transports/__init__.py +5 -0
  159. clawed-0.3.0/clawed/transports/cli.py +124 -0
  160. clawed-0.3.0/clawed/transports/openclaw.py +76 -0
  161. clawed-0.3.0/clawed/transports/telegram.py +432 -0
  162. clawed-0.3.0/clawed/transports/web.py +13 -0
  163. clawed-0.3.0/clawed/tui.py +239 -0
  164. clawed-0.3.0/clawed/voice.py +105 -0
  165. clawed-0.3.0/clawed/waitlist.py +97 -0
  166. clawed-0.3.0/clawed/workspace.py +461 -0
  167. clawed-0.3.0/eduagent/__init__.py +13 -0
  168. clawed-0.3.0/eduagent/_compat.py +55 -0
  169. clawed-0.3.0/pyproject.toml +96 -0
@@ -0,0 +1,42 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ .venv/
8
+ venv/
9
+ env/
10
+ .env
11
+ *.egg-info/
12
+ dist/
13
+ build/
14
+ .eggs/
15
+
16
+ # EDUagent runtime
17
+ *.json
18
+ !examples/**/*.json
19
+ !eduagent/demo/*.json
20
+ !clawed/demo/*.json
21
+ eduagent_output/
22
+ clawed_output/
23
+ eduagent_data/
24
+ clawed_data/
25
+
26
+ # IDE
27
+ .vscode/
28
+ .idea/
29
+ *.swp
30
+ *.swo
31
+
32
+ # macOS
33
+ .DS_Store
34
+
35
+ # Testing
36
+ .pytest_cache/
37
+ .coverage
38
+ htmlcov/
39
+ .ruff_cache/
40
+
41
+ # Build prompts (internal)
42
+ BUILD_PROMPT.md
clawed-0.3.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 EDUagent Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
clawed-0.3.0/PKG-INFO ADDED
@@ -0,0 +1,368 @@
1
+ Metadata-Version: 2.4
2
+ Name: clawed
3
+ Version: 0.3.0
4
+ Summary: Claw-ED — Your teaching files, your AI co-teacher. Upload curriculum materials, get a digital co-teacher that generates lessons in your voice.
5
+ Project-URL: Homepage, https://github.com/SirhanMacx/Claw-ED
6
+ Project-URL: Documentation, https://github.com/SirhanMacx/Claw-ED#readme
7
+ Project-URL: Issues, https://github.com/SirhanMacx/Claw-ED/issues
8
+ Author: Jon Maccarello & Claw-ED contributors
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Keywords: ai,claw-ed,clawed,education,lesson-plans,teachers,teaching
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Education
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Education
20
+ Requires-Python: >=3.10
21
+ Requires-Dist: anthropic<1.0,>=0.40.0
22
+ Requires-Dist: apscheduler<4.0,>=3.10.0
23
+ Requires-Dist: fastapi<1.0,>=0.110.0
24
+ Requires-Dist: httpx<1.0,>=0.25.0
25
+ Requires-Dist: jinja2>=3.1.0
26
+ Requires-Dist: json-repair>=0.30.0
27
+ Requires-Dist: mcp>=1.0.0
28
+ Requires-Dist: openai>=1.0.0
29
+ Requires-Dist: pydantic<3.0,>=2.0.0
30
+ Requires-Dist: pymupdf>=1.23.0
31
+ Requires-Dist: python-docx>=1.0.0
32
+ Requires-Dist: python-multipart>=0.0.6
33
+ Requires-Dist: python-pptx>=0.6.21
34
+ Requires-Dist: pyyaml<7.0,>=6.0
35
+ Requires-Dist: reportlab>=4.0.0
36
+ Requires-Dist: rich>=13.0.0
37
+ Requires-Dist: slowapi<1.0,>=0.1.9
38
+ Requires-Dist: sse-starlette>=1.6.0
39
+ Requires-Dist: typer<1.0,>=0.9.0
40
+ Requires-Dist: uvicorn[standard]>=0.27.0
41
+ Provides-Extra: all
42
+ Requires-Dist: faster-whisper>=0.10.0; extra == 'all'
43
+ Requires-Dist: gunicorn>=21.0.0; extra == 'all'
44
+ Requires-Dist: keyring>=24.0.0; extra == 'all'
45
+ Requires-Dist: python-telegram-bot>=20.0; extra == 'all'
46
+ Requires-Dist: textual>=0.56.0; extra == 'all'
47
+ Requires-Dist: uvicorn[standard]>=0.27.0; extra == 'all'
48
+ Provides-Extra: dev
49
+ Requires-Dist: apscheduler<4.0,>=3.10.0; extra == 'dev'
50
+ Requires-Dist: faster-whisper>=0.10.0; extra == 'dev'
51
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
52
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
53
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
54
+ Provides-Extra: google
55
+ Requires-Dist: google-api-python-client>=2.0.0; extra == 'google'
56
+ Requires-Dist: google-auth-oauthlib>=1.0.0; extra == 'google'
57
+ Provides-Extra: hosted
58
+ Requires-Dist: gunicorn>=21.0.0; extra == 'hosted'
59
+ Requires-Dist: uvicorn[standard]>=0.27.0; extra == 'hosted'
60
+ Provides-Extra: keyring
61
+ Requires-Dist: keyring>=24.0.0; extra == 'keyring'
62
+ Provides-Extra: pdf
63
+ Requires-Dist: weasyprint>=60.0; extra == 'pdf'
64
+ Provides-Extra: telegram
65
+ Requires-Dist: python-telegram-bot>=20.8; extra == 'telegram'
66
+ Provides-Extra: telegram-legacy
67
+ Requires-Dist: python-telegram-bot>=20.8; extra == 'telegram-legacy'
68
+ Provides-Extra: tui
69
+ Requires-Dist: textual>=0.56.0; extra == 'tui'
70
+ Provides-Extra: voice
71
+ Requires-Dist: faster-whisper>=0.10.0; extra == 'voice'
72
+ Description-Content-Type: text/markdown
73
+
74
+ <p align="center">
75
+ <h1 align="center">Claw-ED 🎓</h1>
76
+ <p align="center"><strong>Your teaching files, your AI co-teacher.</strong></p>
77
+ <p align="center">Open-source AI assistant that learns from your lesson plans and generates new ones in your exact teaching voice.</p>
78
+ <p align="center">No cloud service. No vendor lock-in. Your materials stay on your machine.</p>
79
+ </p>
80
+
81
+ <p align="center">
82
+ <a href="https://pypi.org/project/eduagent/"><img src="https://img.shields.io/pypi/v/eduagent?label=PyPI%20(eduagent)&color=blue" alt="PyPI"></a>
83
+ <a href="https://python.org"><img src="https://img.shields.io/badge/Python-3.10+-blue" alt="Python 3.10+"></a>
84
+ <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green" alt="MIT License"></a>
85
+ <a href="https://github.com/SirhanMacx/Claw-ED/stargazers"><img src="https://img.shields.io/github/stars/SirhanMacx/Claw-ED" alt="GitHub stars"></a>
86
+ </p>
87
+
88
+ <p align="center">
89
+ <a href="https://sirhanmacx.github.io/Claw-ED/">Website</a> · <a href="#-getting-started">Quickstart</a> · <a href="FEATURES.md">Features</a> · <a href="ROADMAP.md">Roadmap</a> · <a href="CONTRIBUTING.md">Contributing</a>
90
+ </p>
91
+
92
+ <p align="center">
93
+ <strong>🌐 <a href="https://sirhanmacx.github.io/Claw-ED/">sirhanmacx.github.io/Claw-ED</a></strong>
94
+ </p>
95
+
96
+ ---
97
+
98
+ > **If Claw-ED helps your teaching, [give it a star](https://github.com/SirhanMacx/Claw-ED/stargazers).** It helps other teachers find it.
99
+
100
+ ---
101
+
102
+ ## How it works
103
+
104
+ ```
105
+ Your lesson plans (PDFs, DOCX, PPTX, TXT)
106
+
107
+ Claw-ED reads them and learns your teaching fingerprint:
108
+ • Teaching style (inquiry-based, direct instruction, Socratic...)
109
+ • Structural preferences (AIM questions, Do Nows, exit tickets...)
110
+ • Vocabulary level and tone
111
+ • Assessment approach
112
+
113
+ You ask: "Plan a 2-week unit on WWI for my 10th graders"
114
+
115
+ Claw-ED generates:
116
+ • Full unit plan with essential questions
117
+ • 10 daily lesson plans in YOUR voice
118
+ • Student worksheets, assessments, rubrics
119
+ • IEP/504 accommodations
120
+ • Differentiation for struggling/advanced/ELL students
121
+ ```
122
+
123
+ ## Real output
124
+
125
+ This is actual Claw-ED output — not mockups. Generated for an 8th grade Social Studies class studying the American Revolution.
126
+
127
+ **Unit plan:**
128
+
129
+ ```
130
+ Unit: "Liberty and Loyalty: The American Revolution"
131
+ Duration: 2 weeks (10 lessons)
132
+
133
+ Essential Questions:
134
+ 1. Was war inevitable?
135
+ 2. What defines freedom?
136
+ 3. How do ideas change the world?
137
+ 4. When is rebellion justified?
138
+ ```
139
+
140
+ **Lesson 1 — Do Now (verbatim from generation):**
141
+
142
+ > 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.
143
+
144
+ Every lesson includes differentiation, exit tickets, and homework — all in the teacher's voice. See [FEATURES.md](FEATURES.md) for more.
145
+
146
+ ---
147
+
148
+ ## 🚀 Getting Started
149
+
150
+ **Never used a terminal? No problem.** We'll walk you through everything step by step.
151
+
152
+ ---
153
+
154
+ ### Step 1 — Check that Python is installed
155
+
156
+ Claw-ED runs on Python. Most Macs already have it. Here's how to check:
157
+
158
+ 1. On a **Mac**: press `Cmd + Space`, type `Terminal`, hit Enter
159
+ 2. On **Windows**: press the Windows key, type `cmd`, hit Enter
160
+ 3. In the window that opens, type this and press Enter:
161
+ ```
162
+ python --version
163
+ ```
164
+ If you see something like `Python 3.11.2`, you're good. If you see an error, [download Python here](https://www.python.org/downloads/) — click the big yellow button and run the installer.
165
+
166
+ ---
167
+
168
+ ### Step 2 — Install Claw-ED
169
+
170
+ In the same Terminal window, type this and press Enter:
171
+
172
+ ```
173
+ pip install "clawed @ git+https://github.com/SirhanMacx/Claw-ED.git"
174
+ ```
175
+
176
+ Wait about 30 seconds. You'll see text scrolling — that's normal. When it stops and you see a `$` again, it worked.
177
+
178
+ > **Note:** Claw-ED is not yet published to PyPI. Install from GitHub as shown above. A PyPI release is coming soon.
179
+
180
+ > **Upgrading from EDUagent?** Claw-ED is the same project, renamed. `pip install clawed` replaces `pip install eduagent`. All your existing config, lesson files, and API keys continue to work. The `eduagent` command still works too.
181
+
182
+ ---
183
+
184
+ ### Step 3 — Get an AI key
185
+
186
+ Claw-ED needs an AI brain. We recommend **Ollama Cloud** ($20/month flat rate). See [Which AI should I use?](#-which-ai-should-i-use) below for setup, or to try **Anthropic Claude** with $5 free credit:
187
+
188
+ ```
189
+ export ANTHROPIC_API_KEY=sk-ant-your-key-here # Mac/Linux
190
+ set ANTHROPIC_API_KEY=sk-ant-your-key-here # Windows
191
+ ```
192
+
193
+ ---
194
+
195
+ ### Step 4 — Start Claw-ED
196
+
197
+ ```
198
+ clawed chat
199
+ ```
200
+
201
+ That's it. Claw-ED will ask what you teach, learn from your existing files, and start generating in your voice.
202
+
203
+ ---
204
+
205
+ ### 📱 Want it on your phone? (Telegram bot)
206
+
207
+ Once Claw-ED 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.
208
+
209
+ **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](https://telegram.org) if you don't have it yet.
210
+
211
+ **Step 1 — Create your teacher bot**
212
+
213
+ 1. Open Telegram on your phone
214
+ 2. In the search bar, type **@BotFather** and tap the result (it has a blue checkmark)
215
+ 3. Tap **Start**, then send this message: `/newbot`
216
+ 4. It will ask for a name — type something like `My Lesson Planner`
217
+ 5. It will ask for a username — type something like `mrsmith_lessons_bot` (must end in `bot`)
218
+ 6. BotFather will send you a **token** — a long string like `7412836591:AAHdqTqFEe...`
219
+ 7. Copy that token (hold down on it, select Copy)
220
+
221
+ **Step 2 — Connect it to Claw-ED**
222
+
223
+ In Terminal on your computer:
224
+ ```
225
+ pip install 'clawed[telegram]'
226
+ clawed bot --token PASTE-YOUR-TOKEN-HERE
227
+ ```
228
+
229
+ 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!
230
+
231
+ > **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.
232
+
233
+ ---
234
+
235
+ **Student bot:** Create a second bot for students — they join with a class code and can ask questions in your teaching voice. See [BOT_SETUP.md](docs/BOT_SETUP.md) for full student bot instructions.
236
+
237
+ ---
238
+
239
+ ### 🌐 Prefer a website interface?
240
+
241
+ ```
242
+ clawed serve
243
+ ```
244
+
245
+ Then open your browser and go to **http://localhost:8000** — you'll see a full dashboard.
246
+
247
+ ---
248
+
249
+ ## 📦 Installation options
250
+
251
+ ```bash
252
+ # Install from GitHub (PyPI release coming soon):
253
+ pip install "clawed @ git+https://github.com/SirhanMacx/Claw-ED.git"
254
+
255
+ # With extras:
256
+ pip install "clawed[telegram] @ git+https://github.com/SirhanMacx/Claw-ED.git"
257
+ pip install "clawed[all] @ git+https://github.com/SirhanMacx/Claw-ED.git"
258
+
259
+ # Requires Python 3.10+. Run: python --version
260
+ # Don't have Python? Download at https://python.org/downloads
261
+ ```
262
+
263
+ ## 🔧 Which AI should I use?
264
+
265
+ Claw-ED needs an AI brain. We recommend **Ollama Cloud** — $20/month flat rate, great quality, no surprises.
266
+
267
+ 1. Go to [ollama.com](https://ollama.com) and create a free account (some free usage included)
268
+ 2. Upgrade to the **$20/month** plan for unlimited use
269
+ 3. Grab your API key: profile icon → **Settings** → **API Keys** → **Generate**
270
+ 4. In Terminal:
271
+ ```
272
+ export OLLAMA_API_KEY=your-key-here
273
+ clawed config set-model ollama
274
+ ```
275
+
276
+ > **Prefer Anthropic Claude or OpenAI?** Those work too — see [Choosing a Model](docs/CHOOSING_A_MODEL.md) for the full comparison.
277
+
278
+ ## 📋 Commands
279
+
280
+ | Command | What it does |
281
+ |---------|-------------|
282
+ | `clawed chat` | Start terminal chat |
283
+ | `clawed serve` | Start web dashboard |
284
+ | `clawed bot --token TOKEN` | Start teacher Telegram bot |
285
+ | `clawed ingest <path>` | Learn from your lesson plans |
286
+ | `clawed unit "Topic" -g 8 -s "Subject"` | Generate a unit plan |
287
+ | `clawed lesson "Topic" -g 8 -s "Subject"` | Generate a single lesson |
288
+ | `clawed lesson "Topic" ... --format pptx\|docx\|pdf` | Export as PowerPoint, Word, or PDF |
289
+ | `clawed materials -l lesson.json` | Generate worksheet + assessment |
290
+ | `clawed standards list -g 8 -s math` | Browse your state's standards |
291
+ | `clawed gap-analyze -s "Math" -g 8` | Find curriculum gaps against standards |
292
+ | `clawed demo` | See example output (no API key needed) |
293
+
294
+ Run `clawed --help` for the full command list.
295
+
296
+ ### 🖼️ Academic Images — Built In
297
+
298
+ Slides automatically include relevant academic images from Library of Congress, Wikimedia Commons, and Unsplash. No API keys needed. [Details →](docs/SLIDE_IMAGES.md)
299
+
300
+ ## 🏗️ Architecture
301
+
302
+ ```
303
+ Teacher's message (Telegram, CLI, Web, or OpenClaw)
304
+
305
+ Gateway → Router → Handler (generate, export, feedback, onboard, ...)
306
+
307
+ GatewayResponse (text, files, buttons)
308
+
309
+ Teacher sees the result
310
+ ```
311
+
312
+ See [ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full handler and services breakdown.
313
+
314
+ ## ✅ Features
315
+
316
+ - [x] Persona extraction — learns your teaching voice from your files
317
+ - [x] Unit plans, daily lessons, worksheets, assessments, rubrics
318
+ - [x] IEP/504 accommodations and differentiation
319
+ - [x] 50-state standards alignment
320
+ - [x] Telegram bot, web dashboard, student chatbot
321
+ - [x] PPTX, DOCX, PDF export with academic images
322
+ - [x] 12 subject skill libraries + custom YAML plugins
323
+ - [x] Teacher workspace, autonomous scheduler, self-improvement loop
324
+ - [x] Curriculum gap analyzer, voice consistency evaluation
325
+ - [x] Substitute packets, parent communications
326
+ - [x] MCP server (tools callable from any AI agent)
327
+ - [ ] Google Classroom export (coming soon)
328
+ - [ ] Hosted version (coming soon)
329
+
330
+ See [FEATURES.md](FEATURES.md) for the full list with details.
331
+
332
+ ## 🔒 Privacy
333
+
334
+ - **Your files never leave your machine** unless you choose a cloud LLM
335
+ - **API keys stored in OS keychain** — not in config files, not in the repo
336
+ - **Google Drive:** Personal accounts only — never use school-issued accounts
337
+
338
+ ## 🗺️ Roadmap
339
+
340
+ See [ROADMAP.md](ROADMAP.md) for the full plan. Highlights:
341
+
342
+ | Version | What's coming |
343
+ |---------|--------------|
344
+ | **v0.3.0** *(current)* | Claw-ED architecture — gateway, handlers, transports |
345
+ | **v0.4.0** | Hosted version — no install, no terminal, no API keys |
346
+ | **v1.0.0** | District deployment with admin dashboard and SSO |
347
+
348
+ ## 🤝 Contributing
349
+
350
+ See [CONTRIBUTING.md](CONTRIBUTING.md). First issues are labeled `good first issue`.
351
+
352
+ Subject matter experts welcome: if you know how great lessons are structured in your subject, open a PR for `clawed/skills/your_subject.py`.
353
+
354
+ ## 📄 License
355
+
356
+ MIT. Build on it, sell it, use it in your classroom. Just don't be evil.
357
+
358
+ ---
359
+
360
+ ## 👨‍🏫 Built by a teacher
361
+
362
+ Claw-ED was created by **Mr. Mac** — 9 years teaching Social Studies in Long Island, NY. Not a startup's idea of what teachers need. A tool built by someone who writes lesson plans every week and got tired of starting from scratch.
363
+
364
+ ---
365
+
366
+ <p align="center">
367
+ <strong>If Claw-ED saves you time, <a href="https://github.com/SirhanMacx/Claw-ED/stargazers">star it on GitHub</a></strong> so other teachers can find it.
368
+ </p>