Skip to content

About

First native macOS desktop app and menu bar monitor for Inco AI's Splash local inference engine on Apple Silicon

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

30 stars

Watchers

1 watching

Forks

Repository files navigation

Splash Monitor Icon

🌊 Splash Monitor

The first native macOS desktop app for Inco AI's Splash local inference engine

El primer app de escritorio nativo de macOS para el motor de inferencia local Splash de Inco AI


macOS 13.0+ Swift 6 Apple Silicon Version Download DMG License: MIT Author Buy Me A Coffee


Splash Monitor - Dashboard de Inferencia Local en Apple Silicon

⚑ Monitor de Inferencia Local Splash en Apple Silicon (M3/M4/M5) con Métricas en Vivo de Tokens, Velocidad y Memoria Metal


πŸ‡ͺπŸ‡Έ EspaΓ±ol Β Β·Β  πŸ‡¬πŸ‡§ English


πŸ‡©πŸ‡΄ EspaΓ±ol

ΒΏPor quΓ© Splash Monitor?

Hasta ahora, Splash solo podΓ­a operarse desde la lΓ­nea de comandos. Splash Monitor transforma esa experiencia en una suite visual completa para macOS: monitoreo de mΓ©tricas en tiempo real, gestiΓ³n de modelos de Hugging Face con un solo clic, y lanzadores de agentes de cΓ³digo β€” todo desde un Γ­cono en la barra de menΓΊ o una ventana de escritorio nativa.


