Una IA de voz en tiempo real que puede oír, ver, entender y controlar tu computadora — en cualquier SO. Compatible con Windows, macOS y Linux. Construido sobre la API Gemini Live para streaming de audio nativo, sin suscripciones y con autonomía digital total.
MARK LI es la forma final del núcleo: un asistente que extiendes sin tocar jamás su motor. Suelta un solo archivo de plugin en la carpeta plugins/ y JARVIS aprende una nueva habilidad en el siguiente arranque — sin cambios de código, sin configuración, sin riesgos. Y la voz también mejoró: JARVIS ahora oye la emoción en tu voz, sabe cuándo le estás hablando a otra persona en la habitación y se queda en silencio, y puede mantener una conversación por horas sin perder el hilo.
No es solo un asistente — es una extensión de tu vida digital.
| Función | Descripción |
|---|---|
| 🧩 Sistema de Plugins | Suelta un archivo .py en plugins/ — JARVIS aprende una habilidad nueva al siguiente arranque |
| 🎙️ Voz en Tiempo Real | Conversación de latencia ultra-baja en cualquier idioma vía API Gemini Live |
| 💓 Diálogo Afectivo | Oye la emoción en tu voz y adapta su tono en respuesta |
| 🤫 Audio Proactivo | Sabe cuándo no le hablas — el ruido de fondo nunca dispara respuesta |
| ♾️ Sesiones Ilimitadas | Compresión de contexto con ventana deslizante — una conversación puede durar horas |
| 🖥️ Control del Sistema | Abre apps, ajusta volumen/brillo, WiFi, atajos, energía — todo con la voz |
| 🤖 Tareas Autónomas | Planificación de alto nivel para objetivos complejos de varios pasos, vía modo agente |
| 👁️ Consciencia Visual | Captura de pantalla y visión por cámara en tiempo real enviada a tu sesión Gemini |
| 🧠 Memoria Persistente | Recuerda proyectos, preferencias y contexto personal entre sesiones |
| ⌨️ Entrada Híbrida | Alterna con fluidez entre teclado y comandos de voz |
| 🌅 Briefing Matutino | Al primer arranque: te saluda, te da la hora, recuerda tu ayer y trae noticias en vivo |
| 🔔 Proactivo 2.0 | Recordatorios conscientes de tiempo y contexto — sabe la hora, tus proyectos y qué hablabas |
| 🗓️ Memoria de Sesión | Resume cada conversación y la menciona naturalmente la mañana siguiente — se consume al usarla |
| 👁️🗨️ Monitoreo de Fondo | Vigilancia de temas configurada por ti — revisa titulares una vez al día y avisa naturalmente |
| 📊 Monitoreo de Hardware | Telemetría continua de CPU, RAM, GPU y temperatura con alertas de voz localizadas |
| 🌤️ Reporte del Clima | Datos del clima en vivo para tu ciudad, personalizados desde tu memoria |
| 🗺️ Panel de Contenido Dinámico | Capa de visualización desplazable bajo el HUD que muestra web, noticias y búsquedas |
| 🔍 Búsqueda Web Multimodo | noticias / investigación / precio / comparar — Gemini Grounded primero, DuckDuckGo como respaldo |
| ⏰ Recordatorios Inteligentes | Notificaciones programadas nativas del SO (Task Scheduler / LaunchAgent / systemd) |
| Consulta de precios y disponibilidad de vuelos en vivo | |
| 🎮 Actualizador de Juegos | Verifica y activa actualizaciones en Steam y Epic Games bajo demanda |
| 📂 Procesador de Archivos | Lee, resume y responde preguntas sobre archivos locales |
| 💻 Ayudante de Código | Revisión, depuración y generación de código en línea |
| 🌐 Control del Navegador | Abre URLs, navega pestañas e interactúa con el navegador con la voz |
| 📨 Enviar Mensajes | Compone y envía mensajes por WhatsApp, Telegram y más |
| 🎬 Control de YouTube | Busca, reproduce y controla YouTube con la voz |
| 🖱️ Control del Escritorio | Barra de tareas, gestión de ventanas y operaciones de nivel escritorio |
| 🧑💻 Memoria Silenciosa de Idioma | Detecta el idioma hablado en el primer uso — todas las sesiones futuras se adaptan automáticamente |
| 📱 Panel Remoto | Controla el asistente desde tu teléfono con pareo por QR |
| ⚡ Auto-Arranque al Boot | Registra con el sistema de arranque del SO (registro / LaunchAgent / .desktop) |
| 📋 Inteligencia de Portapapeles | Copia cualquier texto → panel flotante con Traducir / Resumir / Explicar / Corregir |
| 🎨 Personalización del Asistente | Cambia el nombre del asistente y el tuyo desde la UI — efecto inmediato |
| 👏 Activación por Aplauso | Despierta, interrumpe y desmutea con un aplauso — sin voz necesaria |
| 🗣️ Voz Personalizada | Elige entre 10 voces preconstruidas de Gemini — masculinas y femeninas |
| ⏰ Recordatorios Recurrentes | Bucles diarios/semanales vía planificadores del SO — suenan aunque JARVIS esté offline |
| 📱 Reproducción en Teléfono | La voz de JARVIS se transmite a tu teléfono — escúchala en tus audífonos |
La función estrella de Mark LI, y la razón de ser la versión de arquitectura final. Toda nueva capacidad, de ahora en adelante, llega como un solo archivo .py:
- Descarga un archivo de plugin (p.ej.
contador_calorias.py) - Suelta en la carpeta
plugins/ - Reinicia JARVIS — listo. La habilidad está viva, por voz, en cualquier idioma.
Cada plugin declara su propio esquema de herramienta Gemini y lógica en un archivo. El motor lo auto-descubre al arranque, lo registra en la sesión Live y lo lista en el panel 🧩 Administrador de Plugins donde cada plugin tiene su interruptor persistente ON/OFF.
La seguridad está en tres capas: un plugin roto o mal escrito jamás puede tumbar a JARVIS — simplemente aparece como "ROTO" en el administrador con el error explicado, mientras las demás herramientas y plugins siguen funcionando. Las colisiones de nombre con las herramientas del núcleo se detectan y se rechazan automáticamente. ¿Quieres crear el tuyo? Copia plugins/_template.py y rellena dos cosas: el dict PLUGIN y la función run().
Gracias a la comprensión nativa de audio de Gemini Live, JARVIS ahora detecta la emoción en tu voz — emoción, frustración, fatiga — y adapta su tono en respuesta. Las preguntas nocturnas cansadas obtienen respuestas calmadas; los anuncios emocionados reciben energía de vuelta.
La mejora de calidad de vida más grande para un asistente que escucha siempre: JARVIS ahora puede decir cuándo el habla no va dirigida a él. Hablar con alguien en la habitación, tomar una llamada, la TV de fondo — permanece en silencio en vez de interponerse. Sin palabra de activación necesaria, sin respuestas accidentales.
La compresión de contexto con ventana deslizante significa que la sesión Live ya no termina cuando se llena la ventana de contexto. Combinado con la reanudación de sesión, JARVIS mantiene una conversación continua por horas sin perder el hilo.
Las tres mejoras de la API Live se degradan con gracia: si la API de vista previa llega a rechazarlas, JARVIS se reconecta automáticamente con la configuración estándar — nunca ves un fallo.
Un aplauso despierta a JARVIS. Aplaude de nuevo mientras está hablando y se detiene al instante. Un aplauso fuerte es una señal aguda y de banda ancha, así que el detector mira la relación pico-ambiente — el habla y el ruido de la TV no lo activan.
| Gesto | Qué pasa |
|---|---|
| 👏 en reposo | JARVIS te saluda ("¿Sí, señor?") y empieza a escuchar |
| 👏 mientras habla | Interrupción instantánea — el micrófono se reabre inmediatamente |
| 👏 estando en mute | Quita el mute + despierta |
Claves de configuración en config/api_keys.json:
{
"clap_activation": true,
"clap_sensitivity": 2
}Sensibilidad: 1 = ligera (aplausos suaves / micrófono lejano), 2 = por defecto, 3 = estricta (habitaciones ruidosas). Pon clap_activation en false para desactivarlo.
Abre el Personalizar overlay (botón ⚙️ en la barra) → desplegable de Voz → elige entre las voces preconstruidas nativo-audio de Gemini. Se aplica desde la siguiente sesión. También puedes poner "voice_name" directamente en config/api_keys.json.
| Voces Masculinas | Voces Femeninas |
|---|---|
| Charon (por defecto, grave) | Kore |
| Puck | Aoede |
| Orus | Leda |
| Fenrir | Zephyr |
| Achernar | Pulcherrima |
La herramienta de recordatorios ahora soporta recurrence = "daily" | "weekly" además del unico disparo. Persiste a través de planificadores nativos del SO — Task Scheduler en Windows, LaunchAgent en macOS o systemd en Linux — así que suenan incluso cuando JARVIS no está corriendo.
- "Recuérdame todos los días a las 8:45 que tome agua" → bucle diario
- "Recuérdame cada viernes a las 6pm sacar la basura" → bucle semanal
El Panel Remoto (botón Control Remoto → código QR) ahora reproduce la voz de JARVIS de vuelta a tu teléfono por tu red local. Empareja una vez y:
- Conecta tus audífonos al teléfono
- Abre el panel, toca la pantalla una vez (desbloqueo de audio)
- Toca 🎤 para abrir una sesión de voz en vivo, o usa texto
El micrófono de tu teléfono transmite la entrada, la voz de JARVIS se transmite de vuelta directamente a tus audífonos, y la transcripción aparece en la pantalla. Los altavoces de la PC pueden mutearse independientemente.
| Mark | Enfoque |
|---|---|
| XLVIII | Interrupción instantánea · noticias paralelas · briefing de dos fases · retroceso exponencial · espera de visión |
| XLIX | Auto-arranque · inteligencia de portapapeles · personalización del asistente |
| L | Memoria de sesión · monitoreo de fondo · proactivo 2.0 · visión instantánea · búsqueda de noticias paralela |
| LI | Sistema de plugins · diálogo afectivo · audio proactivo · sesiones ilimitadas |
| LII+ | Archivos de plugin: correo · modo quiz · contador de calorías · calendario · y más |
git clone https://github.com/FatihMakes/Mark-LI.git
cd Mark-LI
pip install -r requirements.txt
python main.pyEn el Panel Remoto (Remote Control → QR → JARVIS), una vez que estás dentro:
- Tappe 🔽 Instalar (botón en el pie número pie) → la pregunta del navegador se dispara automáticamente.
- Acepta y el icono queda en tu pantalla de inicio.
Además está el manifest.json con icono y sw.js (service worker), así que cualquier install "Add to Home screen" de Safari/Chrome también funciona.
python launch/create_desktop_shortcut.py- Windows: usa
launch/JARVIS.lnk(VBS) o abrelaunch/JARVIS.batmanualmente - Linux/Mac: crea
~/Desktop/JARVIS.desktopapuntando alaunch/JARVIS.sh
Al hacer click arranca el asistente completo.
Con el plugin phone_intent activado (Plugins → ✓), desde el PC puedes decir:
- 👉
call:+573001234567→ llamada en tu teléfono (por número) - 👉
sms:+573001234567:estoy ocupado→ SMS al número con mensaje - 👉
wa:+573001234567:hola desde JARVIS→ abrir WhatsApp - 👉
app:instagram/url:https://example.com→ abrir app / URL - 👉
copy:texto→ copiar al clipboard - 👉
timer:300/timerstop→ temporizador - 👉
alarm:07:30/flash:on|off→ alarma / linterna
Cualquier intent se ejecuta con interfaz nati va del teléfono (sin instalar nada extra). Si no hay teléfono conectado queda en la cola local y arranca al aparecer.
⚠️ Nota de Instalación: Algunas dependencias específicas del SO no se empaquetan enrequirements.txtpara mantener el repo ligero. Si te saleModuleNotFoundError, instala el paquete faltante conpip install <nombre_paquete>.
| Requerimiento | Detalles |
|---|---|
| SO | Windows 10/11, macOS o Linux |
| Python | 3.11 o 3.12 |
| Micrófono | Requerido para interacción por voz |
| Clave de API | Clave Gemini gratuita (config/api_keys.json) |
Mark LI/
├── main.py # Bucle principal — sesión Gemini Live, E/S de audio, despacho de herramientas
├── ui.py # HUD en PyQt6 — forma de onda, panel de logs, administrador de plugins, cámara
├── setup.py # Asistente de configuración de primer arranque
├── plugins/
│ └── _template.py # Copia esto para escribir un plugin nuevo — un archivo, suelda, listo
├── actions/
│ ├── web_search.py # Búsqueda paralela Gemini + DDG (noticias, investigación, precio, compara)
│ ├── screen_processor.py # Captura de pantalla y visión por cámara vía Gemini Live
│ ├── background_monitor.py # Vigilancia de temas configurada por ti — revisión DDG diaria, sin cripto
│ ├── proactive.py # Proactivo 2.0 — recordatorios conscientes de tiempo/contexto
│ ├── reminder.py # Notificaciones programadas nativas del SO
│ ├── system_monitor.py # Telemetría de CPU / RAM / GPU / temperatura
│ ├── computer_settings.py # Volumen, brillo, WiFi, energía
│ ├── computer_control.py # Atajos de teclado, mouse, gestión de ventanas
│ ├── open_app.py # Lanzador de aplicaciones
│ ├── browser_control.py # Control del navegador web
│ ├── file_controller.py # Operaciones del sistema de archivos
│ ├── file_processor.py # Lectura y resumen de documentos
│ ├── send_message.py # Integración de mensajería
│ ├── weather_report.py # Datos del clima en vivo
│ ├── flight_finder.py # Búsqueda de vuelos
│ ├── youtube_video.py # Control de reproducción de YouTube
│ ├── game_updater.py # Gestión de actualizaciones de juegos (Steam / Epic)
│ ├── code_helper.py # Revisión y generación de código
│ ├── dev_agent.py # Agente de tareas para desarrolladores
│ └── desktop.py # Control del escritorio y barra de tareas
├── memory/
│ ├── memory_manager.py # Carga/guarda long_term.json — sesiones, vigilancias, identidad
│ └── long_term.json # Almacén persistente: identidad, preferencias, proyectos, sesiones, vigilancias
├── core/
│ ├── prompt.txt # Personalidad del asistente y reglas de enrutamiento de herramientas
│ └── plugin_loader.py # Motor de plugins — descubrimiento, validación, aislamiento de fallos
└── config/
└── api_keys.json # Clave de API, configuración del SO, nombre asistente, tu nombre
Solo para uso personal y no comercial. Licenciado bajo Creative Commons BY-NC 4.0.
Ingeniería de un desarrollador que construye un asistente estilo JARVIS del mundo real. ⭐ Dale estrella al repositorio para apoyar el camino a Mark 100.
| Plataforma | Enlace |
|---|---|
| YouTube | @FatihMakes |
| @fatihmakes |