BookinglyTech News
Software

Un copiloto de chat para Android con LLM suma 5.184 estrellas en dos días

Jev, escrito en Kotlin, usa el servicio de accesibilidad y modelos de lenguaje para leer el chat en pantalla, proponer tres respuestas y rellenarlas. Nunca pulsa enviar.

3 min de lecturaGitHub en alza0 vistas

El repositorio jev-chat/jev-chat-jarvis acumula 5.184 estrellas en GitHub dos días después de crearse, a un ritmo medio de 2.239 al día. Es una aplicación de Android escrita en Kotlin que se superpone a las apps de mensajería, lee la conversación que hay en pantalla, propone tres respuestas y deja la elegida en la caja de texto. No la envía.

Primero juzga, luego redacta

El flujo separa dos modelos. Uno de juicio devuelve la intención real del interlocutor, un nivel de peligro de 1 a 9, qué quiere, si conviene responder de inmediato y cuál es la mejor acción; tarda alrededor de un segundo e incluye una estimación de confianza. El otro redacta tres candidatos coloquiales y el primero los ordena. La respuesta se inserta con ACTION_SET_TEXT y, si falla, se recurre al portapapeles. La tecla de enviar la pulsa siempre el usuario, y el programa no toca transferencias ni pagos.

Dónde lee y dónde se rompe

QQ en Android funciona de punta a punta: probado en la 9.3.50 para grupos, y con la conversación individual inferida por la misma estructura. Los mensajes directos de X se leen interpretando el content-desc de los nodos de Compose, probado en la 12.25 y sobre interfaz en chino; la inglesa no está verificada. Feishu y Lark van por OCR, porque el texto se dibuja y no aparece en el árbol de accesibilidad: cada burbuja pasa por el modelo offline de ML Kit, sin subir imágenes. WeChat dejó de estar soportado en la 1.4. Desde la 8.0.52 esconde el texto a los servicios de accesibilidad y activa FLAG_SECURE en algunas cuentas y dispositivos, así que no queda una vía de lectura limpia. Para cualquier otra app hay una opción manual de captura y reconocimiento desde el menú del flotante, y añadir una nueva es escribir un adaptador de unas decenas de líneas.

En los ajustes hay tres rutas independientes —juicio, respuesta y visión— y cada una admite dirección, clave y modelo propios; el proyecto no tiene servidor intermedio. Basta con rellenar la clave del juicio: las otras dos la heredan si se dejan vacías. El preset por defecto para el juicio es Bocha Jev, modelo bocha-jev-v1, de un patrocinador del proyecto y gratuito por tiempo limitado; para redactar, el modelo predeterminado es deepseek/deepseek-chat-v3.1 sobre OpenRouter. Las claves viven en el espacio privado de la app y el contenido del chat solo se envía al endpoint configurado en el momento del análisis: no se escribe en disco, no entra en registros y el historial local está desactivado de forma predeterminada. No necesita root ni Xposed, no hookea ni modifica el paquete de las aplicaciones que lee, y el APK firmado pide Android 11 o superior.

Las 5.184 estrellas las cuenta GitHub, no un tercero, y el repositorio tiene dos días: la cifra habla de curiosidad, no de mantenimiento. Aun así el patrón es reutilizable para quien trabaja con accesibilidad o gestiona parques de móviles: leer solo lo que ya está en pantalla, no tocar la aplicación ajena y dejar el modelo detrás de una clave que controla el usuario. Las versiones de escritorio y web están, de momento, solo planificadas.