Utilisation en ligne de commande de gac
June 22, 2026 · View on GitHub
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano
Ce document décrit tous les drapeaux et options disponibles pour l'outil CLI uvx gac.
Table des matières
- Utilisation en ligne de commande de gac
Utilisation de base
uvx gac init
# Suivez ensuite les invites pour configurer votre fournisseur, modèle et clés API de manière interactive
uvx gac
Génère un message de commit alimenté par l'IA pour les changements indexés et demande confirmation. L'invite de confirmation accepte :
youyes- Procéder au commitnouno- Annuler le commitroureroll- Régénérer le message de commit avec le même contexteeouedit- Éditer le message de commit. Par défaut, ouvre une TUI intégrée avec les bindings vi/emacs. DéfinissezGAC_EDITORpour ouvrir votre éditeur préféré à la place (ex.,GAC_EDITOR=code gacpour VS Code,GAC_EDITOR=vim gacpour vim)- Tout autre texte - Régénérer avec ce texte comme feedback (ex: "rends-le plus court", "concentre-toi sur les performances")
- Entrée vide (juste Entrée) - Afficher l'invite à nouveau
Drapeaux de workflow principaux
| Drapeau / Option | Court | Description |
|---|---|---|
--add-all | -a | Indexer tous les changements avant le commit |
--stage | -S | Sélectionner interactivement les fichiers à indexer avec une TUI arborescente |
--group | -g | Grouper les changements indexés en multiples commits logiques |
--push | -p | Pousser les changements vers le distant après le commit |
--yes | -y | Confirmer automatiquement le commit sans demande |
--dry-run | Montrer ce qui se passerait sans faire de changements | |
--message-only | Afficher uniquement le message de commit généré sans effectuer le commit | |
--no-verify | Sauter les hooks pre-commit et lefthook lors du commit | |
--skip-secret-scan | Sauter l'analyse de sécurité pour les secrets dans les changements indexés | |
--no-verify-ssl | Sauter la vérification des certificats SSL (utile pour les proxies d'entreprise) | |
--signoff | Ajouter une ligne Signed-off-by au message de commit (conformité DCO) | |
--interactive | -i | Poser des questions sur les changements pour générer de meilleurs commits |
Note : --stage et --add-all sont mutuellement exclusifs. Utilisez --stage pour sélectionner interactivement les fichiers à indexer, et --add-all pour indexer tous les changements d'un coup.
Note : Combinez -a et -g (c'est-à-dire -ag) pour indexer TOUS les changements d'abord, puis les grouper en commits.
Note : Lors de l'utilisation de --group, la limite de tokens de sortie maximale est automatiquement mise à l'échelle en fonction du nombre de fichiers commités (2x pour 1-9 fichiers, 3x pour 10-19 fichiers, 4x pour 20-29 fichiers, 5x pour 30+ fichiers). Cela assure que l'IA a assez de tokens pour générer tous les commits groupés sans troncation, même pour les ensembles de changements volumineux.
Note : --message-only et --group sont mutuellement exclusifs. Utilisez --message-only lorsque vous souhaitez récupérer le message de commit pour un traitement externe, et --group lorsque vous souhaitez organiser plusieurs commits dans le workflow git actuel.
Note : Le drapeau --interactive vous pose des questions sur vos changements pour fournir un contexte additionnel à l'IA, résultant en des messages de commit plus précis et détaillés. Ceci est particulièrement utile pour les changements complexes ou quand vous voulez vous assurer que le message de commit capture le contexte complet de votre travail.
Personnalisation des messages
| Drapeau / Option | Court | Description |
|---|---|---|
--one-liner | -o | Générer un message de commit sur une seule ligne |
--verbose | -v | Générer des messages de commit détaillés avec motivation, architecture et impact |
--hint <text> | -h | Ajouter un indice pour guider l'IA |
--model <model> | -m | Spécifier le modèle à utiliser pour ce commit |
--language <lang> | -l | Remplacer la langue (nom ou code : 'Spanish', 'es', 'zh-CN', 'ja') |
--scope | -s | Inférer une portée appropriée pour le commit |
--50-72 | Appliquer la règle 50/72 pour le formatage des messages de commit |
Note : Le flag --50-72 applique la règle 50/72 où :
- Ligne de sujet : maximum 50 caractères
- Lignes du corps : maximum 72 caractères par ligne
- Cela garde les messages de commit lisibles dans
git log --onelineet l'interface de GitHub
Vous pouvez aussi définir GAC_USE_50_72_RULE=true dans votre fichier .gac.env pour toujours appliquer cette règle.
Note : Vous pouvez fournir un feedback de manière interactive en le tapant simplement à l'invite de confirmation - pas besoin de préfixer avec 'r'. Tapez r pour une relance simple, e pour éditer le message (TUI intégrée par défaut, ou $GAC_EDITOR si défini), ou tapez votre feedback directement comme "rends-le plus court".
Sortie et verbosité
| Drapeau / Option | Court | Description |
|---|---|---|
--quiet | -q | Supprimer toute sortie sauf les erreurs |
--log-level <level> | Définir le niveau de log (debug, info, warning, error) | |
--show-prompt | Afficher le prompt de l'IA utilisé pour la génération de message de commit |
Aide et version
| Drapeau / Option | Court | Description |
|---|---|---|
--version | Afficher la version de gac et quitter | |
--help | Afficher le message d'aide et quitter |
Exemples de workflows
-
Indexer tous les changements et commiter :
uvx gac -a -
Commiter et pousser en une étape :
uvx gac -ap -
Générer un message de commit sur une seule ligne :
uvx gac -o -
Générer un message de commit détaillé avec sections structurées :
uvx gac -v -
Ajouter un indice pour l'IA :
uvx gac -h "Refactoriser la logique d'authentification" -
Inférer la portée pour le commit :
uvx gac -s -
Grouper les changements indexés en commits logiques :
uvx gac -g # Groupe uniquement les fichiers que vous avez déjà indexés -
Grouper tous les changements (indexés + non indexés) et confirmer automatiquement :
uvx gac -agy # Indexe tout, le groupe, et confirme automatiquement -
Utiliser un modèle spécifique juste pour ce commit :
uvx gac -m anthropic:claude-haiku-4-5 -
Générer un message de commit dans une langue spécifique :
# Utilisant les codes de langue (plus court) uvx gac -l zh-CN uvx gac -l ja uvx gac -l es # Utilisant les noms complets uvx gac -l "Simplified Chinese" uvx gac -l Japanese uvx gac -l Spanish -
Test à blanc (voir ce qui se passerait) :
uvx gac --dry-run -
Récupérer uniquement le message de commit (pour intégration par script) :
uvx gac --message-only # Sortie : feat : ajouter un système d'authentification utilisateur -
Récupérer le message de commit au format une seule ligne :
uvx gac --message-only --one-liner # Sortie : feat : ajouter un système d'authentification utilisateur -
Utiliser le mode interactif pour fournir du contexte :
uvx gac -i # Quel est le but principal de ces changements ? # Quel problème résolvez-vous ? # Y a-t-il des détails d'implémentation dignes d'être mentionnés ? -
Mode interactif avec sortie détaillée :
uvx gac -i -v # Poser des questions et générer un message de commit détaillé
Avancé
- Combinez les drapeaux pour des workflows plus puissants (ex:
uvx gac -ayppour indexer, confirmer automatiquement et pousser) - Utilisez
--show-promptpour déboguer ou revoir le prompt envoyé à l'IA - Ajustez la verbosité avec
--log-levelou--quiet - Utilisez
--message-onlypour l'intégration par script et les workflows automatisés
Intégration par script et traitement externe
Le drapeau --message-only est conçu pour l'intégration par script et les workflows d'outils externes. Il affiche uniquement le message de commit brut, sans mise en forme, spinners ou éléments d'interface supplémentaires.
Cas d'utilisation :
- Intégration avec des agents : Permettre aux agents IA de récupérer les messages de commit et de gérer eux-mêmes les commits
- VCS alternatifs : Utiliser les messages générés avec d'autres systèmes de contrôle de version (Mercurial, Jujutsu, etc.)
- Workflows de commit personnalisés : Traiter ou modifier le message avant de commiter
- Pipelines CI/CD : Extraire les messages de commit pour des processus automatisés
Exemple de script :
#!/bin/bash
# Récupérer le message de commit et l'utiliser avec une fonction de commit personnalisée
MESSAGE=20 20 12 61 79 80 81 98 701 33 100 204 250 395 398 399 400uvx gac --message-only --add-all --yes)
git commit -m "$MESSAGE"
# Exemple d'intégration Python
import subprocess
def get_commit_message() -> str:
result = subprocess.run(
["gac", "--message-only", "--yes"],
capture_output=True,
text=True,
check=False,
)
return result.stdout.strip()
message = get_commit_message()
print(f"Generated message: {message}")
Caractéristiques clés pour l'utilisation dans des scripts :
- Sortie propre sans mise en forme Rich ni spinners
- Contourne automatiquement les invites de confirmation
- Aucun commit git réel n'est effectué
- Fonctionne avec
--one-linerpour une sortie simplifiée - Peut être combiné avec d'autres drapeaux comme
--hint,--model, etc.
Sauter les hooks Pre-commit et Lefthook
Le drapeau --no-verify vous permet de sauter tous les hooks pre-commit ou lefthook configurés dans votre projet :
uvx gac --no-verify # Sauter tous les hooks pre-commit et lefthook
Utilisez --no-verify lorsque :
- Les hooks pre-commit ou lefthook échouent temporairement
- Vous travaillez avec des hooks chronophages
- Vous commitez du code en cours de travail qui ne passe pas encore toutes les vérifications
Note : Utilisez avec prudence car ces hooks maintiennent les standards de qualité du code.
Analyse de sécurité
uvx gac inclut une analyse de sécurité intégrée qui détecte automatiquement les secrets potentiels et clés API dans vos changements indexés avant tout appel à une API d'IA. Si un secret est détecté, le workflow est immédiatement abandonné — aucun appel API n'est effectué. Cela garantit que vos données sensibles ne sont jamais envoyées à un modèle d'IA. L'analyseur utilise la correspondance de motifs basée sur des regex, pas des LLM, l'analyse est donc rapide et s'exécute entièrement en local.
Sauter les analyses de sécurité :
uvx gac --skip-secret-scan # Sauter l'analyse de sécurité pour ce commit
Pour désactiver de manière permanente : Définissez GAC_SKIP_SECRET_SCAN=true dans votre fichier .gac.env.
Quand sauter :
- Commiter du code d'exemple avec des clés de remplacement
- Travailler avec des fixtures de test qui contiennent des identifiants factices
- Lorsque vous avez vérifié que les changements sont sûrs
Note : L'analyseur utilise la correspondance de motifs basée sur des regex (pas des LLM) pour détecter les formats de secrets courants. Il s'exécute avant tout appel à une API d'IA — si un secret est trouvé, aucun appel API n'est effectué. Revoyez toujours vos changements indexés avant de commiter.
Binary File Detection
uvx gac includes automatic detection of binary files in staged changes, preventing accidental commits of compiled files, images, and other binary assets that typically should not be in version control. The detector uses multiple strategies:
- Extension-based detection - Fast recognition of 60+ binary file types
- Null byte detection - Reliable indicator of binary content
- UTF-8 validity checking - Text files should be valid UTF-8 or ASCII
- Magic byte identification - Detects file types from file signatures
Supported binary types:
- Executables: .exe, .dll, .so, .dylib, .bin, .o, .obj, .lib, .a
- Archives: .zip, .tar, .gz, .bz2, .7z, .rar, .xz, .zst
- Images: .png, .jpg, .jpeg, .gif, .bmp, .ico, .svg, .tiff, .webp
- Media: .mp3, .wav, .ogg, .flac, .m4a, .aac, .mp4, .avi, .mkv, .mov, .wmv
- Fonts: .ttf, .otf, .woff, .woff2, .eot
- Documents: .pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx
- Databases: .db, .sqlite, .sqlite3, .mdb, .accdb
- Compiled code: .class, .jar, .war, .ear, .pyc, .pyd, .pyo, .beam, .hi
When binary files are detected:
uvx gac
# Output:
# BINARY FILE WARNING: Binary files detected!
#
# • image.png
# Type: Image file
# Size: 2.3 MB
#
# Binary files should typically be excluded from version control.
# Use .gitignore to prevent accidental commits of binary files.
#
# Options:
# [a] Abort commit (recommended)
# [c] Continue anyway (you know what you are doing)
# [r] Unstage binary file(s) and continue
#
# Choose an option [a]:
Best practices:
-
Add binary patterns to .gitignore:
# Compiled files *.exe *.dll *.so *.dylib *.o *.a # Images *.png *.jpg *.jpeg *.gif # Archives *.zip *.tar.gz # Python *.pyc __pycache__/ -
Use Git LFS for large binary files that must be tracked:
git lfs track "*.psd" git lfs track "*.zip" -
Commit binary files only when necessary:
- Icons and assets that are part of the codebase
- Test fixtures that need to be versioned
- Documentation images
Note: Binary detection runs automatically during the commit workflow (similar to secret scanning). There is no flag to disable it, as binary files generally should not be committed unless there is a specific reason. If you need to commit a binary file, choose the "Continue anyway" option or ensure it is properly documented in your project guidelines.
Vérification des certificats SSL
Le drapeau --no-verify-ssl vous permet de sauter la vérification des certificats SSL pour les appels API :
uvx gac --no-verify-ssl # Sauter la vérification SSL pour ce commit
Pour configurer de manière permanente : Définissez GAC_NO_VERIFY_SSL=true dans votre fichier .gac.env.
Utilisez --no-verify-ssl lorsque :
- Les proxies d'entreprise interceptent le trafic SSL (proxies MITM)
- Les environnements de développement utilisent des certificats auto-signés
- Vous rencontrez des erreurs de certificat SSL dues aux paramètres de sécurité réseau
Note : N'utilisez cette option que dans des environnements réseau de confiance. Désactiver la vérification SSL réduit la sécurité et peut rendre vos requêtes API vulnérables aux attaques de type man-in-the-middle.
Ligne Signed-off-by (Conformité DCO)
uvx gac prend en charge l'ajout d'une ligne Signed-off-by aux messages de commit, qui est requise pour la conformité au Developer Certificate of Origin (DCO) dans de nombreux projets open source.
Ajouter signoff :
uvx gac --signoff # Ajouter une ligne Signed-off-by au message de commit (conformité DCO)
Pour activer de manière permanente : Définissez GAC_SIGNOFF=true dans votre fichier .gac.env, ou ajoutez signoff=true à votre configuration.
Ce que cela fait :
- Ajoute
Signed-off-by: Votre Nom <votre.email@example.com>au message de commit - Utilise votre configuration git (
user.nameetuser.email) pour la ligne - Requis pour des projets comme Cherry Studio, noyau Linux et autres utilisant DCO
Configuration de l'identité git :
Assurez-vous que votre configuration git a le bon nom et email :
git config --global user.name "Your Full Name"
git config --global user.email "your.email@example.com"
Note : La ligne Signed-off-by est ajoutée par git lors du commit, pas par l'IA lors de la génération du message. Vous ne la verrez pas dans la prévisualisation, mais elle sera dans le commit final (vérifiez avec git log -1).
Notes de configuration
- La méthode recommandée pour configurer gac est d'exécuter
uvx gac initet de suivre les invites interactives. - Vous avez déjà configuré la langue et devez juste changer de fournisseurs ou de modèles ? Exécutez
uvx gac modelpour répéter la configuration sans questions de langue. - Vous utilisez Claude Code ? Consultez le guide de configuration Claude Code pour les instructions d'authentification OAuth.
- Vous utilisez ChatGPT OAuth ? Consultez le guide de configuration ChatGPT OAuth pour les instructions d'authentification basées sur le navigateur.
- Vous utilisez GitHub Copilot ? Consultez le guide de configuration GitHub Copilot pour les instructions d'authentification Device Flow.
- gac charge la configuration dans l'ordre de priorité suivant :
- Drapeaux CLI
.gac.envau niveau projet~/.gac.envau niveau utilisateur- Variables d'environnement
Options de configuration avancées
Vous pouvez personnaliser le comportement de gac avec ces variables d'environnement optionnelles :
GAC_EDITOR=code --wait- Remplace l'éditeur utilisé lorsque vous appuyez sureà l'invite de confirmation. Par défaut,eouvre une TUI intégrée ; définirGAC_EDITORpasse à un éditeur externe. Prend en charge toute commande d'éditeur avec arguments. Les drapeaux d'attente (--wait/-w) sont automatiquement insérés pour les éditeurs GUI connus (VS Code, Cursor, Zed, Sublime Text) afin que le processus se bloque jusqu'à la fermeture du fichierGAC_ALWAYS_INCLUDE_SCOPE=true- Inférer et inclure automatiquement la portée dans les messages de commit (ex:feat(auth):vs `feat:)GAC_ALWAYS_GROUPED=true- Toujours utiliser le mode de commits groupés (équivalent à toujours passer le flag-gou--group)GAC_VERBOSE=true- Générer des messages de commit détaillés avec sections motivation, architecture et impactGAC_USE_50_72_RULE=true- Toujours appliquer la règle 50/72 pour les messages de commit (sujet ≤50 caractères, lignes du corps ≤72 caractères)GAC_SIGNOFF=true- Toujours ajouter la ligne Signed-off-by aux commits (pour la conformité DCO)GAC_TEMPERATURE=0.7- Contrôler la créativité de l'IA (0.0-1.0, plus bas = plus focus)GAC_REASONING_EFFORT=medium- Contrôler la profondeur de raisonnement/réflexion pour les modèles qui prennent en charge la réflexion étendue (low, medium, high, max). Laisser non défini pour utiliser la valeur par défaut de chaque modèle. Envoyé uniquement aux fournisseurs compatibles (style OpenAI ; non Anthropic).GAC_MAX_OUTPUT_TOKENS=4096- Tokens maximum pour les messages générés (automatiquement mis à l'échelle 2-5x lors de l'utilisation de--groupbasé sur le nombre de fichiers ; remplacer pour aller plus haut ou plus bas)GAC_WARNING_LIMIT_TOKENS=4096- Avertir quand les prompts dépassent ce nombre de tokensGAC_SYSTEM_PROMPT_PATH=/path/to/custom_prompt.txt- Utiliser un prompt système personnalisé pour la génération de messages de commitGAC_LANGUAGE=Spanish- Générer des messages de commit dans une langue spécifique (ex: Spanish, French, Japanese, German). Supporte les noms complets ou codes ISO (es, fr, ja, de, zh-CN). Utilisezuvx gac languagepour sélection interactiveGAC_TRANSLATE_PREFIXES=true- Traduire les préfixes de commits conventionnels (feat, fix, etc.) dans la langue cible (par défaut : false, garde les préfixes en anglais)GAC_SKIP_SECRET_SCAN=true- Désactiver l'analyse de sécurité automatique pour les secrets dans les changements indexés (utiliser avec prudence)GAC_NO_VERIFY_SSL=true- Sauter la vérification des certificats SSL pour les appels API (utile pour les proxies d'entreprise qui interceptent le trafic SSL)GAC_DISABLE_STATS=true- Désactiver le suivi des statistiques d'utilisation (aucune lecture ou écriture de fichier de statistiques ; les données existantes sont préservées). Seules les valeurs truthy désactivent les statistiques ; définir àfalse/0/no/offles maintient activées, comme si la variable n'était pas définie
Voir .gac.env.example pour un modèle de configuration complet.
Pour des conseils détaillés sur la création de prompts système personnalisés, voir docs/CUSTOM_SYSTEM_PROMPTS.fr.md.
Sous-commandes de configuration
Les sous-commandes suivantes sont disponibles :
uvx gac init— Assistant de configuration interactif pour le fournisseur, le modèle et la langueuvx gac model— Configuration fournisseur/modèle/clé API sans invites de langue (idéal pour les changements rapides)uvx gac auth— Afficher le statut d'authentification OAuth pour tous les fournisseursuvx gac auth claude-code login— Se connecter à Claude Code en utilisant OAuth (ouvre le navigateur)uvx gac auth claude-code logout— Se déconnecter de Claude Code et supprimer le token stockéuvx gac auth claude-code status— Vérifier le statut d'authentification de Claude Codeuvx gac auth chatgpt login— Se connecter à ChatGPT en utilisant OAuth (ouvre le navigateur)uvx gac auth chatgpt logout— Se déconnecter de ChatGPT et supprimer le token stockéuvx gac auth chatgpt status— Vérifier le statut d'authentification de ChatGPTuvx gac auth copilot login— Se connecter à GitHub Copilot via Device Flowuvx gac auth copilot login --host ghe.mycompany.com— Se connecter à Copilot sur une instance GitHub Enterpriseuvx gac auth copilot logout— Se déconnecter de Copilot et supprimer les tokens stockésuvx gac auth copilot status— Vérifier le statut d'authentification Copilotuvx gac config show— Afficher la configuration actuelleuvx gac config set KEY VALUE— Définir une clé de configuration dans$HOME/.gac.envuvx gac config get KEY— Obtenir une valeur de configurationuvx gac config unset KEY— Supprimer une clé de configuration de$HOME/.gac.envuvx gac language(ouuvx gac lang) — Sélecteur de langue interactif pour les messages de commit (définit GAC_LANGUAGE)uvx gac editor(ouuvx gac edit) — Sélecteur interactif d'éditeur pour la toucheeau prompt de confirmation (définit GAC_EDITOR)uvx gac diff— Afficher le git diff filtré avec des options pour les changements indexés/non indexés, la couleur et la troncatureuvx gac serve— Démarrer GAC en tant que serveur MCP pour l'intégration d'agents IA (transport stdio)uvx gac stats show— Voir vos statistiques d'utilisation de gac (totaux, séries, activité quotidienne et hebdomadaire, utilisation des tokens, projets principaux avec fichiers moyens, modèles principaux avec vitesse et latence)uvx gac stats models— Statistiques détaillées pour tous les modèles avec répartition des tokens, vitesse, latence et graphiques latence par commituvx gac stats projects— Statistiques pour tous les projets avec répartition des tokens et fichiers moyens par gacuvx gac stats recent— 10 derniers gacs avec tokens, vitesse, latence et fichiers par gac (-n 20pour plus)uvx gac stats reset— Réinitialiser toutes les statistiques à zéro (demande confirmation)uvx gac stats reset model <model-id>— Réinitialiser les statistiques d'un modèle spécifique (insensible à la casse)
Mode Interactif
Le drapeau --interactive (-i) améliore la génération de messages de commit de gac en vous posant des questions ciblées sur vos changements. Ce contexte additionnel aide l'IA à créer des messages de commit plus précis, détaillés et contextuellement appropriés.
Comment ça fonctionne
Quand vous utilisez --interactive, gac vous posera des questions telles que :
- Quel est le but principal de ces changements ? - Aide à comprendre l'objectif de haut niveau
- Quel problème résolvez-vous ? - Fournit le contexte sur la motivation
- Y a-t-il des détails d'implémentation dignes d'être mentionnés ? - Capture les spécificités techniques
- Y a-t-il des changements cassants ? - Identifie les problèmes d'impact potentiel
- Ceci est-il lié à un problème ou ticket ? - Lie à la gestion de projet
Quand utiliser le mode interactif
Le mode interactif est particulièrement utile pour :
- Changements complexes où le contexte n'est pas évident depuis le diff seul
- Travail de refactoring qui s'étend sur plusieurs fichiers et concepts
- Nouvelles fonctionnalités qui requièrent l'explication du but global
- Corrections de bugs où la cause racine n'est pas immédiatement visible
- Optimisations de performance où le raisonnement n'est pas évident
- Préparation de code review - les questions vous aident à réfléchir à vos changements
Exemples d'utilisation
Mode interactif de base :
uvx gac -i
Ceci fera :
- Vous montrer un résumé des changements indexés
- Vous poser des questions sur les changements
- Générer un message de commit incorporant vos réponses
- Demander une confirmation (ou confirmer automatiquement si combiné avec
-y)
Mode interactif avec changements indexés :
uvx gac -ai
# Indexe tous les changements, puis pose des questions pour un meilleur contexte
Mode interactif avec indices spécifiques :
uvx gac -i -h "Migration de base de données pour les profils utilisateur"
# Poser des questions tout en fournissant un indice spécifique pour focaliser l'IA
Mode interactif avec sortie détaillée :
uvx gac -i -v
# Poser des questions et générer un message de commit détaillé et structuré
Mode interactif auto-confirmé :
uvx gac -i -y
# Poser des questions mais confirmer automatiquement le commit résultant
Workflow Questions-Réponses
Le workflow interactif suit ce modèle :
- Revoir les changements - gac montre un résumé de ce que vous commitez
- Répondre aux questions - répondez à chaque invite avec des détails pertinents
- Amélioration du contexte - vos réponses sont ajoutées au prompt de l'IA
- Génération de message - l'IA crée un message de commit avec le contexte complet
- Confirmation - révisez et confirmez le commit (ou confirmez automatiquement avec
-y)
Conseils pour fournir des réponses utiles :
- Soyez concis mais complet - fournissez les détails clés sans être trop verbeux
- Focalisez-vous sur le "pourquoi" - expliquez le raisonnement derrière vos changements
- Mentionnez les contraintes - notez les limitations ou considérations spéciales
- Liez au contexte externe - référencez les issues, documentation ou documents de conception
- Les réponses vides sont acceptables - si une question ne s'applique pas, appuyez juste sur Entrée
Combinaison avec d'autres drapeaux
Le mode interactif fonctionne bien avec la plupart des autres drapeaux :
# Indexer tous les changements et poser des questions
uvx gac -ai
# Poser des questions avec sortie détaillée
uvx gac -i -v
Meilleures pratiques
- Utiliser pour les PRs complexes - particulièrement utile pour les demandes de pull qui ont besoin de descriptions détaillées
- Collaboration d'équipe - les questions vous aident à réfléchir aux changements que d'autres réviseront
- Préparation de documentation - vos réponses peuvent aider à former la base des notes de version
- Outil d'apprentissage - les questions renforcent les bonnes pratiques de messages de commit
- Sauter pour les changements simples - pour les corrections triviales, le mode de base peut être plus rapide
Statistiques d'utilisation
uvx gac suit des statistiques d'utilisation légères pour que vous puissiez voir votre activité de commits, séries, utilisation des tokens, et projets et modèles les plus actifs. Les statistiques sont stockées localement dans ~/.gac_stats.json et ne sont jamais envoyées nulle part — il n'y a pas de télémétrie.
Ce qui est suivi : nombre total d'exécutions gac, nombre total de commits, total des tokens de prompt, output et de raisonnement, dates de première/dernière utilisation, comptes quotidiens et hebdomadaires (gacs, commits, tokens), série actuelle et la plus longue, activité par projet (gacs, commits, tokens) et activité par modèle (gacs, tokens).
Ce qui n'est PAS suivi : messages de commit, contenu de code, chemins de fichiers, informations personnelles ou quoi que ce soit au-delà des comptes, dates, noms de projets (dérivés du remote ou du répertoire git) et noms de modèles.
Opt-in ou Opt-out
uvx gac init vous demande si vous souhaitez activer les statistiques et explique exactement ce qui est stocké. Vous pouvez changer d'avis à tout moment :
- Activer les statistiques : supprimez
GAC_DISABLE_STATSou définissez-le àfalse/0/no/off/vide. - Désactiver les statistiques : définissez
GAC_DISABLE_STATSà une valeur truthy (true,1,yes,on).
Lorsque vous refusez les statistiques lors de uvx gac init et qu'un fichier ~/.gac_stats.json existant est détecté, il vous sera proposé de le supprimer.
Sous-commandes de statistiques
| Commande | Description |
|---|---|
uvx gac stats | Afficher vos statistiques (identique à uvx gac stats show) |
uvx gac stats show | Afficher les statistiques complètes : totaux, séries, activité quotidienne et hebdomadaire, utilisation des tokens, projets principaux, modèles principaux |
uvx gac stats models | Statistiques détaillées pour tous les modèles avec répartition des tokens, vitesse, latence et graphiques latence par commit |
uvx gac stats projects | Statistiques pour tous les projets avec répartition des tokens et fichiers moyens par gac |
uvx gac stats recent | 10 derniers gacs (-n 20 pour plus), avec tokens, vitesse, latence et fichiers par gac |
uvx gac stats reset | Réinitialiser toutes les statistiques à zéro (demande confirmation) |
uvx gac stats reset model <model-id> | Réinitialiser les statistiques d'un modèle spécifique (insensible à la casse) |
Exemples
# Voir vos statistiques globales
uvx gac stats
# Répartition détaillée de tous les modèles utilisés
uvx gac stats models
# Statistiques de tous les projets
uvx gac stats projects
# Historique des gacs récents
uvx gac stats recent -n 20
# Réinitialiser toutes les statistiques (avec confirmation)
uvx gac stats reset
# Réinitialiser les statistiques d'un modèle spécifique
uvx gac stats reset model wafer:deepseek-v4-pro
Ce que vous verrez
Exécuter uvx gac stats affiche :
- Gacs et commits totaux — combien de fois vous avez utilisé gac et combien de commits il a créés
- Série actuelle et la plus longue — jours consécutifs avec activité gac (🔥 à 5+ jours)
- Résumé d'activité — gacs, commits et tokens d'aujourd'hui et de cette semaine vs votre pic quotidien et hebdomadaire
- Projets principaux — vos 5 dépôts les plus actifs par comptes gac + commits, avec fichiers moyens par gac et utilisation des tokens
- Modèles principaux — vos 5 modèles les plus utilisés avec vitesse globale, latence et utilisation des tokens
Exécuter uvx gac stats projects affiche tous les projets (pas seulement les 5 premiers) avec :
- Tableau de tous les projets — chaque projet trié par activité, avec nombre de gac, nombre de commits, ratio commits par gac, fichiers moyens par gac, tokens de prompt, tokens de output, tokens de raisonnement, tokens totaux et part des gacs totaux
- Graphique à barres d'activité — barres horizontales montrant le nombre relatif de gacs par projet
- Graphique à barres d'utilisation des tokens — barres horizontales montrant la consommation relative de tokens par projet
Exécuter uvx gac stats models affiche tous les modèles (pas seulement les 5 premiers) avec :
- Tableau de tous les modèles — chaque modèle utilisé trié par activité, avec nombre de gac, nombre de commits, vitesse globale (tokens/sec), latence globale, tokens de prompt, tokens de output, tokens de raisonnement et tokens totaux
- Graphique de comparaison de vitesse (30j) — un graphique à barres horizontales des vitesses récentes (30 derniers jours) des modèles, triés du plus rapide au plus lent, colorés par percentile de vitesse (🟡 éclair, 🟢 rapide, 🔵 modéré, 🔘 lent)
- Graphique de comparaison de latence (30j) — un graphique à barres horizontales de la latence récente par appel, triée de la plus courte à la plus longue
- Graphique de latence par commit (30j) — un graphique à barres horizontales de la latence récente divisée par le nombre de commits, montrant le temps d'attente réel par commit (un modèle qui fait 5 commits dans un gac de 10s coûte 2s/commit vs un qui fait 1 commit dans un gac de 25s à 25s/commit)
- Célébrations de records — 🏆 trophées quand vous établissez de nouveaux records quotidiens, hebdomadaires, de tokens ou de série ; 🥈 pour les égaler
- Messages d'encouragement — suggestions contextuelles basées sur votre activité
Exécuter uvx gac stats recent affiche vos 10 derniers gacs (configurable avec -n) :
- Tableau des gacs récents — chaque gac avec temps relatif, projet, modèle, nombre de commits, fichiers, vitesse, latence et répartition des tokens par gac
Désactiver les statistiques
Définissez la variable d'environnement GAC_DISABLE_STATS avec une valeur truthy :
# Désactiver le suivi des statistiques
export GAC_DISABLE_STATS=true
# Ou dans .gac.env
GAC_DISABLE_STATS=true
Les valeurs falsy (false, 0, no, off, vide) maintiennent les statistiques activées — comme si la variable n'était pas définie.
Quand désactivé, gac ignore tout enregistrement de statistiques — aucune lecture ou écriture de fichier n'a lieu. Les données existantes sont préservées mais ne seront pas mises à jour tant que vous ne les réactivez pas.
Notifications de Webhook Discord
gac peut notifier un canal Discord à chaque fois que vous effectuez un commit, en utilisant une URL de webhook depuis les paramètres d'intégration de votre canal. L'intégration est opt-in : elle ne fait rien jusqu'à ce que vous configuriez explicitement une URL de webhook.
Configuration
Utilisez le groupe de sous-commandes discord dédié :
uvx gac discord setup # configurer interactivement une URL de webhook
uvx gac discord show # afficher si un webhook est configuré (URL masquée)
uvx gac discord test # envoyer une notification de test au webhook configuré
uvx gac discord remove # supprimer l'URL du webhook configuré
Alternativement, définissez la variable directement dans $HOME/.gac.env (ou ./.gac.env):
GAC_DISCORD_WEBHOOK_URL='https://discord.com/api/webhooks/XXXX/YYYY'
Comportement
- Se déclenche après chaque commit réussi (flux de travail individuels et groupés). Ignoré avec
--dry-runet--message-only. - Publie un embed style GitHub avec une bande verte, repo + branche comme ligne d'auteur, le sujet du commit comme titre, le corps du commit comme description et le SHA court dans le pied de page.
- Utilise l'avatar gac et le nom d'utilisateur
gac. - Les échecs de webhook sont journalisés en WARNING et ne bloquent jamais votre commit.
- Laissez
GAC_DISCORD_WEBHOOK_URLnon défini (ou vide) pour désactiver.gac initn'est pas affecté — la configuration Discord vit uniquement sousgac discord.
Obtenir de l'aide
- Pour la configuration du serveur MCP (intégration d'agents IA), voir docs/MCP.md
- Pour les prompts système personnalisés, voir docs/CUSTOM_SYSTEM_PROMPTS.fr.md
- Pour la configuration OAuth de Claude Code, voir CLAUDE_CODE.md
- Pour la configuration OAuth de ChatGPT, voir CHATGPT_OAUTH.md
- Pour la configuration GitHub Copilot, voir GITHUB_COPILOT.md
- Pour le dépannage et conseils avancés, voir docs/TROUBLESHOOTING.fr.md
- Pour l'installation et la configuration, voir README.md#installation-and-configuration
- Pour contribuer, voir docs/CONTRIBUTING.fr.md
- Informations de licence : LICENSE