πŸš€ Novedades de la VersiΓ³n 1.2.2-beta

  • πŸ’¬ MΓ³dulo Nativo de Chat & Playground Multi-Turn: Streaming en vivo SSE con URLSession.bytes, soporte de razonamiento profundo (<think>) colapsable, formateo Markdown nativo, adjuntos de imΓ‘genes/cΓ³digo y exportaciΓ³n a Markdown.
  • πŸ”„ ConmutaciΓ³n de Modelos en Caliente (Hot-Swap): PΓ­ldora interactiva en la cabecera y en la esquina inferior izquierda del chat para alternar instantΓ‘neamente entre modelos locales descargados.
  • βš™οΈ Flags CLI por Modelo (PerModelServerFlags β€” Resuelve #10): Argumentos CLI personalizados independientes por modelo (evita conflictos al usar --model-dir, --draft-model o --mmproj). Aportado por @Thoralf-M.
  • πŸ›‘οΈ ProtecciΓ³n de Procesos al Salir (ServerOwnership β€” Resuelve #11): El monitor solo detiene servidores que hayan sido iniciados por la aplicaciΓ³n, preservando instancias iniciadas externamente desde Terminal. Aportado por @Thoralf-M.
  • πŸ–₯️ Soporte MenΓΊ Bar en macOS 27 (Resuelve #9): Popover con altura fija de 460 pt y ancho ampliado a 600 pt evitando que colapse a 0 px en macOS 27.2. Aportado por @Thoralf-M.
  • πŸ”Ž MenΓΊ Nativo de Zoom y Atajos de Teclado: Atajos universales ⌘= (Zoom In), ⌘- (Zoom Out) y ⌘0 (Reset 100%) bajo VisualizaciΓ³n > Apariencia y selector en la cabecera del chat.
  • ⌨️ Área de Entrada Compacta y EnvΓ­o con Enter: Barra de escritura horizontal de 34 px con envΓ­o automΓ‘tico al pulsar Enter y salto de lΓ­nea con Shift+Enter.
  • 🌐 100% InternacionalizaciΓ³n BilingΓΌe (EspaΓ±ol / InglΓ©s): Soporte completo en toda la app.
  • πŸ§ͺ 142 Pruebas Unitarias al 100% Passing: ProtecciΓ³n exhaustiva de regresiΓ³n y concurrencia segura.

✨ Características Principales

πŸ“Š Dashboard de MΓ©tricas en Tiempo Real

  • Velocidades de prefill y decode en tok/s con grΓ‘ficas sparkline
  • Monitoreo de la tasa de acierto del KV Cache y ahorro de tokens
  • Tasa de aceptaciΓ³n especulativa de DFlash 2
  • MΓ©tricas de latencia TTFT e ITL (percentil p50)
  • Estado tΓ©rmico y aceleraciΓ³n por Apple Neural Engine (ANE)

πŸ’Ύ Monitor de Memoria Unified Metal

  • Barra de uso de memoria en tiempo real (ej. 23.7 GB / 55.6 GB)
  • DetecciΓ³n automΓ‘tica del procesador Apple Silicon y cores GPU
  • Centinela de PresiΓ³n de Memoria del Sistema (dispatch_source_t) con alertas (Normal, Warning, Critical) y purga bajo demanda (POST /v1/memory/release)
  • Indicador de estado de pesos en reposo (weights.released) y ahorro de RAM

πŸ“¦ Gestor de Modelos

  • CatΓ‘logo de modelos locales instalados con cΓ‘lculo de espacio en disco
  • Explorador del catΓ‘logo en vivo de Hugging Face, mlx-community y modelos oficiales NVIDIA (NVFP4 / FP8)
  • TelemetrΓ­a en vivo de velocidad de descarga (MB/s), fases y barra de progreso continua
  • DetecciΓ³n y asistencia explicativa para repositorios protegidos (403 Gated Models)
  • Soporte para variantes GGUF y modo --language-only

πŸ•ΉοΈ Control del Servidor

  • Selector de modelo interactivo con cambio en caliente
  • Iniciar / detener el servidor en un clic
  • Lanzadores de agentes: Claude Code, Claude Cowork, OpenCode, Codex, Hermes, Pi Agent (pi.dev) y DeepSeek Harness (dsh)
  • Opciones avanzadas Splash 1.3.2: formato de estado GDN (--state-format bf16), presupuesto de razonamiento (--thinking-token-budget), cachΓ© SSD persistente (--persistent-cache)
  • SelecciΓ³n de puerto, enlace de red LAN (0.0.0.0 / 127.0.0.1), dominios o hosts permitidos (--allowed-host), lΓ­mite de contexto (--max-context) y banderas CLI personalizadas
  • Copia de endpoint compatible con OpenAI

🌐 Detección AutomÑtica de Idioma

  • SincronizaciΓ³n dinΓ‘mica con el idioma de macOS
  • Cambio en tiempo real sin reiniciar la app
  • Control manual: EspaΓ±ol πŸ‡©πŸ‡΄ / English πŸ‡¬πŸ‡§

🍎 Experiencia Nativa de macOS

  • Menu bar extra con 4 modos de visualizaciΓ³n y purga de memoria en 1 clic
  • Icono 3D gota lΓ­quida con transparencia alpha completa
  • NavigationSplitView con 8 secciones en la barra lateral
  • Compatibilidad con macOS 13.0+ en Apple Silicon

πŸ“Έ GalerΓ­a Visual de Todos los MΓ³dulos

Cada mΓ³dulo de Splash Monitor estΓ‘ optimizado para la experiencia nativa de macOS en Apple Silicon:

1. πŸ•ΉοΈ Servidor y Lanzadores de Agentes (con Claude Cowork y DeepSeek Harness)

Servidor y Agentes de CΓ³digo

MΓ³dulo de Control del Servidor: Inicia y detiene el servidor Splash en un solo clic, cambia el modelo en caliente, configura el puerto, estado recurrente GDN en BF16 (-50% RAM), presupuesto de tokens de razonamiento, cachΓ© SSD persistente y lanza agentes autΓ³nomos: Claude Cowork (activaciΓ³n de app nativa con aliases para evitar errores 404), Claude Code CLI, OpenCode, Codex, Hermes, Pi Agent y DeepSeek Harness (`dsh`).


2. πŸ’¬ Chat Profesional y Multi-Turn Playground

Chat Profesional de Modelos y Playground

MΓ³dulo de Chat Nativo de IA: InteracciΓ³n conversacional en streaming ultrarrΓ‘pido (SSE con AsyncSequence), renderizado inteligente de Markdown con bloques de cΓ³digo y botΓ³n de copiado de un clic, proceso de pensamiento colapsable (Thinking), telemetrΓ­a en tiempo real por token (tok/s y latencia TTFT), historial persistente de conversaciones en disco y selector interactivo de temperatura y tokens.


3. πŸ“Š Dashboard de Tokens y Rendimiento Metal

Dashboard de Tokens y Rendimiento Metal

MΓ³dulo de Rendimiento en Tiempo Real: Monitorea velocidades de generaciΓ³n de tokens (DECODE y PREFILL en tok/s), ratio de acierto y reutilizaciΓ³n de KV Cache, deduplicaciΓ³n de tokens, aceptaciΓ³n especulativa DFlash 2, latencias TTFT/ITL y uso de memoria unificada Metal (M3/M4/M5).


3. πŸ”Œ Aplicaciones y Clientes Conectados

Apps Conectadas y Clientes Activos

MΓ³dulo de Clientes Conectados: InspecciΓ³n automΓ‘tica de conexiones TCP activas contra el puerto de inferencia, reconociendo clientes como Claude Desktop / Cowork, DeepSeek Harness, Cursor IDE, VS Code y Chatbots con sus Γ­conos nativos y estado de transmisiΓ³n.


4. πŸ“– GuΓ­a RΓ‘pida de ConexiΓ³n y Gateway

GuΓ­a de ConexiΓ³n de Clientes

MΓ³dulo de GuΓ­a de ConexiΓ³n: Pasos y comandos de un clic para configurar el Gateway local en Claude Desktop, Cursor IDE, VS Code (Cline/Continue), Chatbox y scripts Python (OpenAI SDK / LangChain).


5. πŸ“¦ Gestor de Modelos y TelemetrΓ­a de Descargas

Gestor de Modelos de Hugging Face

MΓ³dulo de Modelos: Control de modelos locales en disco con espacio utilizado, cambio en caliente y exploraciΓ³n del catΓ‘logo de Hugging Face con soporte para cuantizaciones oficiales NVIDIA (NVFP4 / FP8), variantes GGUF, guΓ­a asistida para repositorios protegidos (403 Gated) y modo --language-only para modelos de cΓ³digo y texto.

TelemetrΓ­a de Descarga en Vivo

Telemetría de Descarga en Tiempo Real: Medición en vivo de la tasa de transferencia en MB/s (⚑️ 34.8 MB/s), barra de progreso continuo, contador exacto de GB descargados frente al total esperado y detección de fases (acelerador especulativo DFlash2, pesos del modelo y ensamblado Splash).


6. πŸ§ͺ Test y DiagnΓ³stico de Modelos (Model Lab)

Test y DiagnΓ³stico de Modelos

MΓ³dulo de Test y DiagnΓ³stico: Suite completa de verificaciΓ³n en un clic con Smoke Test (salud del servidor, disponibilidad Metal, plantilla Jinja, OpenAI Chat, Anthropic Messages y llamadas a herramientas/JSON), Benchmarking de velocidad con cΓ‘lculo del factor de aceleraciΓ³n del KV Cache y Playground interactivo de inferencia local.


7. βš™οΈ ConfiguraciΓ³n del Sistema

ConfiguraciΓ³n del Sistema

MΓ³dulo de Ajustes: Selector de idioma (EspaΓ±ol Dominicano πŸ‡©πŸ‡΄ / English πŸ‡¬πŸ‡§ / macOS automΓ‘tico), configuraciΓ³n del Γ­cono en la barra de menΓΊ superior de macOS y frecuencia de refresco.


8. ℹ️ Acerca de Splash Monitor

Acerca de Splash Monitor

MΓ³dulo Informativo: InformaciΓ³n de versiΓ³n (v1.2.2-beta), arquitectura nativa en Swift 6 y Metal, licencia abierta MIT y crΓ©ditos de autorΓ­a de Joan Gregorio PΓ©rez (JMGREP Developers).


πŸ“₯ InstalaciΓ³n

Requisitos Previos β€” Motor Splash de Inco AI

Splash Monitor es un monitor grΓ‘fico para el motor de inferencia local Splash de Inco AI. Antes de instalar Splash Monitor, necesitas tener Splash funcionando en tu Mac.

Instala Splash desde el repositorio oficial de Inco AI:

# Agregar el tap oficial de Inco AI e instalar Splash
brew install incoai/tap/splash

πŸ“‹ Requisitos del motor Splash (segΓΊn incoai/splash):

  • Mac con Apple Silicon M3 o posterior
  • macOS 26.4 (Tahoe) o posterior
  • 36 GB de memoria unificada (48 GB o mΓ‘s recomendado)

Los modelos se descargan automΓ‘ticamente en el primer uso. Consulta los modelos disponibles en huggingface.co/incoai.

Una vez que Splash estΓ© instalado y funcionando, instala Splash Monitor:

OpciΓ³n A β€” Homebrew Cask (Recomendada Oficial Β· Sin Alertas de Gatekeeper)

La forma nativa y recomendada en macOS. Al instalar mediante Homebrew, macOS no aplica cuarentena de navegador y la app abre de inmediato:

brew install --cask hometrix/tap/splash-monitor

⚠️ Comprueba la versión que instala el cask. El cask del tap es un fichero aparte (hometrix/homebrew-tap) y puede quedarse atrÑs respecto a las publicaciones de este repositorio: en la auditoría de la v1.0.2-beta el cask seguía sirviendo la 1.0.0-beta. Verifica con brew info --cask splash-monitor o Splash Monitor.app/Contents/Info.plist. Si el cask estÑ atrasado, usa la Opción B o C, que siempre apuntan a la última publicación.


OpciΓ³n B β€” InstalaciΓ³n en 1 LΓ­nea (Terminal / Script)

La forma mΓ‘s rΓ‘pida si no deseas usar Homebrew tap:

curl -fsSL https://raw.githubusercontent.com/hometrix/SplashMonitor/main/scripts/install.sh | bash

⚑️ Este comando consulta la última publicación en GitHub, descarga el DMG oficial, verifica su suma SHA-256 contra el fichero SHA256SUMS publicado y aborta si no coincide, lo monta, copia la app a /Applications y la abre automÑticamente. Fija una versión concreta con SPLASH_MONITOR_TAG=v1.2.2-beta.


OpciΓ³n C β€” Descarga Manual del DMG

  1. Descarga el instalador oficial: πŸ‘‰ SplashMonitor-1.2.2-beta.dmg

    Y su suma de verificaciΓ³n: SHA256SUMS

    shasum -a 256 -c SHA256SUMS   # debe imprimir "OK"
  2. Haz doble clic en el .dmg descargado y arrastra Splash Monitor a Aplicaciones.

πŸ›‘οΈ Si macOS muestra: "Apple no ha podido verificar que no contenga software malicioso...": Este aviso lo impone macOS a todas las apps de cΓ³digo abierto sin licencia de pago de Apple. Para abrirla:

  1. Ve a Ajustes del Sistema en tu Mac.
  2. Haz clic en Privacidad y seguridad (en la barra lateral) y baja hasta Seguridad.
  3. Pulsa el botΓ³n "Abrir de todas formas" (Open Anyway).

O por Terminal (1 segundo):

xattr -d com.apple.quarantine ~/Downloads/SplashMonitor*.dmg

OpciΓ³n B β€” Compilar desde CΓ³digo Fuente (Desarrolladores)

Requisitos:

Requisito VersiΓ³n MΓ­nima
Mac Apple Silicon (M3, M4, M5)
macOS 13.0 o superior
Xcode 15+ o Swift 6.0 Toolchain
Splash Engine incoai/tap/splash
# 1. Clonar el repositorio
gh repo clone hometrix/SplashMonitor
cd SplashMonitor

# 2. Ejecutar la baterΓ­a de pruebas (142 pruebas, sin red ni motor real)
swift test

# 3. Compilar la app y generar el bundle .app
./scripts/build_app.sh

# 4. (Opcional) Generar el instalador DMG comprimido + SHA256SUMS
./scripts/create_dmg.sh

# 5. Iniciar la aplicaciΓ³n
open "Splash Monitor.app"

πŸ”’ VersiΓ³n ΓΊnica. Sources/SplashMonitor/Services/Version.swift es la ΓΊnica fuente de la versiΓ³n, el identificador de paquete y el nΓΊmero de compilaciΓ³n. Los tres scripts los extraen de ahΓ­ con sed: no hay que editar la versiΓ³n en varios sitios (antes se declaraba en cinco lugares y ya habΓ­an divergido entre sΓ­).

πŸ§ͺ Pruebas

swift test                                   # 113 pruebas (100% de Γ©xito)
swift test --filter PollingTests             # solo una suite
swift test --filter ServerOptionsTests       # opciones CLI y Splash 1.3.2
swift test --filter SystemMemoryPressureTests # centinela de memoria macOS

Las pruebas son hermΓ©ticas por diseΓ±o: usan un transporte de estado simulado, un terminador de procesos simulado, un directorio temporal propio y bootstrapNetwork: false (sin trΓ‘fico a Hugging Face ni a GitHub). Ninguna prueba envΓ­a seΓ±ales a procesos reales ni escribe en tu ~/.zshrc. Cubren, entre otras cosas:

Suite QuΓ© protege
VersionTests Orden semΓ‘ntico de versiones y unicidad de la versiΓ³n del producto
ModelIDValidatorTests Rechazo de identificadores de modelo con inyecciΓ³n de shell y rutas ..
ProcessIntrospectionTests Que nunca se seΓ±alice a un cliente conectado, solo a escuchas del motor
ServeLockTests Lectura de serve-<puerto>.lock, bloqueos vacΓ­os, corruptos y huΓ©rfanos
ShellEnvironmentTests Contenido del entorno, reversiΓ³n exacta del ~/.zshrc y consentimiento
ModelSizeCacheTests Que el sondeo no vuelva a recorrer el Γ‘rbol de modelos en cada ciclo
PollingTests Que el panel siga detectando el motor tras detenerlo o arrancarlo tarde
ClientTerminationPolicyTests Que no se termine un PID reciclado ni la propia app
StatusModelTests Contrato real de /status del motor y tolerancia a claves nuevas
ServerCLIValidatorTests ValidaciΓ³n y sanitizaciΓ³n estricta de banderas CLI, estados GDN y presupuestos
ServerOptionsTests GeneraciΓ³n de comandos con host LAN, variantes, estado GDN BF16 y flags 1.3.2
AgentLaunchTests DetecciΓ³n e integraciΓ³n de lanzadores para Claude Cowork, Pi, Hermes y DeepSeek Harness
SystemMemoryPressureTests Notificaciones del centinela de memoria del kernel macOS y purga bajo demanda
ModelDiagnosticTests BaterΓ­a de validaciΓ³n de endpoints y benchmarking de inferencia Metal

πŸ—οΈ Arquitectura del Proyecto

SplashMonitor/
β”œβ”€β”€ Package.swift                    # Manifiesto Swift Package Manager
β”œβ”€β”€ LICENSE                          # Licencia MIT
β”œβ”€β”€ CONTRIBUTING.md                  # GuΓ­as de contribuciΓ³n (bilingΓΌe)
β”œβ”€β”€ SECURITY.md                      # PolΓ­tica de divulgaciΓ³n responsable
β”œβ”€β”€ CODE_OF_CONDUCT.md               # CΓ³digo de Conducta Contributor Covenant v2.1
β”œβ”€β”€ README.md                        # DocumentaciΓ³n tΓ©cnica bilingΓΌe
β”œβ”€β”€ Resources/
β”‚   β”œβ”€β”€ AppIcon.icns                 # Bundle de icono multi-resoluciΓ³n
β”‚   └── AppIcon.iconset/             # Assets de icono estΓ‘ndar y Retina
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ build_app.sh                 # Build Release + empaquetado .app
β”‚   β”œβ”€β”€ create_dmg.sh                # Empaquetado DMG vΓ­a hdiutil + SHA256SUMS
β”‚   └── install.sh                   # Instalador en 1 lΓ­nea con verificaciΓ³n SHA-256
└── Sources/
    └── SplashMonitor/
        β”œβ”€β”€ SplashMonitorApp.swift   # Entry point (WindowGroup + MenuBarExtra)
        β”œβ”€β”€ Models/
        β”‚   └── SplashStatus.swift   # Structs Codable para /status y HF API
        β”œβ”€β”€ Services/
        β”‚   β”œβ”€β”€ SplashService.swift  # Singleton (polling, procesos, servidor)
        β”‚   β”œβ”€β”€ LocalizationService.swift # DetecciΓ³n dinΓ‘mica del idioma
        β”‚   β”œβ”€β”€ SystemMemoryPressureSentinel.swift # Centinela de presiΓ³n de RAM macOS
        β”‚   β”œβ”€β”€ ServerCLIValidator.swift  # SanitizaciΓ³n y validaciΓ³n de flags CLI
        β”‚   β”œβ”€β”€ ModelIDValidator.swift    # ValidaciΓ³n estricta de IDs de modelos
        β”‚   β”œβ”€β”€ ModelBenchmarkRunner.swift # Benchmark de tokens y aceleraciΓ³n KV
        β”‚   └── Version.swift        # Fuente ΓΊnica de versiΓ³n semΓ‘ntica (P-15)
        └── Views/
            β”œβ”€β”€ MainWindowView.swift # NavigationSplitView de escritorio (8 mΓ³dulos)
            β”œβ”€β”€ MenuBarView.swift    # Popover interactivo del menΓΊ superior
            β”œβ”€β”€ TokenMetricsView.swift # Sparkline, tarjetas de velocidad, gauge
            β”œβ”€β”€ ModelManagerView.swift # Modelos locales + catΓ‘logo HF + telemetrΓ­a
            β”œβ”€β”€ ServerControlView.swift # Selector, controles, lanzadores, flags 1.3.2
            β”œβ”€β”€ ConnectedAppsView.swift # Apps conectadas + DeepSeek Harness
            β”œβ”€β”€ ConnectedAppsGuideView.swift # GuΓ­a de integraciΓ³n de clientes
            β”œβ”€β”€ ModelTestingView.swift  # Smoke testing + benchmarking + playground
            β”œβ”€β”€ SettingsView.swift   # Ajustes de idioma, menΓΊ y sondeo
            β”œβ”€β”€ AboutView.swift      # CrΓ©ditos e info de versiΓ³n
            β”œβ”€β”€ AppIconView.swift    # Renderizado del icono de la app
            └── DominicanEmblem.swift # Emblema patrio dominicano

πŸ› οΈ Stack TecnolΓ³gico

Componente TecnologΓ­a
Lenguaje Swift 6
UI Framework SwiftUI
Package Manager Swift Package Manager
Plataforma macOS 13.0+ (Apple Silicon)
Motor de Inferencia Inco AI Splash
CatΓ‘logo de Modelos Hugging Face API
Icono Custom 3D liquid droplet (SF Symbols + Canvas)
Empaquetado hdiutil (DMG nativo de macOS)

🀝 Contribuir

Β‘Las contribuciones son bienvenidas! Consulta nuestras guΓ­as antes de participar:

Documento DescripciΓ³n
πŸ“‹ GuΓ­a de ContribuciΓ³n Flujo de trabajo, convenciones de cΓ³digo y estructura del proyecto
πŸ”’ PolΓ­tica de Seguridad DivulgaciΓ³n responsable de vulnerabilidades
πŸ“œ CΓ³digo de Conducta Contributor Covenant v2.1

πŸ‘€ Autor y CrΓ©ditos

Joan Gregorio PΓ©rez
Software Engineer Β· JMGREP Developers
πŸ‡©πŸ‡΄ RepΓΊblica Dominicana
GitHub

Agradecimientos especiales:


πŸ’– Apoyar el Proyecto

Si Splash Monitor te resulta ΓΊtil para tus flujos de trabajo de IA local y desarrollo con agentes, Β‘considera apoyar su desarrollo continuo invitΓ‘ndome a un cafΓ©! Cada aporte ayuda a mantener el proyecto actualizado, probado y optimizado para Apple Silicon.

Buy Me A Coffee


πŸ“„ Licencia

Este proyecto estΓ‘ licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para los tΓ©rminos completos.

MIT License β€” Copyright (c) 2026 JMGREP Developers / Joan Gregorio PΓ©rez

Atribuciones y Licencias de Componentes

Splash Monitor es una aplicaciΓ³n independiente de cΓ³digo abierto que interactΓΊa con el motor Splash, modelos de inteligencia artificial y agentes de cΓ³digo autΓ³nomos. A continuaciΓ³n se detallan las licencias y atribuciones de cada componente:

1. Motor de Inferencia y Monitor
Componente Licencia Autor / OrganizaciΓ³n Repositorio
Splash Monitor MIT JMGREP Developers (Joan Gregorio PΓ©rez) hometrix/SplashMonitor
Splash Engine Apache-2.0 Inco AI incoai/splash
2. Modelos Cuantizados y Aceleradores Especulativos (Splash 1.3.1 / 1.3.2)
Modelo / Checkpoint Licencia Distribuidor / Creador Repositorio
Qwen3.8-27B-NVFP4 Apache-2.0 NVIDIA Model Optimizer nvidia/Qwen3.8-27B-NVFP4
Qwen3.6-35B-A3B-nvfp4 Apache-2.0 MLX Community mlx-community/Qwen3.6-35B-A3B-nvfp4
Qwen3.8-27B-4bit Apache-2.0 MLX Community mlx-community/Qwen3.8-27B-4bit
Qwen3.6-35B-A3B-4bit Apache-2.0 MLX Community mlx-community/Qwen3.6-35B-A3B-4bit
DFlash 2 Speculative Decoders Apache-2.0 Inco AI incoai/Qwen3.8-27B-DFlash2
Qwen Base Models (27B & 35B) Apache-2.0 Alibaba Cloud / Qwen Team Qwen/Qwen
Variantes Cuantizadas GGUF Apache-2.0 / MIT llama.cpp / Creadores Comunitarios Hugging Face Hub
3. Clientes y Agentes de CΓ³digo AutΓ³nomos Conectados
Agente / Cliente Licencia / TΓ©rminos Desarrollador Enlace Oficial
DeepSeek Harness (dsh) MIT DeepSeek Community GitHub
Pi Agent (pi) MIT Mario Zechner / Pi.dev pi.dev
Hermes Agent MIT Nous Research NousResearch
OpenCode MIT SST opencode.ai
Codex CLI Apache-2.0 / MIT OpenAI Community OpenAI Developers
Claude Code & Cowork TΓ©rminos de Servicio Anthropic, PBC anthropic.com

⚠️ Aviso de Pesos de Modelos: Los pesos, puntos de control (checkpoints) y cuantizaciones de modelos mantienen sus propios términos de licencia y acuerdos de uso de cada autor en Hugging Face Hub.

ℹ️ Descargo de Responsabilidad (Disclaimer): Splash Monitor es un proyecto independiente desarrollado por JMGREP Developers y no estΓ‘ afiliado, patrocinado ni respaldado por Inco AI, Anthropic, OpenAI, NVIDIA o Alibaba Cloud. "Splash" es una marca comercial de Inco AI. Este software interactΓΊa con la API pΓΊblica local del motor Splash bajo los tΓ©rminos de su licencia Apache-2.0.


πŸ‡¬πŸ‡§ English

Why Splash Monitor?

Until now, Splash could only be operated from the command line. Splash Monitor transforms that experience into a complete visual suite for macOS: real-time metrics monitoring, one-click Hugging Face model management, and code agent launchers β€” all from a menu bar icon or a native desktop window.


πŸš€ What's New in Version 1.2.2-beta

  • πŸ’¬ Native AI Chat & Multi-Turn Playground: Real-time SSE streaming with URLSession.bytes, collapsible <think> reasoning blocks, native Markdown formatting, media/code file attachments, and one-click Markdown export.
  • πŸ”„ Hot-Swap Model Switching: Interactive pill in the header and lower-left corner of the chat to switch local models on the fly with automatic shutdown and relaunch.
  • βš™οΈ Per-Model CLI Flags (PerModelServerFlags β€” Closes #10): Configure distinct CLI arguments per model, preventing --model-dir, --draft-model, or --mmproj from breaking other models. Contributed by @Thoralf-M.
  • πŸ›‘οΈ Safe Server Termination on Quit (ServerOwnership β€” Closes #11): Splash Monitor only terminates servers it started itself, leaving Terminal/external inference instances running untouched. Contributed by @Thoralf-M.
  • πŸ–₯️ macOS 27 Menu Bar Fix (Closes #9): Enforced a fixed 460 pt height and 600 pt width on MenuBarView popover, preventing zero-height collapse in macOS 27.2. Contributed by @Thoralf-M.
  • πŸ”Ž Native macOS Zoom Menu & Universal Shortcuts: Universal ⌘= (Zoom In), ⌘- (Zoom Out), and ⌘0 (Reset 100%) in View > Appearance and in the chat header.
  • ⌨️ Compact Input Field & Enter to Send: Slim 34 px horizontal input capsule with instant send on Enter and multi-line drafting via Shift+Enter.
  • 🌐 100% Bilingual Support (English / Spanish): Full localization across all windows and controls.
  • πŸ§ͺ 142 Automated Unit Tests (100% Passing): Full regression suite with zero failures.

✨ Key Features

πŸ“Š Real-Time Token Dashboard

  • Prefill and decode speeds in tok/s with sparkline charts
  • KV Cache hit rate monitoring and token savings tracking
  • DFlash 2 speculative acceptance rate
  • TTFT and ITL latency metrics (p50 percentile)
  • Thermal monitoring and Apple Neural Engine (ANE) acceleration ratio

πŸ’Ύ Metal Unified Memory Gauge

  • Real-time memory usage bar (e.g. 23.7 GB / 55.6 GB)
  • Automatic Apple Silicon chip and GPU core detection
  • macOS Kernel Memory Pressure Sentinel (dispatch_source_t) with preemptive alerts (Normal, Warning, Critical) and on-demand flush (POST /v1/memory/release)
  • Idle weights status indicator (weights.released) and RAM savings

πŸ“¦ Model Manager

  • Local installed models catalog with disk footprint calculation
  • Live Hugging Face, mlx-community, and official NVIDIA (NVFP4 / FP8) catalog explorer
  • Real-time download transfer speed telemetry (MB/s), phases, and continuous progress bar
  • Explanatory guidance for protected repositories (403 Gated Models)
  • Support for quantized GGUF variants and --language-only mode

πŸ•ΉοΈ Server Controls

  • Interactive model selector with hot-swapping
  • Start / stop the server with one click
  • Code agent launchers: Claude Code, Claude Cowork, OpenCode, Codex, Hermes, Pi Agent (pi.dev), and DeepSeek Harness (dsh)
  • Advanced Splash 1.3.2 options: GDN state format (--state-format bf16), reasoning token budget (--thinking-token-budget), persistent SSD prefix cache (--persistent-cache)
  • Port selection, LAN network bind (0.0.0.0 / 127.0.0.1), allowed domains or hosts (--allowed-host), context limit (--max-context), and custom CLI flags
  • One-click OpenAI-compatible API endpoint copying

🌐 Auto Language Detection

  • Dynamic sync with macOS system language
  • Real-time switching without restart
  • Manual toggle: EspaΓ±ol πŸ‡©πŸ‡΄ / English πŸ‡¬πŸ‡§

🍎 Native macOS Experience

  • Menu bar extra with 4 display modes and 1-click memory flush
  • 3D liquid droplet icon with full alpha transparency
  • NavigationSplitView with 8 sidebar sections
  • macOS 13.0+ compatibility on Apple Silicon

πŸ“Έ Visual Tour by Modules

Every module of Splash Monitor is designed and optimized for a native Apple Silicon macOS experience:

1. πŸ•ΉοΈ Server Controls & Agent Launchers (with Claude Cowork & DeepSeek Harness)

Server Controls and Code Agent Launchers

Server Control Module: Start and stop the Splash server with one click, hot-swap models without restarting, configure custom ports, GDN recurrent state format in BF16 (-50% RAM), reasoning token budget, persistent SSD prefix cache, and launch autonomous coding agents: Claude Cowork (native AppKit launch with model aliases to prevent 404 errors), Claude Code CLI, OpenCode, Codex, Hermes, Pi Agent, and DeepSeek Harness (`dsh`).


2. πŸ’¬ Professional AI Chat & Multi-Turn Playground

Professional AI Chat and Multi-Turn Playground

Native AI Chat Module: High-speed conversational streaming (SSE with AsyncSequence), rich Markdown rendering with syntax-aware code blocks and one-click copy, collapsible reasoning process (Thinking blocks), per-token live telemetry (tok/s and TTFT latency), persistent on-disk chat session history, and interactive temperature/token sliders.


3. πŸ“Š Real-Time Token & Metal Performance Dashboard

Real-Time Token & Metal Performance Dashboard

Real-Time Performance Module: Live token generation speed telemetry (DECODE and PREFILL in tok/s), KV Cache hit ratio and token reuse, token deduplication metrics, DFlash 2 speculative decoding acceptance rates, TTFT/ITL latencies, and Apple Silicon Metal unified memory usage (M3/M4/M5).


3. πŸ”Œ Connected Applications & Active TCP Clients

Connected Applications and Active Clients

Connected Clients Module: Automatic inspection of active TCP sockets against the inference port, recognizing clients such as Claude Desktop / Cowork, DeepSeek Harness, Cursor IDE, VS Code, and Chatbots with their native macOS application icons and stream state.


4. πŸ“– Client Connection Guide & Local Gateway

Client Connection Guide

Connection Guide Module: Quick setup instructions and one-click copyable configuration snippets for Claude Desktop, Cursor IDE, VS Code (Cline/Continue), Chatbox, and Python scripts (OpenAI SDK / LangChain).


5. πŸ“¦ Hugging Face Model Manager & Download Telemetry

Hugging Face Local Model Manager

Model Management Module: Disk footprint inspection for local models, hot-swap deployment, and Hugging Face catalog exploration with support for official NVIDIA quantized models (NVFP4 / FP8), GGUF variants, assisted guidance for protected repositories (403 Gated Models), and --language-only mode for Coder/text models.

Live Download Telemetry

Real-Time Download Telemetry: Live transfer speed measurement in MB/s (⚑️ 34.8 MB/s), continuous progress bar, exact GB downloaded counter vs expected total, and phase detection (DFlash2 speculative accelerator, model weights, and Splash engine assembly).


6. πŸ§ͺ Model Testing & Diagnostics Lab

Model Testing & Diagnostics Lab

Model Testing Module: Complete one-click verification suite with Smoke Testing (server health, Metal engine readiness, Jinja templates, OpenAI Chat, Anthropic Messages, and Tool Calling/JSON validation), Metal speed benchmarking with KV Cache speedup factor calculation, and an interactive local inference Playground.


7. βš™οΈ System Preferences & Settings

System Preferences and Settings

Settings Module: Language selector (Dominican Spanish πŸ‡©πŸ‡΄ / English πŸ‡¬πŸ‡§ / macOS auto-sync), customizable macOS menu bar item display modes, and background polling interval controls.


8. ℹ️ About Splash Monitor

About Splash Monitor

About Module: Version information (v1.2.2-beta), native Swift 6 and Metal architecture details, MIT open-source license, and author credits for Joan Gregorio PΓ©rez (JMGREP Developers).


πŸ“₯ Installation

Prerequisites β€” Inco AI Splash Engine

Splash Monitor is a graphical monitor for Inco AI's Splash local inference engine. Before installing Splash Monitor, you need Splash running on your Mac.

Install Splash from the official Inco AI repository:

# Add the official Inco AI tap and install Splash
brew install incoai/tap/splash

πŸ“‹ Splash engine requirements (from incoai/splash):

  • Mac with Apple Silicon M3 or newer
  • macOS 26.4 (Tahoe) or later
  • 36 GB of unified memory (48 GB or more recommended)

Models are downloaded automatically on first use. See available models at huggingface.co/incoai.

Once Splash is installed and running, install Splash Monitor:

Option A β€” Homebrew Cask (Recommended Β· Official Β· Zero Gatekeeper Prompts)

The native macOS package manager method. When installed through Homebrew, macOS does not flag it with browser quarantine:

brew install --cask hometrix/tap/splash-monitor

⚠️ Check which version the cask installs. The tap cask is a separate file in hometrix/homebrew-tap and can lag behind this repository's releases: in the v1.0.2-beta audit the cask still served 1.0.0-beta. Verify with brew info --cask splash-monitor or Splash Monitor.app/Contents/Info.plist. If the cask is behind, use Option B or C, which always point at the latest release.


Option B β€” 1-Line Quick Install (Terminal / Script)

The quickest method without tapping:

curl -fsSL https://raw.githubusercontent.com/hometrix/SplashMonitor/main/scripts/install.sh | bash

⚑️ This script resolves the latest release, downloads the official DMG, verifies its SHA-256 checksum against the published SHA256SUMS file (aborting on mismatch), mounts it, installs to /Applications, and opens the app automatically. Pin a specific version with SPLASH_MONITOR_TAG=v1.2.2-beta.


Option C β€” Manual DMG Download

  1. Download the official installer: πŸ‘‰ SplashMonitor-1.2.2-beta.dmg

    And its checksum file: SHA256SUMS

    shasum -a 256 -c SHA256SUMS   # must print "OK"
  2. Double-click the downloaded .dmg and drag Splash Monitor to Applications.

πŸ›‘οΈ If macOS shows: "Apple cannot verify that this app is free of malware...": This is a standard Gatekeeper notice for independent open-source apps. To allow it:

  1. Open System Settings on your Mac.
  2. Go to Privacy & Security and scroll down to the Security section.
  3. Click "Open Anyway".

Or via Terminal (1 second):

xattr -d com.apple.quarantine ~/Downloads/SplashMonitor*.dmg

Option B β€” Build from Source (Developers)

Requirements:

Requirement Minimum Version
Mac Apple Silicon (M3, M4, M5)
macOS 13.0 or later
Xcode 15+ or Swift 6.0 Toolchain
Splash Engine incoai/tap/splash
# 1. Clone the repository
gh repo clone hometrix/SplashMonitor
cd SplashMonitor

# 2. Run the test suite (142 tests, no network, no real engine)
swift test

# 3. Build the release binary and bundle .app
./scripts/build_app.sh

# 4. (Optional) Create the compressed DMG installer + SHA256SUMS
./scripts/create_dmg.sh

# 5. Launch the application
open "Splash Monitor.app"

πŸ”’ Single source of truth for the version. Sources/SplashMonitor/Services/Version.swift holds the version, bundle identifier and build number, and all three scripts extract them with sed. Before, the version was declared in five places and had already diverged.

πŸ§ͺ Tests

swift test                                   # 113 automated tests (100% pass)
swift test --filter PollingTests             # one suite
swift test --filter ServerOptionsTests       # CLI options and Splash 1.3.2 flags
swift test --filter SystemMemoryPressureTests # macOS kernel memory sentinel

Tests are hermetic by design: a stub status transport, a recording process terminator, a private temp directory and bootstrapNetwork: false (no Hugging Face or GitHub traffic). No test signals a real process or writes to your ~/.zshrc.

Suite Purpose
VersionTests Semantic version ordering and single-source versioning consistency
ModelIDValidatorTests Rejection of model identifiers with shell injection or traversal
ProcessIntrospectionTests Guarantees client processes are never signaled, only engine listeners
ServeLockTests Parsing serve-<port>.lock, empty, corrupted, and orphaned locks
ShellEnvironmentTests Environment sync, idempotent ~/.zshrc mutation and revert
ModelSizeCacheTests Avoids re-scanning model directory trees on every polling tick
PollingTests Guarantees the dashboard re-detects the engine after restart
ClientTerminationPolicyTests Prevents terminating recycled PIDs or the monitor itself
StatusModelTests Engine /status contract conformity and forward-compatibility
ServerCLIValidatorTests Strict validation of CLI arguments, GDN formats, and token budgets
ServerOptionsTests Command generation with LAN host, variants, GDN BF16, and 1.3.2 flags
AgentLaunchTests Launchers and environment integration for Claude Cowork, Pi, Hermes, and DeepSeek Harness
SystemMemoryPressureTests Kernel memory pressure notifications and on-demand purge
ModelDiagnosticTests Comprehensive endpoint verification and Metal KV acceleration benchmark

πŸ—οΈ Architecture

SplashMonitor/
β”œβ”€β”€ Package.swift                    # Swift Package Manager manifest
β”œβ”€β”€ LICENSE                          # MIT License
β”œβ”€β”€ CONTRIBUTING.md                  # Contribution guidelines (bilingual)
β”œβ”€β”€ SECURITY.md                      # Vulnerability disclosure policy
β”œβ”€β”€ CODE_OF_CONDUCT.md               # Contributor Covenant v2.1
β”œβ”€β”€ README.md                        # Bilingual technical documentation
β”œβ”€β”€ Resources/
β”‚   β”œβ”€β”€ AppIcon.icns                 # Multi-resolution macOS icon bundle
β”‚   └── AppIcon.iconset/             # Standard & Retina icon assets
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ build_app.sh                 # Release build + .app bundling
β”‚   β”œβ”€β”€ create_dmg.sh                # DMG packaging via hdiutil + SHA256SUMS
β”‚   └── install.sh                   # 1-line installer with SHA-256 verification
└── Sources/
    └── SplashMonitor/
        β”œβ”€β”€ SplashMonitorApp.swift   # Entry point (WindowGroup + MenuBarExtra)
        β”œβ”€β”€ Models/
        β”‚   └── SplashStatus.swift   # Codable structs for /status & HF API
        β”œβ”€β”€ Services/
        β”‚   β”œβ”€β”€ SplashService.swift  # Singleton (polling, processes, server)
        β”‚   β”œβ”€β”€ LocalizationService.swift # Dynamic OS language detection
        β”‚   β”œβ”€β”€ SystemMemoryPressureSentinel.swift # macOS kernel RAM pressure sentinel
        β”‚   β”œβ”€β”€ ServerCLIValidator.swift  # CLI flags sanitization and validation
        β”‚   β”œβ”€β”€ ModelIDValidator.swift    # Strict model identifier validator
        β”‚   β”œβ”€β”€ ModelBenchmarkRunner.swift # Token benchmark and KV acceleration
        β”‚   └── Version.swift        # Single source of truth for version (P-15)
        └── Views/
            β”œβ”€β”€ MainWindowView.swift # NavigationSplitView desktop window (8 modules)
            β”œβ”€β”€ MenuBarView.swift    # Interactive menu bar popover
            β”œβ”€β”€ TokenMetricsView.swift # Sparkline, speed cards, memory gauge
            β”œβ”€β”€ ModelManagerView.swift # Local models + HF catalog + telemetry
            β”œβ”€β”€ ServerControlView.swift # Selector, controls, agent launchers, 1.3.2 flags
            β”œβ”€β”€ ConnectedAppsView.swift # Connected apps + DeepSeek Harness
            β”œβ”€β”€ ConnectedAppsGuideView.swift # Client integration guide
            β”œβ”€β”€ ModelTestingView.swift  # Smoke testing + benchmarking + playground
            β”œβ”€β”€ SettingsView.swift   # Language, menu bar, and polling preferences
            β”œβ”€β”€ AboutView.swift      # Author credits and version info
            β”œβ”€β”€ AppIconView.swift    # App icon rendering component
            └── DominicanEmblem.swift # Dominican Republic national emblem

πŸ› οΈ Tech Stack

Component Technology
Language Swift 6
UI Framework SwiftUI
Package Manager Swift Package Manager
Platform macOS 13.0+ (Apple Silicon)
Inference Engine Inco AI Splash
Model Catalog Hugging Face API
Icon Custom 3D liquid droplet (SF Symbols + Canvas)
Packaging hdiutil (native macOS DMG)

🀝 Contributing

Contributions are welcome! Please read our guidelines before participating:

Document Description
πŸ“‹ Contributing Guide Workflow, code conventions, and project structure
πŸ”’ Security Policy Responsible vulnerability disclosure
πŸ“œ Code of Conduct Contributor Covenant v2.1

πŸ› οΈ SoluciΓ³n de Problemas (Troubleshooting)

1. Conflicto de Puerto (Puerto 8000 en uso)

Si el puerto predeterminado 8000 estΓ‘ ocupado por otro servicio de tu Mac (como Uvicorn, Django, Docker o Node.js):

  • OpciΓ³n A (AutomΓ‘tica): En el panel de control del servidor, pulsa el botΓ³n ✨ "Sugerir libre" para que Splash Monitor asigne automΓ‘ticamente el siguiente puerto disponible (ej. 8001 o 8005).
  • OpciΓ³n B (Personalizada): Escribe manualmente el puerto que desees en el campo de texto. Splash Monitor utilizarΓ‘ su Bridge Launcher para ejecutar Splash en el puerto elegido sin errores.
  • OpciΓ³n C (Liberar puerto): Si intentas arrancar en un puerto ocupado, la app te mostrarΓ‘ quΓ© proceso lo tiene tomado y te ofrecerΓ‘ un botΓ³n para liberarlo con un solo clic.

2. Agentes de CΓ³digo (splash claude, OpenCode, Codex, Hermes)

Si al ejecutar splash claude en tu terminal ves el mensaje:

error: No ready Splash server. Run 'splash serve --model <HF_REPO_ID>' in another terminal first.

AsegΓΊrate de que:

  1. El servidor Splash estΓ© iniciado y con su modelo cargado (verΓ‘s el estado en verde en Splash Monitor).
  2. Si ejecutaste el servidor en un puerto personalizado (distinto de 8000), lanza el agente directamente desde los botones de Splash Monitor para que la app configure automΓ‘ticamente las variables de entorno de conexiΓ³n (ANTHROPIC_BASE_URL, SPLASH_PORT).

πŸ‘€ Author & Credits

Joan Gregorio PΓ©rez
Software Engineer Β· JMGREP Developers
πŸ‡©πŸ‡΄ Dominican Republic
GitHub

Special Thanks:


πŸ’– Support the Project

If you find Splash Monitor valuable for your local AI workflows and autonomous coding agents, consider supporting its ongoing development by buying me a coffee! Every contribution helps keep the project updated, tested, and fine-tuned for Apple Silicon.

Buy Me A Coffee


πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for full terms.

MIT License β€” Copyright (c) 2026 JMGREP Developers / Joan Gregorio PΓ©rez

Attributions & Component Licenses

Splash Monitor is an independent open-source application that interfaces with the Splash inference engine, machine learning models, and autonomous coding agents. Below are the licenses and attributions for each component:

1. Inference Engine & Monitor
Component License Author / Organization Repository
Splash Monitor MIT JMGREP Developers (Joan Gregorio PΓ©rez) hometrix/SplashMonitor
Splash Engine Apache-2.0 Inco AI incoai/splash
2. Quantized Models & Speculative Accelerators (Splash 1.3.1 / 1.3.2)
Model / Checkpoint License Provider / Origin Repository
Qwen3.8-27B-NVFP4 Apache-2.0 NVIDIA Model Optimizer nvidia/Qwen3.8-27B-NVFP4
Qwen3.6-35B-A3B-nvfp4 Apache-2.0 MLX Community mlx-community/Qwen3.6-35B-A3B-nvfp4
Qwen3.8-27B-4bit Apache-2.0 MLX Community mlx-community/Qwen3.8-27B-4bit
Qwen3.6-35B-A3B-4bit Apache-2.0 MLX Community mlx-community/Qwen3.6-35B-A3B-4bit
DFlash 2 Speculative Decoders Apache-2.0 Inco AI incoai/Qwen3.8-27B-DFlash2
Qwen Base Models (27B & 35B) Apache-2.0 Alibaba Cloud / Qwen Team Qwen/Qwen
GGUF Quantized Variants Apache-2.0 / MIT llama.cpp / Community Creators Hugging Face Hub
3. Supported Autonomous Coding Agents & Clients
Agent / Client License / Terms Developer Official Link
DeepSeek Harness (dsh) MIT DeepSeek Community GitHub
Pi Agent (pi) MIT Mario Zechner / Pi.dev pi.dev
Hermes Agent MIT Nous Research NousResearch
OpenCode MIT SST opencode.ai
Codex CLI Apache-2.0 / MIT OpenAI Community OpenAI Developers
Claude Code & Cowork Terms of Service Anthropic, PBC anthropic.com

⚠️ Model Weights Notice: Model checkpoints, weights, and quantizations retain their own specific licenses and terms from their respective authors on the Hugging Face Hub.

ℹ️ Disclaimer: Splash Monitor is an independent project developed by JMGREP Developers and is not affiliated with, sponsored by, or endorsed by Inco AI, Anthropic, OpenAI, NVIDIA, or Alibaba Cloud. "Splash" is a trademark of Inco AI. This software interfaces with the public Splash local API under the terms of the Apache-2.0 license.


Made with ❀️ in the Dominican Republic πŸ‡©πŸ‡΄

JMGREP Developers

About

First native macOS desktop app and menu bar monitor for Inco AI's Splash local inference engine on Apple Silicon

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

30 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages