ReadAware

Sistema de plugins

Los plugins extienden ReadAware con nuevas acciones, páginas y — lo más importante — nuevas herramientas para el asistente de lectura. Un plugin es un pequeño módulo JavaScript; su interfaz siempre es renderizada por el propio sistema de diseño de la aplicación, por lo que las funciones de los plugins lucen y se sienten nativas.

Lo que un plugin puede contribuir

  • Acciones de selección — entradas en el menú de selección de texto del lector. Envía una palabra a Anki, traduce un pasaje, guarda una cita en cualquier lugar.
  • Botones de encabezado — botones de iconos en la barra superior del lector o de la estantería que abren un popover, o (en la estantería) una página completa.
  • Comandos — entradas en la paleta de comandos. Cada acción de plugin es alcanzable allí automáticamente; los comandos explícitos agregan más.
  • Herramientas de agente — funciones que el asistente de lectura puede llamar durante el chat. Este es el punto de montaje de mayor potencial: un plugin puede permitir que el asistente consulte tu mazo de Anki, tu acumulación de RSS, o cualquier servicio que uses.
  • Proveedores de contenido — libros virtuales cuyos capítulos el plugin suministra bajo demanda. Un feed RSS puede sentarse en tu estantería y ser leído, anotado y discutido como cualquier libro.
  • Voces de lectura en voz alta — motores TTS para la lectura en voz alta del lector. El plugin sintetiza audio; la aplicación posee la reproducción y vuelve a la voz del sistema cuando una llamada falla.
  • Configuración y horarios — la configuración declarada se convierte en la propia sección del plugin en Ajustes (claves de API incluidas, almacenadas cifradas), y los horarios declarados ejecutan trabajo recurrente mientras la aplicación está abierta.

Los plugins lucen nativos, por construcción

Los plugins nunca renderizan su propio HTML. Declaran vistas desde un pequeño vocabulario — markdown, listas, formularios y algunos bloques estructurados — y la aplicación las renderiza con sus propios componentes. Los autores de plugins renuncian al control de píxeles y obtienen cero trabajo de diseño y una aplicación permanentemente consistente a cambio.

El modelo de confianza

Los plugins se ejecutan dentro de la aplicación con el mismo contexto JavaScript — como Obsidian, y a diferencia de un sandbox de extensión de navegador. Se aplican dos capas honestas de protección:

  • Permisos — el manifest de un plugin declara lo que usa (red, datos de lectura, IA, portapapeles, …), y la API solo expone lo que fue declarado. Esto protege contra excesos accidentales.
  • La instalación es la decisión de confianza. Antes de que se copie o ejecute nada, la aplicación muestra exactamente qué permisos solicita el plugin, en lenguaje claro, y espera tu consentimiento. Instala plugins de la misma manera que instalarías software.

La propia arquitectura de la aplicación delimita el radio de explosión: el almacenamiento de plugins está en espacios de nombres dentro del directorio de datos de la aplicación, y la carcasa de escritorio no otorga acceso arbitrario al sistema de archivos.

Instalación de plugins

  • Mercado — Ajustes → Plugins → Mercado lista plugins de la comunidad del registro público; la instalación es de un clic, con el resumen de permisos primero.
  • Desde una carpeta — Ajustes → Plugins puede instalar cualquier carpeta de plugin local. Este es el ciclo de desarrollo: apúntalo a tu directorio de trabajo, reinstala para recoger cambios.

Tú controlas el diseño

Los plugins contribuyen capacidades; tú decides dónde viven los botones. Ajustes → Personalizar organiza cada superficie (barra superior de la estantería, barra superior del lector, menú de selección): arrastra elementos entre la fila visible y el menú de desbordamiento, reordénalos o restablece los valores predeterminados. Las nuevas acciones de plugins llegan al menú de desbordamiento — discretamente — y todo siempre es alcanzable desde la paleta de comandos.

Lee en voz alta con cualquier voz TTS

El plugin TTS Voices incluido enruta la lectura en voz alta a través del motor de tu elección — ElevenLabs, Fish Audio, OpenAI, o cualquier endpoint compatible con OpenAI (Kokoro, LocalAI, puentes de Edge TTS…). Todo vive en Ajustes → TTS Voices: elige un proveedor, y sus campos siguen — las claves de API van directamente al almacén secreto cifrado, y donde el proveedor puede enumerar voces el campo Voz se convierte en una lista (escribe un nombre tú mismo cuando no puede).

Una configuración gratuita popular son las voces neuronales de Edge de Microsoft vía openai-edge-tts, un pequeño servidor local que habla la API de audio de OpenAI:

  1. Ejecuta el servidor localmente — por ejemplo docker run -d -p 5050:5050 travisvn/openai-edge-tts (no se requiere clave de API por defecto).
  2. En Ajustes → TTS Voices, establece Proveedor en Personalizado / local (compatible con OpenAI) y el endpoint en http://127.0.0.1:5050/v1/audio/speech.
  3. Elige una voz de la lista — la aplicación lee el catálogo del servidor, por lo que el conjunto completo de Edge (p. ej. zh-CN-XiaoxiaoNeural, en-US-AriaNeural) aparece junto a los alias de estilo OpenAI.

Luego abre un libro e inicia la lectura en voz alta: las oraciones fluyen a través de tu voz elegida, la siguiente se precarga mientras la actual reproduce, y cualquier llamada fallida vuelve a la voz del sistema en lugar de detener la lectura.

Escribe uno

Un plugin es una carpeta con un manifest.json y un único main.js. La referencia API cubre todo el contrato, y Publicación muestra cómo enviarlo al Mercado.