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

20 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 Server and Agents Launcher

πŸ•ΉοΈ Servidor de Inferencia Local y Lanzadores de Agentes (Claude Cowork, Claude Code, OpenCode, Codex, Hermes)


πŸ‡ͺπŸ‡Έ 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.


✨ 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)

πŸ’Ύ 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
  • Indicador de presiΓ³n de memoria del sistema

πŸ“¦ Gestor de Modelos

  • CatΓ‘logo de modelos locales instalados con espacio en disco
  • Explorador del catΓ‘logo en vivo de Hugging Face
  • InstalaciΓ³n de modelos con un clic y salida de terminal en vivo

πŸ•ΉοΈ 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
  • SelecciΓ³n de puerto, enlace de red LAN (0.0.0.0 / 127.0.0.1), dominios o hosts permitidos (--allowed-host) y lΓ­mite de contexto (--max-context)
  • 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
  • Icono 3D gota lΓ­quida con transparencia alpha completa
  • NavigationSplitView con 6 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)

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 y lanza agentes autΓ³nomos: Claude Cowork (activaciΓ³n de app nativa con aliases para evitar errores 404), Claude Code CLI, OpenCode, Codex y Hermes.


2. πŸ“Š 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, 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, 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 de Hugging Face

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 variantes GGUF y modo --language-only para modelos Coder.


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.0.6-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.0.6-beta.


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

  1. Descarga el instalador oficial: πŸ‘‰ SplashMonitor-1.0.6-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 (64 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                                   # 64 pruebas
swift test --filter PollingTests             # solo una suite
swift test --filter VersionTests/testPatchTenIsNewerThanPatchTwo   # una prueba

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

πŸ—οΈ 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
└── 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
        └── Views/
            β”œβ”€β”€ MainWindowView.swift # NavigationSplitView de escritorio
            β”œβ”€β”€ MenuBarView.swift    # Popover interactivo del menΓΊ superior
            β”œβ”€β”€ TokenMetricsView.swift # Sparkline, tarjetas de velocidad, gauge
            β”œβ”€β”€ ModelManagerView.swift # Modelos locales + catΓ‘logo HF
            β”œβ”€β”€ ServerControlView.swift # Selector, controles, lanzadores
            β”œβ”€β”€ 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 que interactΓΊa con componentes de terceros. A continuaciΓ³n se detallan las licencias de cada dependencia:

Componente Licencia Repositorio
Splash Monitor MIT hometrix/SplashMonitor
Splash Engine Apache-2.0 incoai/splash
Modelo Qwen3.8-27B-Splash Apache-2.0 incoai/Qwen3.8-27B-Splash
Modelo Qwen3.6-35B-A3B-Splash Apache-2.0 incoai/Qwen3.6-35B-A3B-Splash
Qwen3.8-27B (base) Apache-2.0 Qwen/Qwen3.8-27B
Qwen3.6-35B-A3B (base) Apache-2.0 Qwen/Qwen3.6-35B-A3B

⚠️ Aviso: Los pesos de los modelos mantienen sus propias licencias. Consulta cada repositorio en Hugging Face para los términos específicos.

ℹ️ Disclaimer: Splash Monitor es un proyecto independiente y no estΓ‘ afiliado, patrocinado ni respaldado por Inco AI. "Splash" es una marca de Inco AI. Este proyecto utiliza la API pΓΊblica de Splash bajo los tΓ©rminos de la 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.


✨ 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)

πŸ’Ύ Metal Unified Memory Gauge

  • Real-time memory usage bar (e.g. 23.7 GB / 55.6 GB)
  • Automatic Apple Silicon GPU core detection
  • System memory pressure indicator

πŸ“¦ Model Manager

  • Local installed models catalog with disk usage
  • Live Hugging Face catalog explorer
  • One-click model installation with live terminal output

πŸ•ΉοΈ 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
  • Port selection, LAN network bind (0.0.0.0 / 127.0.0.1), allowed domains or hosts (--allowed-host), and context limit (--max-context)
  • 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
  • 3D liquid droplet icon with full alpha transparency
  • NavigationSplitView with 6 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)

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 listening ports, and launch autonomous coding agents: Claude Cowork (native AppKit launch with model aliases to prevent 404 errors), Claude Code CLI, OpenCode, Codex, and Hermes.


2. πŸ“Š 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, 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, 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 Local Model Manager

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 GGUF variants and --language-only mode for Coder models.


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.0.6-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.0.6-beta.


Option C β€” Manual DMG Download

  1. Download the official installer: πŸ‘‰ SplashMonitor-1.0.6-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 (64 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                                   # 64 tests
swift test --filter PollingTests             # one suite
swift test --filter VersionTests/testPatchTenIsNewerThanPatchTwo   # one test

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.


πŸ—οΈ 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
└── 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
        └── Views/
            β”œβ”€β”€ MainWindowView.swift # NavigationSplitView desktop window
            β”œβ”€β”€ MenuBarView.swift    # Interactive menu bar popover
            β”œβ”€β”€ TokenMetricsView.swift # Sparkline, speed cards, memory gauge
            β”œβ”€β”€ ModelManagerView.swift # Local models + HF catalog explorer
            β”œβ”€β”€ ServerControlView.swift # Selector, controls, agent launchers
            β”œβ”€β”€ 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 application that interfaces with third-party components. Below are the licenses for each dependency:

Component License Repository
Splash Monitor MIT hometrix/SplashMonitor
Splash Engine Apache-2.0 incoai/splash
Qwen3.8-27B-Splash Model Apache-2.0 incoai/Qwen3.8-27B-Splash
Qwen3.6-35B-A3B-Splash Model Apache-2.0 incoai/Qwen3.6-35B-A3B-Splash
Qwen3.8-27B (base model) Apache-2.0 Qwen/Qwen3.8-27B
Qwen3.6-35B-A3B (base model) Apache-2.0 Qwen/Qwen3.6-35B-A3B

⚠️ Note: Model weights retain their own licenses. Check each Hugging Face repository for specific terms.

ℹ️ Disclaimer: Splash Monitor is an independent project and is not affiliated with, sponsored by, or endorsed by Inco AI. "Splash" is a trademark of Inco AI. This project interfaces with the public Splash 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

20 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages