CarbonWatch
Application macOS de barre de menus qui estime en continu l'énergie et l'empreinte carbone de l'usage des IA, sans lire aucun contenu.
Le projet
CarbonWatch est un produit interne NuCom, distribué en application de bureau. Il détecte l'usage des services d'IA sur une machine — n'importe quel navigateur, application de bureau, IDE, agent en ligne de commande, modèle local — et en estime l'énergie et l'empreinte carbone en continu, depuis la barre de menus.
C'est un estimateur, pas un compteur : la méthodologie est affichée dans l'application, et tous ses facteurs sont réglables.
En ligne
Le total mondial public, la méthodologie complète et les téléchargements : [carbonwatch.nucom.fr](https://carbonwatch.nucom.fr).
Ce qui a été construit
- Détection sans privilèges — lecture des connexions sortantes en espace utilisateur (nettop sur macOS, netlink tcp_info sur Linux, GetExtendedTcpTable sur Windows). Aucun droit administrateur, aucun certificat installé, aucun contenu lu.
- Trois signaux complémentaires — destinations réseau, processus des modèles locaux, et charge CPU : un modèle local installé n'est pas un modèle en train d'inférer.
- Deux estimateurs adossés à leur physique — les services distants sont comptés au volume reçu (plafonné au débit maximal d'un modèle, plancher de bruit pour écarter le protocole), les modèles locaux au temps d'inférence.
- Conversion au réseau électrique du lieu de calcul — une requête vers un service américain brûle du courant américain : chaque service porte sa région, une région inconnue est comptée au tarif mondial, jamais au plus favorable.
- Registre de 74 services — 26 de conversation, 20 de génération d'image, de vidéo ou d'audio, 13 d'assistance au code, 12 d'exécution locale et 3 de recherche. Fichier JSON éditable : y ajouter une entrée suffit à faire reconnaître un service maison.
- Total mondial en option — partage désactivé par défaut, question posée une seule fois au premier lancement, jeton renouvelé chaque mois qui interdit de relier deux mois entre eux, et effacement complet côté serveur en un bouton.
Ce que le produit refuse de faire
Aucun contenu lu, aucune connexion déchiffrée, aucun compte, aucune télémétrie. Les limites de la méthode — CDN mutualisés, rapport octets/tokens, tokens de raisonnement invisibles — sont écrites dans la documentation plutôt que tues.
Stack
Tauri 2 (Rust) · React 19 · TypeScript · Vite · SQLite · macOS / Linux / Windows · mises à jour signées · intégration continue GitHub Actions.