NekoAI — Mascota de Escritorio con IA
Mascota de escritorio open-source construida con Tauri y Rust que revive la nostalgia de los 90 con un cerebro de IA moderno

NekoAI — Mascota de Escritorio con IA
NekoAI es una mascota de escritorio de código abierto y con IA que vive en tu pantalla. Deambula entre tus ventanas, reacciona a lo que haces y cuando la necesitas, piensa, responde y ayuda, todo desde tu escritorio. Una carta de amor a los compañeros de escritorio de los 90/00 (Neko, eSheep, Shimeji) reconstruidos con tecnología moderna y un cerebro de IA real.
Es un proyecto en desarrollo activo, multiplataforma (Windows, macOS y Linux) y bajo licencia MIT. La versión actual es la v0.3.5.
Funcionalidades Clave
| Función | Estado |
|---|---|
| Mascotas con sprites animados que recorren el escritorio | Activo |
| Seguimiento de cursor y movimiento en 8 direcciones | Activo |
| Chat de IA con burbuja de diálogo animada | Activo |
| Memoria persistente — nombre, proyectos, preferencias | Activo |
| Multi-proveedor IA (Claude, OpenAI, Gemini, NVIDIA NIM, Ollama local) | Activo |
| Humor dinámico — energía cambia con el tiempo e inactividad | Activo |
| Seis mascotas — Neko Clásico, Pingu, Pac-Man, BSD Daemon, Tabby, TIE Fighter | Activo |
| Casa de la mascota — punto de aparición y "volver a casa" | Activo |
| Avisos proactivos ("programando 90 min — ¡haz un descanso!") | Activo |
| Bandeja del sistema y menú contextual (clic derecho) | Activo |
| Tamaño de mascota ajustable (S/M/L/XL) con escalado pixel-perfect | Activo |
| Onboarding sin configuración — auto-detecta Ollama en el primer arranque | Activo |
| NekoMetrics — contadores anónimos de teclas/clics/pasos | v0.4 |
| NekoCapture — capturas de pantalla con pie de metadatos | v0.6 |
| NekoAnnotate — overlay de dibujo a pantalla completa | v0.7 |
Arquitectura
src-tauri/src/ (backend Rust)
├── lib.rs — Comandos Tauri, bandeja del sistema, configuración
├── desktop_monitor.rs — APIs Win32/Linux: ventana activa, tiempo de inactividad
└── storage.rs — SQLite: historial de conversaciones, hechos de usuario, config
src/ (frontend TypeScript/React)
├── ai/ — Fábrica de proveedores, memoria, extracción de hechos
├── components/ — SpeechBubble, SettingsPanel, ContextMenu, PetSprite
├── hooks/ — usePetMovement, useMoodEngine, useIdleSequencer, useOnboarding
└── store/ — Estado global con Zustand + configStore persistido
Sistema de Memoria con IA
NekoAI construye un contexto persistente para cada conversación:
- Personalidad de la mascota definida por mascota en
pet.jsonvíasystem_prompt - Hechos del usuario extraídos de conversaciones y almacenados en SQLite (tabla
user_facts) - Historial de conversación — los últimos 20 mensajes como contexto rotativo
- Humor dinámico — energía/felicidad/curiosidad influyen sutilmente en el tono de la IA
Desafíos Técnicos Resueltos
Redimensionamiento de ventana sin marcos en Windows: Crear una ventana sin marcos elimina WS_THICKFRAME del sistema operativo. Las APIs de JavaScript no pueden restaurarlo en tiempo de ejecución. Un comando Tauri en Rust llama directamente a window.set_size(), evitando la limitación de la API JS. Esto permite que la burbuja de diálogo y el panel de configuración se expandan/colapsen dinámicamente.
Bypass de CORS para NVIDIA NIM: El endpoint de NVIDIA está pensado para uso servidor-a-servidor y no envía cabeceras CORS, por lo que un fetch() directo desde el WebView de Tauri queda bloqueado. NekoAI resuelve esto con un comando Tauri nvidia_chat que realiza la petición HTTP desde Rust nativo (reqwest), sin restricciones CORS, manteniendo la misma interfaz que el resto de proveedores.
Onboarding sin fricción: En el primer arranque, NekoAI detecta automáticamente una instancia local de Ollama y se autoconfigura sin pedir nada al usuario; si no la encuentra, guía la conexión de un proveedor. La mascota sale caminando desde su casa y presenta una burbuja de bienvenida.
Escalado pixel-perfect de sprites: Todos los tamaños de mascota son múltiplos enteros del sprite nativo de 32px (S=32, M=64, L=96, XL=128) para evitar artefactos de antialiasing en pixel art.
Privacidad Primero
- Sin servidor backend — todos los datos permanecen en el equipo del usuario
- Las únicas llamadas salientes son a las APIs de IA configuradas por el usuario
- Política de seguridad de contenido (CSP) restrictiva que limita las conexiones permitidas
- Compatible con IA completamente local mediante Ollama (100% offline, sin costes de API)
Proveedores de IA Soportados
| Proveedor | Modelos | Requiere |
|---|---|---|
| Anthropic | Claude Haiku, Sonnet | Clave API |
| OpenAI | GPT-4o mini, GPT-4o | Clave API |
| Google Gemini | Gemini 2.5 Flash (por defecto), 2.0 Flash | Clave API gratuita |
| NVIDIA NIM | Llama 3.1, Mistral, Nemotron | Plan gratuito |
| Ollama | Llama 3, Mistral, Phi-3 | Instalación local |