Sobre el proyecto
craft (anacraft) es una herramienta de línea de comandos escrita en Rust que configura Google Analytics 4 para un dominio y lee las métricas resultantes como un panel de terminal. Su lenguaje visual es temático de Minecraft: barras con textura de mineral, siete paneles en vivo, un feed de eventos en tiempo real y notificaciones de logros, con paletas seleccionables incluyendo osaka-jade (predeterminada), catppuccin, github, tokyo-night y catppuccin-latte. El comando es craft; anacraft se instala junto como un alias.
Instalación y uso básico
- Un script de instalación se sirve desde anacraft.dev y coloca el binario en /usr/local/bin cuando es escribible, de lo contrario en ~/.local/bin, sin necesidad de sudo; INSTALL_DIR selecciona otra ubicación. Las compilaciones desde fuente usan cargo install --git, y los binarios precompilados se publican en las Releases de GitHub del proyecto.
- Ejecutar anacraft sin comando abre el panel (dash es el predeterminado). Sin una propiedad guardada funciona con datos sintéticos, por lo que puede probarse antes de iniciar sesión.
- Ruta de inicio rápido: craft configure para un nuevo dominio, o craft login seguido de craft props y craft use para adjuntar una propiedad existente.
- Los informes de una sola ejecución imprimen y salen: overview, pages, portals (fuentes de tráfico), realms (países), live y demo, con las opciones --days y --theme.
- Dos banderas globales: --property selecciona una propiedad diferente a la predeterminada guardada; --theme sobrescribe la paleta para una sola ejecución.
Formatos de salida para scripting
overview acepta --format json (un objeto etiquetado único con unidades, período anterior, cambio porcentual, serie diaria de usuarios y logros) o --format slack (una carga útil de Block Kit). Ambos imprimen únicamente la carga útil, de modo que un resumen semanal puede ser una única línea de cron que se canalice a un webhook. Ningún formato requiere suscripción.
Panel
Cada uno de los siete paneles puede activarse o desactivarse con las teclas del 1 al 7 (o con atajos de letra), y los paneles restantes se reajustan para llenar la terminal: EVENTS, RIGHT NOW (jugadores en vivo y feed de eventos), COUNTRIES (gráfica mundial de mapa), TOP PAGES, VITALS (usuarios, sesiones, vistas, conversiones, tasa de rebote, duración media de sesión), TOP COUNTRIES y DAILY USERS. Otros controles incluyen tab para ciclar propiedades, shift-D para olvidar la propiedad mostrada localmente, t para ciclar y guardar una paleta, r para forzar una nueva obtención, superposición de ayuda y salir.
Alertas
craft watch compara el día más reciente completo con la media de los días precedentes y reporta desviaciones que superan los umbrales por métrica derivados del propio historial del sitio. Señala caídas, picos y "silencio" (un conteo que cae a cero frente a una línea base distinta de cero, como ocurre con una etiqueta eliminada). Los valores predeterminados varían según la métrica (por ejemplo 30 % para usuarios y sesiones, 40 % para conversiones, 20 % para tasa de rebote), los umbrales y la longitud de la línea base pueden ajustarse por propiedad en la configuración, y una línea base por debajo de un mínimo configurable nunca dispara una alerta de conteo. Las alertas llevan el valor de la métrica, el movimiento, la línea base y una sparkline, y nombran un canal dominante solo cuando representa una gran parte del movimiento. El estado se guarda en ~/.anacraft/watch.json indexado por día para que la misma día genere alertas una sola vez; los códigos de salida son 0 para nada disparado, 2 para una alerta y 1 para un error. Las opciones de entrega incluyen --every para comprobaciones repetidas y --webhook para POST; craft slack --install guía a través de la pantalla de instalación propia de Slack y guarda la URL del webhook entrante, usando el alcance más estrecho que publica en el canal elegido.
Servidor MCP para asistentes
craft mcp expone los informes a través del Modelo de Contexto de Protocolo, de modo que Claude Desktop, Claude Code u otros clientes MCP puedan responder preguntas sobre un sitio. craft mcp --install escribe (y --uninstall elimina) una entrada de servidor en una configuración de cliente; Claude Code usa claude mcp add. Las herramientas incluyen site_status, live_visitors, list_pages, list_events, list_referrers, list_traffic_sources, list_countries, list_properties, search_pages, search_events y configure_site. configure_site se describe como el único escritor, creando una propiedad y un flujo web para un dominio sin seguimiento y devolviendo la etiqueta; el inicio de sesión y la selección de propiedad siguen siendo comandos exclusivos de humanos. Las respuestas son JSON estructurado etiquetado con el ID de la propiedad y la ventana de fechas cubierta, y los informes idénticos se almacenan en caché durante aproximadamente un minuto para limitar el uso de la cuota de API.
Configuración y credenciales
Las propiedades y su configuración residen en ~/.config/anacraft/config.toml (se respeta XDG_CONFIG_HOME), mientras que el token de actualización de OAuth se mantiene deliberadamente fuera de ese directorio en ~/.anacraft/token.json. Varias propiedades se acumulan en la configuración y se ciclan con tab, siendo la última vista al salir la que queda activa. El orden de resolución es --property, luego ANACRAFT_PROPERTY_ID, y luego la propiedad activa guardada. Otras variables de entorno incluyen ANACRAFT_WEBHOOK y, para usar un cliente OAuth de Google Cloud personal en lugar del integrado, ANACRAFT_OAUTH_CLIENT_ID y ANACRAFT_OAUTH_CLIENT_SECRET.
Requisitos y notas del proyecto
Se requieren una propiedad GA4, una terminal de verdadero color y, para compilaciones desde fuente, Rust 1.74 o más reciente. El repositorio está licenciado bajo Licencia Apache 2.0 y incluye guía de contribución; cargo run -- dash --demo ofrece un panel funcional sin cuenta de Google, y una habilidad de Claude Code se distribuye bajo .claude/skills/anacraft/.
Contexto comercial
Varias capacidades están vinculadas a planes de pago (denominados Anacrafter y niveles superiores, a partir de 2,99 USD al mes en la página de precios del proyecto): craft configure, la entrega de alertas de watch a Slack y el servidor MCP. Los modos de demostración del panel, watch y el servidor MCP se ejecutan sin cuenta ni suscripción, y los formatos de informe JSON y Slack para overview se indican que no requieren suscripción. Cuando falta un plan o inicio de sesión, el servidor MCP sigue iniciándose y sus herramientas informan lo necesario en lugar de terminar.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.