Un asistente de IA discreto justo encima de tu pantalla
Hace poco me encontré con un interesante proyecto de código abierto llamado cue. Es una pequeña aplicación que flota como una ventana semitransparente sobre todos los demás programas, escucha llamadas, observa tu pantalla y proporciona sugerencias en tiempo real. Lo más interesante aquí ni siquiera es la integración con LLM, sino cómo la utilidad se oculta del uso compartido de pantalla en Zoom, Google Meet o Teams.
Si has visto servicios de pago como Cluely o Interview Coder, el concepto te resultará familiar. El desarrollador de cue decidió crear una alternativa gratuita de código abierto (licencia GPL-3.0) donde puedes conectar tu propia clave API y evitar suscripciones de terceros.
Cómo funciona este asistente
La aplicación divide la información entrante en tres flujos independientes.
Primer flujo — tu pantalla. La utilidad toma una captura de pantalla cuando presionas una combinación de teclas o envías una solicitud.
Segundo flujo — tu micrófono. cue escucha la voz del propietario del equipo y transcribe el habla a texto.
Tercer flujo — audio del sistema (lo que dicen los demás participantes a través de tus auriculares). En Windows, la captura de audio del sistema funciona mediante loopback sin configuración adicional. En macOS a partir de la versión 14.4, utiliza ScreenCaptureKit a través de flags de Chromium.
Los canales de los participantes y del usuario se procesan por separado, por lo que el modelo sabe exactamente quién dijo cada línea. Luego el contexto se envía al modelo de lenguaje elegido, y la respuesta se transmite palabra por palabra directamente en la ventana flotante.
Qué puede hacer cue
La interfaz parece un panel de cristal compacto. El espacio alrededor es clickeable, así que no interfiere con los botones de tu editor de código o navegador.
Estos son los principales escenarios de uso:
- Descomponer tareas en pantalla. Presionas una combinación de teclas (Ctrl+H en Windows o Cmd+H en macOS por defecto), y la app captura la pantalla con código o descripción de la tarea y muestra los pasos de la solución, código funcional y estimaciones de complejidad temporal y espacial.
- Sugerencias de diálogo en tiempo real. El botón "¿Qué debería decir?" analiza las últimas líneas de la otra persona y sugiere una respuesta lógica.
- Resúmenes y preguntas. Puedes presionar un botón para resumir la conversación o generar preguntas aclaratorias sobre el tema.
- Respuestas a preguntas en formato libre. Puedes escribir cualquier pregunta en el campo de entrada, combinando la captura de pantalla de la ventana abierta y el historial reciente de la discusión.
La configuración incluye un campo de currículum. Puedes pegar tu experiencia profesional allí, y el asistente se basará en experiencia real al responder preguntas difíciles.
Transcripción local y selección de modelos
El proyecto sigue el concepto Bring Your Own Key (BYOK). El autor no tiene servidores, no hay telemetría y las claves se almacenan localmente en el archivo cue-data.json.
Los proveedores compatibles incluyen OpenAI, Anthropic Claude, Google Gemini, Azure AI Foundry, así como cualquier endpoint local o personalizado compatible con OpenAI Chat Completions (por ejemplo, Ollama o vLLM).
Si no quieres enviar el flujo de audio a la nube, puedes cambiar la transcripción de voz a whisper.cpp. En la configuración de audio, seleccionas el modo local y descargas el modelo necesario, desde el base base.en hasta variantes multilingües y cuantizadas. La aplicación inicia un proceso whisper-server local en un puerto temporal y encola el audio a través de él. Los datos de audio no se escriben en disco, permaneciendo solo en RAM.
Cómo la ventana permanece invisible durante el uso compartido de pantalla
El detalle técnico más interesante de cue es su protección contra aparecer en capturas de pantalla y transmisiones. No es un truco de tarjeta gráfica ni un hack de transparencia.
Dentro de Electron, se llama al método setContentProtection(true), que accede directamente a los mecanismos a nivel de sistema del sistema operativo:
- En Windows, se usa la llamada
SetWindowDisplayAffinitycon el flagWDA_EXCLUDEFROMCAPTURE. El administrador de ventanas de Windows (DWM) simplemente excluye la ventana de todas las transmisiones de captura. En versiones antiguas de Windows 10 (antes de 2004), esto resultaba en un rectángulo negro, pero en versiones más nuevas la ventana se vuelve completamente invisible para la captura. - En macOS, se establece el flag
NSWindowSharingNone. Le indica al servidor de ventanas que oculte la ventana de las transmisiones. Sin embargo, a partir de macOS 15.4, Apple cambió ligeramente el comportamiento de la API, por lo que en versiones recientes no se garantiza una invisibilidad del 100%.
Hay un matiz para Zoom. En la configuración del cliente, necesitas habilitar el modo avanzado con filtrado de ventanas:
Sin esta casilla de verificación, Zoom intenta capturar la pantalla sin procesar omitiendo los filtros de privacidad de ventanas. Para Google Meet y Microsoft Teams no se necesita configuración adicional, ya que respetan los flags del sistema por defecto.
Instalación y ejecución
La forma más sencilla es descargar un binario listo para usar desde la página de releases del repositorio. Hay compilaciones disponibles para Windows x64 y macOS en procesadores Apple Silicon.
Si quieres compilar el proyecto desde el código fuente, necesitas Node.js versión 22.12 o superior. La compilación no requiere cadenas de herramientas nativas pesadas, ya que el autor escribió intencionalmente el cliente en HTML, CSS y JS puro sin marcos adicionales:
git clone https://github.com/Blueturboguy07/cue.git
cd cue
npm install
npm start
Si planeas usar Whisper local desde el código fuente, necesitas preparar los binarios antes del primer lanzamiento:
npm run prepare:whisper
Después de iniciar la aplicación, necesitarás otorgar permisos de micrófono y grabación de pantalla (en macOS), luego pegar tu clave API en la configuración.
En resumen
cue es un claro ejemplo de cómo se pueden combinar características estándar de Electron y APIs del sistema para construir un compañero útil para llamadas, lluvia de ideas o resolución de problemas técnicos. El código en el repositorio es compacto y muy legible, por lo que el proyecto también es excelente para cualquiera que quiera entender la captura de flujos de audio y el control de visibilidad de ventanas en aplicaciones de escritorio.
Proyectos relacionados