À propos du projet

craft (anacraft) est un outil en ligne de commande écrit en Rust qui configure Google Analytics 4 pour un domaine et lit les métriques résultantes sous forme de tableau de bord terminal. Son langage visuel est inspiré de Minecraft : barres texturées de minerai, sept panneaux en direct, un flux d'événements en temps réel et des toasts de succès, avec des palettes sélectionnables dont osaka-jade (par défaut), catppuccin, github, tokyo-night et catppuccin-latte. La commande est craft ; anacraft est installé à côté comme alias. Installation et utilisation de base - Un script d'installation est servi depuis anacraft.dev et place le binaire dans /usr/local/bin quand c'est possible, sinon dans ~/.local/bin, sans sudo ; INSTALL_DIR permet de choisir un autre emplacement. Les builds sources utilisent cargo install --git, et des binaires précompilés sont publiés dans les GitHub Releases du projet. - Lancer anacraft sans commande ouvre le tableau de bord (dash est le défaut). Sans propriété enregistrée, il fonctionne sur des données synthétiques, ce qui permet de l'essayer avant de se connecter. - Pour démarrer rapidement : craft configure pour un nouveau domaine, ou craft login puis craft props et craft use pour attacher une propriété existante. - Les rapports ponctuels affichent et quittent : overview, pages, portals (sources de trafic), realms (pays), live et demo, avec les options --days et --theme. - Deux drapeaux globaux : --property sélectionne une propriété autre que celle enregistrée par défaut ; --theme surcharge la palette pour une seule exécution. Formats de sortie pour scripting overview accepte --format json (un seul objet étiqueté avec unités, période précédente, changement en pourcentage, série quotidienne d'utilisateurs et succès) ou --format slack (payload Block Kit). Les deux n'impriment que le payload, donc un récapitulatif hebdomadaire peut être une seule ligne cron redirigeant vers un webhook. Aucun format n'exige un abonnement. Tableau de bord Sept panneaux peuvent chacun être activés ou désactivés avec les touches 1 à 7 (ou des raccourcis lettres), et les panneaux restants se refluents pour remplir le terminal : EVENTS, RIGHT NOW (joueurs en direct et flux d'événements), COUNTRIES (carte mondiale), TOP PAGES, VITALS (utilisateurs, sessions, vues, conversions, taux de rebond, durée moyenne de session), TOP COUNTRIES et DAILY USERS. Autres contrôles : tab pour faire défiler les propriétés, shift-D pour oublier la propriété affichée localement, t pour faire défiler et sauvegarder une palette, r pour forcer une actualisation, superposition d'aide et quit. Alertes craft watch compare le jour complet le plus récent avec la moyenne des jours précédents et signale les écarts au-delà de seuils par métrique dérivés de l'historique du site. Il signale les baisses, pics et « silence » (un compteur tombant à zéro face à une base non nulle, comme avec un tag retiré). Les défauts diffèrent selon la métrique (par exemple 30 % pour les utilisateurs et sessions, 40 % pour les conversions, 20 % pour le taux de rebond) ; les seuils et la longueur de la base peuvent être ajustés par propriété dans config, et une base inférieure à un minimum configuré ne déclenche jamais d'alerte de comptage. Les alertes portent la valeur de la métrique, le mouvement, la base et un sparkline, et ne nomment un canal dominant que lorsqu'il représente une part importante du mouvement. L'état est conservé dans ~/.anacraft/watch.json clissé par jour afin que le même jour ne génère qu'une seule alerte ; les codes de sortie sont 0 pour rien déclenché, 2 pour une alerte et 1 pour une erreur. Options de livraison : --every pour vérifications répétées et --webhook pour POST ; craft slack --install guide à travers l'écran d'installation de Slack et enregistre l'URL incoming-webhook, en utilisant la portée la plus stricte capable de poster dans le canal choisi. Serveur MCP pour assistants craft mcp expose les rapports via le Model Context Protocol, afin que Claude Desktop, Claude Code ou d'autres clients MCP puissent répondre à des questions sur un site. craft mcp --install écrit (et --uninstall supprime) une entrée de serveur dans la configuration d'un client ; Claude Code utilise claude mcp add. Les outils incluent site_status, live_visitors, list_pages, list_events, list_referrers, list_traffic_sources, list_countries, list_properties, search_pages, search_events et configure_site. configure_site est décrit comme l'unique écriture, créant une propriété et un flux web pour un domaine non suivi et renvoyant le tag ; login et sélection de propriété restent des commandes humaines. Les réponses sont des JSON structurés étiquetés avec l'identifiant de propriété et la fenêtre de date couverte, et les rapports identiques sont mis en cache pendant environ une minute pour limiter l'usage du quota API. Configuration et identifiants Les propriétés et leurs paramètres résident dans ~/.config/anacraft/config.toml (XDG_CONFIG_HOME est respecté), tandis que le jeton de rafraîchissement OAuth est délibérément conservé en dehors de ce répertoire dans ~/.anacraft/token.json. Plusieurs propriétés s'accumulent dans la config et sont cyclées avec tab, la dernière affichée à la fermeture devenant active. L'ordre de résolution est --property, puis ANACRAFT_PROPERTY_ID, puis la propriété active sauvegardée. Autres variables d'environnement : ANACRAFT_WEBHOOK et, pour utiliser un client OAuth Google Cloud personnel plutôt que celui intégré, ANACRAFT_OAUTH_CLIENT_ID et ANACRAFT_OAUTH_CLIENT_SECRET. Exigences et notes du projet Une propriété GA4, un terminal truecolor et, pour les builds sources, Rust 1.74 ou plus récent sont listés comme exigences. Le dépôt est sous licence Apache License 2.0 et inclut des directives de contribution ; cargo run -- dash --demo donne un tableau de bord fonctionnel sans compte Google, et une skill Claude Code est fournie sous .claude/skills/anacraft/. Contexte commercial Plusieurs capacités sont liées à des abonnements payants (référencés comme Anacrafter et niveaux supérieurs, à partir de 2,99 € par mois sur la page tarifaire du projet) : craft configure, la livraison des alertes watch vers Slack et le serveur MCP. Les modes démo pour le tableau de bord, watch et le serveur MCP fonctionnent sans compte ni abonnement, et les formats JSON et Slack pour overview sont indiqués comme ne nécessitant pas d'abonnement. Lorsqu'un plan ou une connexion manque, le serveur MCP démarre toujours et ses outils indiquent ce qui est requis plutôt que de quitter.