SpeedReader
SpeedReader contient 3 skills collectées depuis DeadlyApps, avec une couverture métier par dépôt et des pages de détail sur le site.
Skills dans ce dépôt
Use when adding or changing tkinter/ttk UI or pyttsx3 text-to-speech behavior in SpeedReader (Frames/, Controllers/). Covers the daemon-thread + single-init engine callback model, grid/row_index layout, button-state idiom, and single-line Text-index word highlighting. Use to avoid freezing the UI, double-initializing the engine, or breaking highlight offsets.
Use when adding, changing, running, or debugging the SpeedReader MCP server (mcp_server.py) or its tools. Covers the dual stdio + in-process HTTP hosting model, reusing Core for GUI-free TTS, the SpeakService shared rate, the speak tool contract, opt-in config.json hosting, VS Code registration via .vscode/mcp.json, the threaded uvicorn pattern, and how to test by mocking pyttsx3. Use to avoid coupling the server to tkinter or to the GUI startLoop engine.
Use when detecting whether the user is in a call / on the microphone on Windows, or gating SpeedReader MCP agent speech on call state (Core/call_detection.py, mcp.pause_when_mic_in_use). Covers the CapabilityAccessManager registry mic-in-use signal, the recursive packaged/NonPackaged walk, fail-open-to-False behavior, and how the speak tool suppresses (not queues) speech during a call. Use to avoid blocking speech on detection errors or coupling detection to tkinter.