|
640 | 640 | </span> |
641 | 641 | </a> |
642 | 642 |
|
| 643 | +</li> |
| 644 | + |
| 645 | + <li class="md-nav__item"> |
| 646 | + <a href="#web-pwa" class="md-nav__link"> |
| 647 | + <span class="md-ellipsis"> |
| 648 | + |
| 649 | + Web PWA |
| 650 | + |
| 651 | + </span> |
| 652 | + </a> |
| 653 | + |
| 654 | +</li> |
| 655 | + |
| 656 | + <li class="md-nav__item"> |
| 657 | + <a href="#tui-dashboard-terminal" class="md-nav__link"> |
| 658 | + <span class="md-ellipsis"> |
| 659 | + |
| 660 | + TUI Dashboard (terminal) |
| 661 | + |
| 662 | + </span> |
| 663 | + </a> |
| 664 | + |
643 | 665 | </li> |
644 | 666 |
|
645 | 667 | </ul> |
|
980 | 1002 | </span> |
981 | 1003 | </a> |
982 | 1004 |
|
| 1005 | +</li> |
| 1006 | + |
| 1007 | + <li class="md-nav__item"> |
| 1008 | + <a href="#web-pwa" class="md-nav__link"> |
| 1009 | + <span class="md-ellipsis"> |
| 1010 | + |
| 1011 | + Web PWA |
| 1012 | + |
| 1013 | + </span> |
| 1014 | + </a> |
| 1015 | + |
| 1016 | +</li> |
| 1017 | + |
| 1018 | + <li class="md-nav__item"> |
| 1019 | + <a href="#tui-dashboard-terminal" class="md-nav__link"> |
| 1020 | + <span class="md-ellipsis"> |
| 1021 | + |
| 1022 | + TUI Dashboard (terminal) |
| 1023 | + |
| 1024 | + </span> |
| 1025 | + </a> |
| 1026 | + |
983 | 1027 | </li> |
984 | 1028 |
|
985 | 1029 | </ul> |
@@ -1066,6 +1110,7 @@ <h2 id="studyctl">studyctl<a class="headerlink" href="#studyctl" title="Permanen |
1066 | 1110 | studyctl<span class="w"> </span>docs<span class="w"> </span>serve<span class="w"> </span><span class="o">[</span>--port<span class="w"> </span>PORT<span class="o">]</span><span class="w"> </span><span class="c1"># Serve docs site locally</span> |
1067 | 1111 | studyctl<span class="w"> </span>docs<span class="w"> </span>open<span class="w"> </span><span class="c1"># Build and open docs in browser</span> |
1068 | 1112 | studyctl<span class="w"> </span>docs<span class="w"> </span>list<span class="w"> </span><span class="c1"># List available doc pages</span> |
| 1113 | +studyctl<span class="w"> </span>tui<span class="w"> </span><span class="c1"># Launch interactive TUI dashboard</span> |
1069 | 1114 | studyctl<span class="w"> </span>docs<span class="w"> </span><span class="nb">read</span><span class="w"> </span>PAGE<span class="w"> </span><span class="c1"># Read a page aloud via study-speak</span> |
1070 | 1115 | </code></pre></div> |
1071 | 1116 | <h3 id="confidence-levels">Confidence Levels<a class="headerlink" href="#confidence-levels" title="Permanent link">¶</a></h3> |
@@ -1099,6 +1144,127 @@ <h3 id="confidence-levels">Confidence Levels<a class="headerlink" href="#confide |
1099 | 1144 | <h3 id="spaced-repetition-intervals">Spaced Repetition Intervals<a class="headerlink" href="#spaced-repetition-intervals" title="Permanent link">¶</a></h3> |
1100 | 1145 | <p>Review schedule: <strong>1 → 3 → 7 → 14 → 30 days</strong></p> |
1101 | 1146 | <p><code>studyctl review</code> shows what's due based on when you last recorded progress.</p> |
| 1147 | +<h3 id="web-pwa">Web PWA<a class="headerlink" href="#web-pwa" title="Permanent link">¶</a></h3> |
| 1148 | +<p><code>studyctl web</code> launches a progressive web app for flashcard and quiz review. No extra dependencies. LAN accessible by default.</p> |
| 1149 | +<div class="highlight"><pre><span></span><code>studyctl<span class="w"> </span>web<span class="w"> </span><span class="c1"># Serve on 0.0.0.0:8567</span> |
| 1150 | +studyctl<span class="w"> </span>web<span class="w"> </span>--port<span class="w"> </span><span class="m">9000</span><span class="w"> </span><span class="c1"># Custom port</span> |
| 1151 | +studyctl<span class="w"> </span>web<span class="w"> </span>--host<span class="w"> </span>localhost<span class="w"> </span><span class="c1"># Local only</span> |
| 1152 | +</code></pre></div> |
| 1153 | +<table> |
| 1154 | +<thead> |
| 1155 | +<tr> |
| 1156 | +<th>Key</th> |
| 1157 | +<th>Action</th> |
| 1158 | +<th>When</th> |
| 1159 | +</tr> |
| 1160 | +</thead> |
| 1161 | +<tbody> |
| 1162 | +<tr> |
| 1163 | +<td><code>Space</code>/<code>Enter</code></td> |
| 1164 | +<td>Flip card</td> |
| 1165 | +<td>Flashcard, before reveal</td> |
| 1166 | +</tr> |
| 1167 | +<tr> |
| 1168 | +<td><code>Y</code></td> |
| 1169 | +<td>I knew it</td> |
| 1170 | +<td>Flashcard, after reveal</td> |
| 1171 | +</tr> |
| 1172 | +<tr> |
| 1173 | +<td><code>N</code></td> |
| 1174 | +<td>Didn't know</td> |
| 1175 | +<td>Flashcard, after reveal</td> |
| 1176 | +</tr> |
| 1177 | +<tr> |
| 1178 | +<td><code>A</code>-<code>D</code></td> |
| 1179 | +<td>Select quiz option</td> |
| 1180 | +<td>Quiz mode</td> |
| 1181 | +</tr> |
| 1182 | +<tr> |
| 1183 | +<td><code>S</code></td> |
| 1184 | +<td>Skip card</td> |
| 1185 | +<td>During review</td> |
| 1186 | +</tr> |
| 1187 | +<tr> |
| 1188 | +<td><code>T</code></td> |
| 1189 | +<td>Read aloud (once)</td> |
| 1190 | +<td>During review</td> |
| 1191 | +</tr> |
| 1192 | +<tr> |
| 1193 | +<td><code>V</code></td> |
| 1194 | +<td>Toggle auto-voice</td> |
| 1195 | +<td>During review</td> |
| 1196 | +</tr> |
| 1197 | +<tr> |
| 1198 | +<td><code>R</code></td> |
| 1199 | +<td>Retry wrong answers</td> |
| 1200 | +<td>After session</td> |
| 1201 | +</tr> |
| 1202 | +<tr> |
| 1203 | +<td><code>Esc</code></td> |
| 1204 | +<td>Back to home</td> |
| 1205 | +<td>Anywhere</td> |
| 1206 | +</tr> |
| 1207 | +</tbody> |
| 1208 | +</table> |
| 1209 | +<p><strong>Features:</strong> Source/chapter filter, card count limiter (10/20/50/100/All), due cards badge, session history, 90-day study heatmap, Pomodoro timer (25min/5min), OpenDyslexic font toggle, dark/light theme, PWA installable.</p> |
| 1210 | +<p><strong>Voice:</strong> Uses Web Speech API (browser built-in). Two modes: |
| 1211 | +- <strong>Read once</strong> — speaker icon on card or <code>T</code> key |
| 1212 | +- <strong>Auto-voice</strong> — header toggle or <code>V</code> key (reads everything automatically)</p> |
| 1213 | +<p>For best voice quality, download enhanced voices in OS settings (Accessibility → Spoken Content → Voices).</p> |
| 1214 | +<h3 id="tui-dashboard-terminal">TUI Dashboard (terminal)<a class="headerlink" href="#tui-dashboard-terminal" title="Permanent link">¶</a></h3> |
| 1215 | +<p><code>studyctl tui</code> launches a terminal dashboard. Requires <code>uv pip install studyctl[tui]</code>.</p> |
| 1216 | +<table> |
| 1217 | +<thead> |
| 1218 | +<tr> |
| 1219 | +<th>Key</th> |
| 1220 | +<th>Action</th> |
| 1221 | +<th>When</th> |
| 1222 | +</tr> |
| 1223 | +</thead> |
| 1224 | +<tbody> |
| 1225 | +<tr> |
| 1226 | +<td><code>d</code>/<code>r</code>/<code>c</code>/<code>s</code></td> |
| 1227 | +<td>Switch tabs</td> |
| 1228 | +<td>Always</td> |
| 1229 | +</tr> |
| 1230 | +<tr> |
| 1231 | +<td><code>f</code>/<code>z</code></td> |
| 1232 | +<td>Start flashcards/quiz</td> |
| 1233 | +<td>Always</td> |
| 1234 | +</tr> |
| 1235 | +<tr> |
| 1236 | +<td><code>Space</code></td> |
| 1237 | +<td>Flip card</td> |
| 1238 | +<td>During review</td> |
| 1239 | +</tr> |
| 1240 | +<tr> |
| 1241 | +<td><code>y</code>/<code>n</code></td> |
| 1242 | +<td>Correct/incorrect</td> |
| 1243 | +<td>After flip</td> |
| 1244 | +</tr> |
| 1245 | +<tr> |
| 1246 | +<td><code>r</code></td> |
| 1247 | +<td>Retry wrong answers</td> |
| 1248 | +<td>After session</td> |
| 1249 | +</tr> |
| 1250 | +<tr> |
| 1251 | +<td><code>v</code></td> |
| 1252 | +<td>Toggle voice</td> |
| 1253 | +<td>During review</td> |
| 1254 | +</tr> |
| 1255 | +<tr> |
| 1256 | +<td><code>o</code></td> |
| 1257 | +<td>Toggle OpenDyslexic</td> |
| 1258 | +<td>Always</td> |
| 1259 | +</tr> |
| 1260 | +<tr> |
| 1261 | +<td><code>q</code></td> |
| 1262 | +<td>Quit</td> |
| 1263 | +<td>Always</td> |
| 1264 | +</tr> |
| 1265 | +</tbody> |
| 1266 | +</table> |
| 1267 | +<p><strong>Course picker:</strong> Modal appears when multiple directories configured. <strong>Retry mode:</strong> SM-2 scheduling not updated during retry.</p> |
1102 | 1268 | <hr /> |
1103 | 1269 | <h2 id="agent-session-tools">agent-session-tools<a class="headerlink" href="#agent-session-tools" title="Permanent link">¶</a></h2> |
1104 | 1270 | <p>AI session export, search, and management.</p> |
@@ -1159,7 +1325,7 @@ <h3 id="supported-sources">Supported Sources<a class="headerlink" href="#support |
1159 | 1325 | <h3 id="optional-extras">Optional Extras<a class="headerlink" href="#optional-extras" title="Permanent link">¶</a></h3> |
1160 | 1326 | <div class="highlight"><pre><span></span><code>uv<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>agent-session-tools<span class="o">[</span>semantic<span class="o">]</span><span class="w"> </span><span class="c1"># Vector embeddings search</span> |
1161 | 1327 | uv<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>agent-session-tools<span class="o">[</span>tokens<span class="o">]</span><span class="w"> </span><span class="c1"># Token counting</span> |
1162 | | -uv<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>agent-session-tools<span class="o">[</span>tui<span class="o">]</span><span class="w"> </span><span class="c1"># TUI interface</span> |
| 1328 | +uv<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>studyctl<span class="o">[</span>tui<span class="o">]</span><span class="w"> </span><span class="c1"># TUI interface</span> |
1163 | 1329 | </code></pre></div> |
1164 | 1330 |
|
1165 | 1331 |
|
|
0 commit comments