npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@loksly/aimonitor

v1.0.0

Published

Dashboard de sesiones de Claude Code y Gemini para el panel LCD USB Thermalright Trofeo Vision

Readme

aimonitor 📺✨

Un dashboard elegante y de alto rendimiento para mostrar de forma simultánea el estado de tus sesiones de Claude Code y Gemini CLI en el panel LCD USB Thermalright Trofeo Vision (1920×462 / 1920x480).

Este proyecto convierte tu panel de hardware secundario en una "sala de control" del operador de IA: la normalidad es la oscuridad (píxeles apagados), iluminando únicamente las sesiones que reclaman tu atención con un sistema inteligente de jerarquía visual (pesos sólido, marcado y quieto).


🚀 Características Principales

  • Soporte Multi-Proveedor: Registra y muestra simultáneamente sesiones activas tanto de Claude como de Gemini.
  • Diseño de Sala de Control de Alta Prioridad:
    • 🟥 Sólido: Únicamente la consola más urgente (bloqueada por permisos) se muestra a pleno color y texto oscuro para verse de reojo.
    • 🟨 Marcada: Casillas oscuras con una línea/espina de color a sangre en el canto izquierdo de las que esperan entrada del operador.
    • 🟦 Quieta: Sesiones inactivas o trabajando en segundo plano que no reclaman tu atención inmediata.
  • Optimización de Hardware & Salud del Panel:
    • Pixel-Shifting: Desplaza de forma invisible todo el layout 1–2 píxeles en un ciclo lento cada pocos minutos para evitar el quemado de pantalla (image retention).
    • Apagado Inteligente: Pone la pantalla en negro absoluto (#000000) cuando no hay consolas activas, protegiendo la vida del backlight.
    • Pruning de Zombis: Descarta automáticamente sesiones en segundo plano que hayan muerto sin cerrarse limpiamente.
  • Información del Sistema: Muestra de forma eficiente la memoria RAM libre/total en tiempo real y el estado Git (ficheros sucios sin commit) por sesión.
  • Métricas de Consumo Real: Carril de consumo derecho integrado con la herramienta ccusage para rastrear tokens diarios, gasto acumulado en USD y desglose por modelo en tiempo real.

📦 Instalación

Puedes instalarlo de manera global en tu sistema para usar los binarios directamente:

npm install -g @loksly/aimonitor

1. Configurar Reglas Udev (Linux)

Para que el daemon pueda escribir imágenes por USB al panel Thermalright Trofeo Vision sin requerir privilegios de sudo, instala las reglas udev incluidas:

# Copia las reglas a la carpeta del sistema
sudo cp 99-trcc.rules /etc/udev/rules.d/

# Recarga las reglas de udev
sudo udevadm control --reload-rules
sudo udevadm trigger

⚠️ IMPORTANTE: Es necesario desenchufar y volver a conectar el cable USB del panel LCD tras aplicar las reglas para que el sistema le asigne los nuevos permisos.

2. Configurar el Arranque Automático (Systemd)

Para que el daemon empiece a funcionar de forma cómoda al iniciar tu sesión de usuario local:

# Crear directorio de servicios de usuario si no existe
mkdir -p ~/.config/systemd/user/

# Copiar la unidad de servicio
cp aimonitor.service ~/.config/systemd/user/

# Recargar systemd de usuario, habilitar e iniciar el servicio
systemctl --user daemon-reload
systemctl --user enable aimonitor.service
systemctl --user start aimonitor.service

Puedes monitorizar la actividad del daemon en tiempo real con:

journalctl --user -u aimonitor.service -f

🔗 Configuración de los Hooks

Para integrar tus asistentes locales con el panel, debes configurar los disparadores (hooks) de eventos.

Integración con Claude Code

Añade el hook en tu configuración global de Claude (~/.anthropic/config.json o settings.json según tu instalación):

{
  "hooks": {
    "on_event": "aimonitor-hook"
  }
}

Integración con Gemini CLI o Scripts Custom

El hook soporta el parámetro --provider para clasificar las sesiones. Puedes invocarlo manualmente o desde scripts pasando el JSON del evento por entrada estándar:

echo '{"event": "UserPromptSubmit", "sessionId": "session-123", "cwd": "/home/loksly/dev/proyecto"}' | aimonitor-hook --provider gemini

🛠️ Configuración Avanzada

Puedes personalizar resoluciones, márgenes, comportamiento y topes de API creando tu archivo de configuración en ~/.aimonitor/config.json:

{
  "rail": {
    "enabled": true,
    "width": 356
  },
  "tile": {
    "min": 320,
    "max": 430,
    "gap": 12
  },
  "usage": {
    "mode": "api",
    "dailyCap": 15.0,
    "monthlyCap": 300.0,
    "refreshMs": 60000
  },
  "blankWhenIdle": true
}

🎨 Galería y Desarrollo de Previews

El proyecto incluye un robusto sistema de vistas previas offline para desarrollo iterativo sin necesidad de tener el hardware conectado.

Genera todos los escenarios en formato de imagen PNG:

npm run preview -- --all --out preview

Genera una galería HTML interactiva local para ver el aspecto de cada escenario:

npm run gallery

Puedes ver los previews en vivo publicados en GitHub Pages (enlazado a tu pipeline de GitHub).


🗺️ Mapa del Repositorio

  • src/hook.ts - CLI de entrada que traduce eventos de IA a archivos JSON de sesión de forma atómica.
  • src/daemon.ts - Proceso de fondo reactivo que vigila archivos, ejecuta git, actualiza uso y renderiza.
  • src/usage.ts - Adaptador para parsear la salida JSON real de ccusage.
  • src/render.ts - Motor gráfico que compone la cabecera, casillas con iconos, reloj y carril derecho.
  • src/select.ts - Algoritmo que planifica cuántas casillas caben y cómo agrupar las sobrantes.
  • src/fonts.ts - Implementación tipográfica, tracking manual de versalitas y elipsis.

📄 Licencia

Este proyecto se distribuye bajo la licencia MIT. Siéntete libre de colaborar, abrir issues o enviar pull requests para mejorar la experiencia de desarrollo con IA en hardware complementario.