
Jarvis
Asistente personal de escritorio que se maneja con la voz. Lo simple lo resuelve al instante sin LLM; lo complejo lo razona un cerebro con herramientas, y cada acción pasa antes por un candado de seguridad.
- Rol
- Diseño y desarrollo completo
- Estado
- En desarrollo activo
- Plataformas
- Windows · Linux · macOS
- Código
- Repositorio privado · acceso bajo petición
- reflejoabrir_app(calculadora)0,97
- hechoCalculadora abierta391 ms
- acciones de escritorio: 24 sencillas y 3 que siempre piden un «sí»
- 27
- local si se quiere: voz, LLM y síntesis sin salir del PC
- 100 %
- sistemas operativos: Windows, Linux y macOS
- 3
- dependencias npm en el núcleo
- 0
El problema
Los asistentes que pasan todo por un LLM son lentos para lo trivial y arriesgados para lo sensible: tardan segundos en abrir una calculadora y pueden ejecutar una acción destructiva por una mala interpretación.
Jarvis separa las dos cosas. Lo que debe ser instantáneo va por una vía rápida de reflejos (reglas, patrones y un clasificador), y lo que necesita razonar va a un cerebro LLM con herramientas, cuyas propuestas revisa un candado antes de tocar el equipo. Todo puede funcionar en local, sin salir del PC.
En funcionamientoCapturas del proyecto real con datos de ejemplo.
Cómo funcionaPor dónde pasa cada dato, de la entrada a la salida.
Voz → texto
Atajo global, detección de voz y remuestreo a 16 kHz.
whisper.cppVía rápida
Reglas exactas, 11 patrones y un clasificador de reflejos.
segura ≥ 0,95Acción
Apps, volumen, notas, temporizadores, red…
27 accionesResultado
Limpio de markdown y rutas para decirlo en voz alta.
Respuesta
Voz local y conversación continua hasta un «gracias».
PiperCerebro LLM
Elige herramientas y argumentos; local o en la nube.
≤ 5 vueltasCandado
- Inofensiva: se aprueba sola.
- Sensible: pide siempre un «sí» humano.
- Resto: veredicto aprobar, revisar o bloquear con el contexto reciente.
Decisiones técnicasProblemas que aparecieron y cómo se resolvieron.
Reflejos con un LLM local obligado a responder JSON
Un modelo de 8B con salida por esquema estricto clasifica la orden en 344–483 ms, sin coste y sin conexión. Ambos motores de reflejos (local y Jev) comparten el mismo contrato de entrada y salida, y el umbral local es más exigente (0,95) porque ahí la confianza la autoevalúa el propio modelo.
Un candado entre el LLM y el sistema
Cada herramienta que propone el cerebro pasa por tres filtros. Las inofensivas se aprueban solas, las sensibles (apagar, cerrar apps) piden siempre un «sí» humano, y el resto recibe un veredicto aprobar, revisar o bloquear con el contexto de las últimas intervenciones.
Filtro de coherencia sobre el clasificador
El modelo pequeño confundía «sube el volumen» con bajarlo, con seguridad total, y mandaba «cuánto es el 15 % de 240» a abrir la calculadora. Patrones y comprobaciones de coherencia corrigen esos casos antes de ejecutar nada.
VRAM a cero en reposo
Whisper se arranca bajo demanda y se apaga tras 5 minutos sin uso; llama-server limita su contexto porque, sin ese límite, reservaba unos 22 GB y no dejaba sitio a la transcripción.
Micrófono sin silencios en Windows
Forzar el micrófono a 16 kHz devolvía buffers en silencio. Se graba a la frecuencia nativa y se remuestrea con filtro antialiasing, y Whisper se precalienta para no pagar 5–8 s de compilación de shaders en la primera orden.
Una ventana que no roba clics
En Linux, una ventana transparente se queda con los clics de lo que tiene debajo y Electron no los reenvía. La ventana se recorta con setShape al contorno de la píldora más su sombra, y lo comprobé leyendo el canal alfa de la ventana real en X11.
Ahorro de cupo en la nube
Si todas las herramientas salen bien y su resultado se entiende tal cual, se dice sin otra vuelta al LLM. Ante un 429 del gateway se lee Retry-After y se avisa, en lugar de reintentar a ciegas.
Tecnologías
- Node.js
- Servidor HTTP con NDJSON
- Módulos ESM
- Electron
- Canvas
- Web Audio API
- Ollama
- llama.cpp
- AI Gateway
- Tool calling
- Salida estructurada
- whisper.cpp
- Piper
- Linux
- PowerShell
- xdotool
Próximos pasos
- Palabra de activación («oye, Jarvis») sin atajo de teclado.
- Memoria persistente entre conversaciones.
- Integración con Home Assistant para la domótica.
- Instalador con llama-server empaquetado y modelos descargados en el primer arranque.