gac Kommandozeilen-Nutzung
June 22, 2026 · View on GitHub
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Рус../ | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano
Dieses Dokument beschreibt alle verfügbaren Flags und Optionen für das uvx gac CLI-Werkzeug.
Inhaltsverzeichnis
- gac Kommandozeilen-Nutzung
Grundlegende Nutzung
uvx gac init
# Dann folgen Sie den Aufforderungen, um Ihren Anbieter, Ihr Modell und Ihre API-Schlüssel interaktiv zu konfigurieren
uvx gac
Generiert eine KI-gestützte Commit-Nachricht für gestagete Änderungen und fordert zur Bestätigung auf. Der Bestätigungs-Prompt akzeptiert:
yoderyes- Mit dem Commit fortfahrennoderno- Den Commit abbrechenroderreroll- Die Commit-Nachricht mit demselben Kontext neu generiereneoderedit- Die Commit-Nachricht bearbeiten. Standardmäßig wird eine In-Place-TUI mit vi/emacs-Keybindings geöffnet. Setzen SieGAC_EDITOR, um stattdessen Ihren bevorzugten Editor zu öffnen (z.B.GAC_EDITOR=code gacfür VS Code,GAC_EDITOR=vim gacfür vim)- Jeder andere Text - Neu generieren mit diesem Text als Feedback (z.B.
make it shorter,focus on performance) - Leere Eingabe (nur Enter) - Den Prompt erneut anzeigen
Kern-Workflow-Flags
| Flag / Option | Kurz | Beschreibung |
|---|---|---|
--add-all | -a | Alle Änderungen vor dem Committen stagen |
--stage | -S | Dateien interaktiv mit baumbasierter TUI zum Staging auswählen |
--group | -g | Gestagete Änderungen in mehrere logische Commits gruppieren |
--push | -p | Änderungen nach dem Committen auf das Remote pushen |
--yes | -y | Automatisch den Commit bestätigen ohne Aufforderung |
--dry-run | Zeigen, was passieren würde, ohne Änderungen vorzunehmen | |
--message-only | Nur die generierte Commit-Nachricht ohne eigentlichen Commit ausgeben | |
--no-verify | Pre-commit und lefthook Hooks beim Committen überspringen | |
--skip-secret-scan | Sicherheits-Scan für Geheimnisse in gestageten Änderungen überspringen | |
--no-verify-ssl | SSL-Zertifikatüberprüfung überspringen (nützlich für Unternehmensproxys) | |
--signoff | Signed-off-by Zeile zur Commit-Nachricht hinzufügen (DCO-Konformität) | |
--interactive | -i | Fragen zu Änderungen stellen für bessere Commits |
Hinweis: --stage und --add-all schließen sich gegenseitig aus. Verwenden Sie --stage, um interaktiv Dateien zum Staging auszuwählen, und --add-all, um alle Änderungen auf einmal zu stagen.
Hinweis: Kombinieren Sie -a und -g (d.h. -ag) um ALLE Änderungen zuerst zu staggen, dann sie in Commits zu gruppieren.
Hinweis: Bei Verwendung von --group wird das maximale Ausgabe-Token-Limit automatisch basierend auf der Anzahl der Dateien, die committet werden, skaliert (2x für 1-9 Dateien, 3x für 10-19 Dateien, 4x für 20-29 Dateien, 5x für 30+ Dateien). Dies stellt sicher, dass die KI genügend Tokens hat, um alle gruppierten Commits ohne Abschneidung zu generieren, selbst bei großen Änderungssätzen.
Hinweis: --message-only und --group schließen sich gegenseitig aus. Verwenden Sie --message-only, wenn Sie die Commit-Nachricht für externe Verarbeitung benötigen, und --group, wenn Sie mehrere Commits im aktuellen Git-Workflow organisieren möchten.
Hinweis: Das --interactive-Flag liefert zusätzlichen Kontext an die KI, indem es Fragen zu Ihren Änderungen stellt, was zu genaueren und detaillierteren Commit-Nachrichten führt. Dies ist besonders nützlich für komplexe Änderungen oder wenn Sie sicherstellen möchten, dass die Commit-Nachricht den vollen Kontext Ihrer Arbeit erfasst.
Nachrichten-Anpassung
| Flag / Option | Kurz | Beschreibung |
|---|---|---|
--one-liner | -o | Eine einzeilige Commit-Nachricht generieren |
--verbose | -v | Detaillierte Commit-Nachrichten mit Motivation, Architektur & Auswirkungen generieren |
--hint <text> | -h | Einen Hinweis hinzufügen, um die KI zu leiten |
--model <model> | -m | Das zu verwendende Modell für diesen Commit angeben |
--language <lang> | -l | Sprache überschreiben (Name oder Code: 'Spanish', 'es', 'zh-CN', 'ja') |
--scope | -s | Einen geeigneten Scope für den Commit herleiten |
--50-72 | Die 50/72-Regel für Commit-Nachrichten-Formatierung erzwingen |
Hinweis: Das --50-72 Flag erzwingt die 50/72-Regel, wobei:
- Betreffzeile: maximal 50 Zeichen
- Body-Zeilen: maximal 72 Zeichen pro Zeile
- Dies hält Commit-Nachrichten in
git log --onelineund GitHub's UI lesbar
Sie können auch GAC_USE_50_72_RULE=true in Ihrer .gac.env Datei setzen, um diese Regel immer anzuwenden.
Hinweis: Sie können Feedback interaktiv geben, indem Sie es einfach am Bestätigungs-Prompt eingeben - kein Präfix mit 'r' erforderlich. Geben Sie r für ein einfaches Reroll, e zum Bearbeiten der Nachricht (standardmäßig In-Place-TUI, oder $GAC_EDITOR falls gesetzt), oder geben Sie Ihr Feedback direkt ein wie make it shorter.
Ausgabe und Ausführlichkeit
| Flag / Option | Kurz | Beschreibung |
|---|---|---|
--quiet | -q | Alle außer Fehlern unterdrücken |
--log-level <level> | Log-Level setzen (debug, info, warning, error) | |
--show-prompt | Den KI-Prompt für die Commit-Nachrichtengenerierung ausgeben |
Hilfe und Version
| Flag / Option | Kurz | Beschreibung |
|---|---|---|
--version | gac-Version anzeigen und beenden | |
--help | Hilfe-Nachricht anzeigen und beenden |
Beispiel-Workflows
-
Alle Änderungen stagen und committen:
uvx gac -a -
Committen und pushen in einem Schritt:
uvx gac -ap -
Eine einzeilige Commit-Nachricht generieren:
uvx gac -o -
Eine detaillierte Commit-Nachricht mit strukturierten Abschnitten generieren:
uvx gac -v -
Einen Hinweis für die KI hinzufügen:
uvx gac -h "Refactor authentication logic" -
Scope für den Commit herleiten:
uvx gac -s -
Gestagete Änderungen in logische Commits gruppieren:
uvx gac -g # Gruppiert nur die Dateien, die Sie bereits gestagt haben -
Alle Änderungen gruppieren (gestagt + ungestagt) und automatisch bestätigen:
uvx gac -agy # Staged alles, gruppiert es und bestätigt automatisch -
Ein bestimmtes Modell nur für diesen Commit verwenden:
uvx gac -m anthropic:claude-haiku-4-5 -
Commit-Nachricht in einer bestimmten Sprache generieren:
# Sprachcodes verwenden (kürzer) uvx gac -l zh-CN uvx gac -l ja uvx gac -l es # Vollständige Namen verwenden uvx gac -l "Simplified Chinese" uvx gac -l Japanese uvx gac -l Spanish -
Trockenlauf (sehen, was passieren würde):
uvx gac --dry-run -
Nur die Commit-Nachricht erhalten (für Skript-Integration):
uvx gac --message-only # Ausgabe: feat: add user authentication system -
Commit-Nachricht im Einzeilenformat erhalten:
uvx gac --message-only --one-liner # Ausgabe: feat: add user authentication system -
Interaktiven Modus für Kontext verwenden:
uvx gac -i # Was ist das Hauptziel dieser Änderungen? # Welches Problem lösen Sie? # Gibt es Implementierungsdetails, die erwähnt werden sollten? -
Interaktiver Modus mit detaillierter Ausgabe:
uvx gac -i -v # Fragen stellen und detaillierte Commit-Nachrichten generieren
Erweitert
- Kombinieren Sie Flags für leistungsfähigere Workflows (z.B.
uvx gac -aypzum stagen, automatischen Bestätigen und pushen) - Verwenden Sie
--show-promptzum Debuggen oder Überprüfen des an die KI gesendeten Prompts - Passen Sie die Ausführlichkeit mit
--log-leveloder--quietan - Verwenden Sie
--message-onlyfür Skript-Integration und automatisierte Workflows
Skript-Integration und externe Verarbeitung
Das Flag --message-only ist für Skript-Integration und externe Tool-Workflows gedacht. Es gibt nur die rohe Commit-Nachricht ohne zusätzliche Formatierung, Spinner oder UI-Elemente aus.
Anwendungsfälle:
- Agent-Integration: KI-Agenten können Commit-Nachrichten abrufen und Commits selbst ausführen
- Alternative VCS: Generierte Nachrichten mit anderen Versionskontrollsystemen verwenden (Mercurial, Jujutsu usw.)
- Benutzerdefinierte Commit-Workflows: Nachricht vor dem Commit weiterverarbeiten oder anpassen
- CI/CD-Pipelines: Commit-Nachrichten für automatisierte Prozesse extrahieren
Beispiel-Skriptverwendung:
#!/bin/bash
# Commit-Nachricht abrufen und mit benutzerdefinierter Commit-Funktion verwenden
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"
# Python-Integrationsbeispiel
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}")
Wichtige Eigenschaften für Skripte:
- Saubere Ausgabe ohne Rich-Formatierung oder Spinner
- Umgeht Bestätigungs-Prompts automatisch
- Es wird kein tatsächlicher Git-Commit ausgeführt
- Funktioniert mit
--one-linerfür vereinfachte Ausgabe - Kann mit anderen Flags wie
--hint,--modelusw. kombiniert werden
Pre-commit und Lefthook Hooks überspringen
Das --no-verify-Flag ermöglicht es Ihnen, alle in Ihrem Projekt konfigurierten pre-commit oder lefthook Hooks zu überspringen:
uvx gac --no-verify # Alle pre-commit und lefthook Hooks überspringen
Verwenden Sie --no-verify, wenn:
- Pre-commit oder lefthook Hooks vorübergehend fehlschlagen
- Bei zeitintensiven Hooks arbeiten
- Bei Arbeit in Bearbeitung befindlichem Code, der noch nicht allen Prüfungen standhält
Hinweis: Verwenden Sie mit Vorsicht, da diese Hooks Codequalitätsstandards aufrechterhalten.
Sicherheits-Scanning
uvx gac enthält integriertes Sicherheits-Scanning, das automatisch potenzielle Geheimnisse und API-Schlüssel in Ihren gestageten Änderungen erkennt, bevor ein AI-API-Aufruf erfolgt. Wenn ein Geheimnis erkannt wird, wird der Workflow sofort abgebrochen — es erfolgt kein API-Aufruf. Dadurch werden Ihre sensiblen Daten niemals an ein KI-Modell gesendet. Der Scanner verwendet regex-basiertes Pattern-Matching, keine LLMs, sodass das Scannen schnell ist und vollständig lokal ausgeführt wird.
Sicherheits-Scans überspringen:
uvx gac --skip-secret-scan # Sicherheits-Scan für diesen Commit überspringen
Permanent deaktivieren: Setzen Sie GAC_SKIP_SECRET_SCAN=true in Ihrer .gac.env-Datei.
Wann überspringen:
- Committen von Beispielcode mit Platzhalter-Schlüsseln
- Arbeiten mit Test-Fixtures, die Dummy-Anmeldeinformationen enthalten
- Wenn Sie überprüft haben, dass die Änderungen sicher sind
Hinweis: Der Scanner verwendet regex-basiertes Pattern-Matching (keine LLMs), um gängige Geheimnisformate zu erkennen. Er wird vor jedem AI-API-Aufruf ausgeführt — wenn ein Geheimnis gefunden wird, erfolgt kein API-Aufruf. Überprüfen Sie immer Ihre gestageten Änderungen vor dem Committen.
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.
SSL-Zertifikatüberprüfung
Das --no-verify-ssl-Flag ermöglicht es Ihnen, die SSL-Zertifikatüberprüfung für API-Aufrufe zu überspringen:
uvx gac --no-verify-ssl # SSL-Überprüfung für diesen Commit überspringen
Um permanent einzustellen: Setzen Sie GAC_NO_VERIFY_SSL=true in Ihrer .gac.env-Datei.
Verwenden Sie --no-verify-ssl wenn:
- Unternehmensproxys SSL-Verkehr abfangen (MITM-Proxys)
- Entwicklungsumgebungen selbstsignierte Zertifikate verwenden
- Sie SSL-Zertifikatfehler aufgrund von Netzwerk-Sicherheitseinstellungen erhalten
Hinweis: Verwenden Sie diese Option nur in vertrauenswürdigen Netzwerkumgebungen. Das Deaktivieren der SSL-Überprüfung verringert die Sicherheit und kann Ihre API-Anfragen anfällig für Man-in-the-Middle-Angriffe machen.
Signed-off-by Zeile (DCO-Konformität)
uvx gac unterstützt das Hinzufügen einer Signed-off-by-Zeile zu Commit-Nachrichten, was für die Developer Certificate of Origin (DCO)-Konformität in vielen Open-Source-Projekten erforderlich ist.
Signoff hinzufügen:
uvx gac --signoff # Signed-off-by Zeile zum Commit hinzufügen
Dauerhaft aktivieren: Setzen Sie GAC_SIGNOFF=true in Ihrer .gac.env-Datei oder fügen Sie signoff=true zu Ihrer Konfiguration hinzu.
Was es macht:
- Fügt
Signed-off-by: Ihr Name <ihre.email@beispiel.com>zur Commit-Nachricht hinzu - Verwendet Ihre Git-Konfiguration (
user.nameunduser.email) für die Zeile - Erforderlich für Projekte wie Cherry Studio, Linux-Kernel und andere mit DCO
Git-Identität einrichten:
Stellen Sie sicher, dass Ihre Git-Konfiguration den richtigen Namen und die richtige E-Mail hat:
git config --global user.name "Ihr Vollständiger Name"
git config --global user.email "ihre.email@beispiel.com"
Hinweis: Die Signed-off-by-Zeile wird von Git während des Commits hinzugefügt, nicht von der KI während der Nachrichtengenerierung. Sie sehen sie nicht in der Vorschau, aber sie wird im endgültigen Commit sein (prüfen Sie mit git log -1).
Konfigurationshinweise
- Die empfohlene Methode zur Einrichtung von gac ist,
uvx gac initauszuführen und den interaktiven Aufforderungen zu folgen. - Bereits konfigurierte Sprache und nur Anbieter oder Modelle wechseln müssen? Führen Sie
uvx gac modelaus, um die Einrichtung ohne Sprachfragen zu wiederholen. - Claude Code verwenden? Siehe die Claude Code-Einrichtungsanleitung für OAuth-Authentifizierungsanweisungen.
- ChatGPT OAuth verwenden? Siehe die ChatGPT OAuth-Einrichtungsanleitung für browserbasierte Authentifizierungsanweisungen.
- GitHub Copilot verwenden? Siehe die GitHub Copilot-Einrichtungsanleitung für Device-Flow-Authentifizierungsanweisungen.
- gac lädt Konfiguration in der folgenden Rangfolge:
- CLI-Flags
- Projekt-weites
.gac.env - Benutzer-weites
~/.gac.env - Umgebungsvariablen
Erweiterte Konfigurationsoptionen
Sie können das Verhalten von gac mit diesen optionalen Umgebungsvariablen anpassen:
GAC_EDITOR=code --wait- Überschreibt den Editor, der beim Drücken voneam Bestätigungs-Prompt verwendet wird. Standardmäßig öffneteeine In-Place-TUI; durch Setzen vonGAC_EDITORwird auf einen externen Editor umgeschaltet. Unterstützt jeden Editorbefehl mit Argumenten. Wait-Flags (--wait/-w) werden für bekannte GUI-Editoren (VS Code, Cursor, Zed, Sublime Text) automatisch eingefügt, sodass der Prozess blockiert, bis Sie die Datei schließenGAC_ALWAYS_INCLUDE_SCOPE=true- Automatisch Scope herleiten und in Commit-Nachrichten einbeziehen (z.B.feat(auth):vs `feat:)GAC_ALWAYS_GROUPED=true- Immer gruppierter Commit-Modus verwenden (entspricht immer die Option-goder--groupangeben)GAC_VERBOSE=true- Detaillierte Commit-Nachrichten mit Motivation, Architektur und Auswirkungs-Abschnitten generierenGAC_USE_50_72_RULE=true- Die 50/72-Regel für Commit-Nachrichten immer erzwingen (Betreff ≤50 Zeichen, Body-Zeilen ≤72 Zeichen)GAC_SIGNOFF=true- Immer Signed-off-by Zeile zu Commits hinzufügen (für DCO-Konformität)GAC_TEMPERATURE=0.7- KI-Kreativität steuern (0.0-1.0, niedriger = fokussierter)GAC_REASONING_EFFORT=medium- Steuert die Argumentations-/Denktiefe für Modelle, die erweitertes Denken unterstützen (low, medium, high, max). Nicht setzen, um den Standard des jeweiligen Modells zu verwenden. Wird nur an kompatible Anbieter gesendet (OpenAI-Stil; nicht Anthropic).GAC_MAX_OUTPUT_TOKENS=4096- Maximale Tokens für generierte Nachrichten (automatisch 2-5x skaliert bei Verwendung von--groupbasierend auf Dateianzahl; überschreiben, um höher oder niedriger zu gehen)GAC_WARNING_LIMIT_TOKENS=4096- Warnen, wenn Prompts diese Token-Anzahl überschreitenGAC_SYSTEM_PROMPT_PATH=/path/to/custom_prompt.txt- Einen benutzerdefinierten System-Prompt für die Commit-Nachrichtengenerierung verwendenGAC_LANGUAGE=Spanish- Commit-Nachrichten in einer bestimmten Sprache generieren (z.B. Spanish, French, Japanese, German). Unterstützt vollständige Namen oder ISO-Codes (es, fr, ja, de, zh-CN). Verwenden Sieuvx gac languagefür interaktive AuswahlGAC_TRANSLATE_PREFIXES=true- Konventionelle Commit-Präfixe (feat, fix, etc.) in die Zielsprache übersetzen (Standard: false, behält Präfixe in Englisch)GAC_SKIP_SECRET_SCAN=true- Automatisches Sicherheits-Scanning für Geheimnisse in gestageten Änderungen deaktivieren (mit Vorsicht verwenden)GAC_NO_VERIFY_SSL=true- SSL-Zertifikatüberprüfung für API-Aufrufe überspringen (nützlich für Unternehmensproxys, die SSL-Verkehr abfangen)GAC_DISABLE_STATS=true- Erfassung von Nutzungsstatistiken deaktivieren (keine Lese- oder Schreibzugriffe auf die Statistikdatei; bestehende Daten bleiben erhalten). Nur truthy-Werte deaktivieren Statistiken; die Einstellung auffalse/0/no/offhält Statistiken aktiviert, genauso wie das Weglassen der Variable
Siehe .gac.env.example für eine vollständige Konfigurationsvorlage.
Für detaillierte Anleitung zum Erstellen benutzerdefinierter System-Prompts siehe docs/CUSTOM_SYSTEM_PROMPTS.md.
Konfigurations-Unterbefehle
Die folgenden Unterbefehle sind verfügbar:
uvx gac init— Interaktiver Einrichtungs-Assistent für Anbieter, Modell und Sprachkonfigurationuvx gac model— Anbieter/Modell/API-Schlüssel-Einrichtung ohne Sprachaufforderungen (ideal für schnelle Wechsel)uvx gac auth— Zeige OAuth-Authentifizierungsstatus für alle Anbieter anuvx gac auth claude-code login— Anmelden zu Claude Code mit OAuth (öffnet Browser)uvx gac auth claude-code logout— Abmelden von Claude Code und gespeichertes Token entfernenuvx gac auth claude-code status— Claude Code-Authentifizierungsstatus prüfenuvx gac auth chatgpt login— Anmelden zu ChatGPT mit OAuth (öffnet Browser)uvx gac auth chatgpt logout— Abmelden von ChatGPT und gespeichertes Token entfernenuvx gac auth chatgpt status— ChatGPT-Authentifizierungsstatus prüfenuvx gac auth copilot login— Login zu GitHub Copilot mit Device Flowuvx gac auth copilot login --host ghe.mycompany.com— Login zu Copilot auf einer GitHub Enterprise-Instanzuvx gac auth copilot logout— Von Copilot abmelden und gespeicherte Tokens entfernenuvx gac auth copilot status— Copilot-Authentifizierungsstatus prüfenuvx gac config show— Aktuelle Konfiguration anzeigenuvx gac config set KEY VALUE— Konfigurationsschlüssel in$HOME/.gac.envsetzenuvx gac config get KEY— Konfigurationswert abrufenuvx gac config unset KEY— Konfigurationsschlüssel aus$HOME/.gac.enventfernenuvx gac language(oderuvx gac lang) — Interaktiver Sprachselektor für Commit-Nachrichten (setzt GAC_LANGUAGE)uvx gac editor(oderuvx gac edit) — Interaktiver Editor-Selektor für diee-Taste am Bestätigungsprompt (setzt GAC_EDITOR)uvx gac diff— Gefiltertes git diff mit Optionen für gestufte/ungestufte Änderungen, Farbe und Kürzung anzeigenuvx gac serve— GAC als MCP-Server für KI-Agenten-Integration starten (stdio-Transport)uvx gac stats show— Ihre gac-Nutzungsstatistiken anzeigen (Summen, Streaks, tägliche & wöchentliche Aktivität, Token-Nutzung, Top-Projekte mit Ø Dateien pro Gac, Top-Modelle mit Geschwindigkeit und Latenz)uvx gac stats models— Detaillierte Statistiken für alle Modelle mit Token-Aufschlüsselung, Geschwindigkeit, Latenz und Latenz-pro-Commit-Vergleichsdiagrammenuvx gac stats projects— Statistiken für alle Projekte mit Token-Aufschlüsselung und Ø Dateien pro Gacuvx gac stats recent— Letzte 10 Gacs mit Tokens, Geschwindigkeit, Latenz und Dateien pro Gac (-n 20für mehr)uvx gac stats reset— Alle Statistiken auf Null zurücksetzen (mit Bestätigungsaufforderung)uvx gac stats reset model <model-id>— Statistiken für ein bestimmtes Modell zurücksetzen (Groß-/Kleinschreibung wird nicht berücksichtigt)
Interaktiver Modus
Das --interactive (-i) Flag verbessert die Commit-Nachrichtengenerierung von gac, indem es gezielte Fragen zu Ihren Änderungen stellt. Dieser zusätzliche Kontext hilft der KI, genauere, detailliertere und kontextbezogene Commit-Nachrichten zu erstellen.
Wie es funktioniert
Wenn Sie --interactive verwenden, stellt gac Fragen wie:
- Was ist das Hauptziel dieser Änderungen? - Hilft, das übergeordnete Ziel zu verstehen
- Welches Problem lösen Sie? - Liefert Kontext über die Motivation
- Gibt es Implementierungsdetails, die erwähnt werden sollten? - Erfasst technische Spezifikationen
- Gibt es Breaking Changes? - Identifiziert potenzielle Auswirkungsprobleme
- Ist dies mit einem Issue oder Ticket verbunden? - Verbindet mit dem Projektmanagement
Wann man den interaktiven Modus verwenden sollte
Der interaktive Modus ist besonders nützlich für:
- Komplexe Änderungen, bei denen der Kontext nicht allein aus dem diff ersichtlich ist
- Refactoring-Arbeiten, die sich über mehrere Dateien und Konzepte erstrecken
- Neue Funktionen, die eine Erklärung des übergeordneten Zwecks erfordern
- Bug-Fixes, bei denen die Ursache nicht sofort sichtbar ist
- Performance-Optimierungen, bei denen die Logik nicht offensichtlich ist
- Code Review-Vorbereitung - Fragen helfen Ihnen, über Ihre Änderungen nachzudenken
Nutzungsbeispiele
Grundlegender interaktiver Modus:
uvx gac -i
Dies wird:
- Eine Zusammenfassung der gestageten Änderungen anzeigen
- Fragen zu den Änderungen stellen
- Eine Commit-Nachricht mit Ihren Antworten generieren
- Um Bestätigung bitten (oder automatisch bestätigen, wenn mit
-ykombiniert)
Interaktiver Modus mit gestageten Änderungen:
uvx gac -ai
# Alle Änderungen stagen, dann Fragen für besseren Kontext stellen
Interaktiver Modus mit spezifischen Hinweisen:
uvx gac -i -h "Datenbankmigration für Benutzerprofile"
# Fragen stellen, während ein spezifischer Hinweis zur Fokussierung der KI bereitgestellt wird
Interaktiver Modus mit detaillierter Ausgabe:
uvx gac -i -v
# Fragen stellen und eine detaillierte, strukturierte Commit-Nachricht generieren
Automatisch bestätigter interaktiver Modus:
uvx gac -i -y
# Fragen stellen, aber den resultierenden Commit automatisch bestätigen
Frage-Antwort-Workflow
Der interaktive Workflow folgt diesem Muster:
- Änderungsüberprüfung - gac zeigt eine Zusammenfassung dessen, was Sie committen
- Auf Fragen antworten - Beantworten Sie jede Aufforderung mit relevanten Details
- Kontextverbesserung - Ihre Antworten werden zum KI-Prompt hinzugefügt
- Nachrichtengenerierung - Die KI erstellt eine Commit-Nachricht mit vollem Kontext
- Bestätigung - Überprüfen und bestätigen Sie den Commit (oder automatisch mit
-y)
Tipps für nützliche Antworten:
- Kurz aber vollständig - Wichtige Details liefern, ohne übermäßig ausführlich zu sein
- Auf "warum" konzentrieren - Die Begründung hinter Ihren Änderungen erklären
- Einschränkungen erwähnen - Einschränkungen oder besondere Überlegungen notieren
- Mit externem Kontext verlinken - Auf Issues, Dokumentation oder Designdokumente verweisen
- Leere Antworten sind in Ordnung - Wenn eine Frage nicht zutrifft, einfach Enter drücken
Kombination mit anderen Flags
Der interaktive Modus funktioniert gut mit den meisten anderen Flags:
# Alle Änderungen stagen und Fragen stellen
uvx gac -ai
# Fragen mit detaillierter Ausgabe stellen
uvx gac -i -v
Bewährte Praktiken
- Für komplexe PRs verwenden - Besonders nützlich für Pull Requests, die detaillierte Erklärungen benötigen
- Team-Zusammenarbeit - Fragen helfen Ihnen, über Änderungen nachzudenken, die andere überprüfen werden
- Dokumentationsvorbereitung - Ihre Antworten können die Grundlage für Release Notes bilden
- Lernwerkzeug - Fragen stärken gute Praktiken für Commit-Nachrichten
- Bei einfachen Änderungen überspringen - Für trivial Fixes kann der grundlegende Modus schneller sein
Nutzungsstatistiken
uvx gac erfasst leichtgewichtige Nutzungsstatistiken, damit Sie Ihre Commit-Aktivität, Streaks, Token-Nutzung und aktivsten Projekte und Modelle sehen können. Statistiken werden lokal in ~/.gac_stats.json gespeichert und niemals versendet — es gibt keine Telemetrie.
Was erfasst wird: Gesamtzahl der gac-Ausführungen, Gesamtzahl der Commits, Gesamtzahl der Prompt-, Output- und Reasoning-Tokens, erste/letzte Verwendungsdaten, tägliche und wöchentliche Zähler (gacs, Commits, Tokens), aktuelle und längste Streak, Aktivitätszähler pro Projekt (gacs, Commits, Tokens) sowie Aktivitätszähler pro Modell (gacs, Tokens).
Was NICHT erfasst wird: Commit-Nachrichten, Code-Inhalte, Dateipfade, persönliche Informationen oder sonst etwas über Zähler, Daten, Projektnamen (abgeleitet vom Git-Remote/Verzeichnisnamen) und Modellnamen hinaus.
Opt-in oder Opt-out
uvx gac init fragt, ob Sie Statistiken aktivieren möchten, und erklärt genau, was gespeichert wird. Sie können Ihre Meinung jederzeit ändern:
- Statistiken aktivieren:
GAC_DISABLE_STATSentfernen oder auffalse/0/no/off/leer setzen. - Statistiken deaktivieren:
GAC_DISABLE_STATSauf einen truthy-Wert setzen (true,1,yes,on).
Wenn Sie Statistiken während uvx gac init ablehnen und eine vorhandene ~/.gac_stats.json erkannt wird, wird Ihnen die Möglichkeit angeboten, diese zu löschen.
Statistik-Unterbefehle
| Befehl | Beschreibung |
|---|---|
uvx gac stats | Ihre Statistiken anzeigen (gleich wie uvx gac stats show) |
uvx gac stats show | Vollständige Statistiken anzeigen: Summen, Streaks, tägliche & wöchentliche Aktivität, Token-Nutzung, Top-Projekte, Top-Modelle |
uvx gac stats models | Detaillierte Statistiken für alle verwendeten Modelle mit Token-Aufschlüsselung, Geschwindigkeit, Latenz und Latenz-pro-Commit-Diagrammen |
uvx gac stats projects | Statistiken für alle Projekte mit Token-Aufschlüsselung und Ø Dateien pro Gac |
uvx gac stats recent | Letzte 10 Gacs (-n 20 für mehr), mit Tokens, Geschwindigkeit, Latenz und Dateien pro Gac |
uvx gac stats reset | Alle Statistiken auf Null zurücksetzen (mit Bestätigungsaufforderung) |
uvx gac stats reset model <model-id> | Statistiken für ein bestimmtes Modell zurücksetzen (Groß-/Kleinschreibung wird nicht berücksichtigt) |
Beispiele
# Ihre Gesamtstatistiken anzeigen
uvx gac stats
# Detaillierte Aufschlüsselung aller verwendeten Modelle
uvx gac stats models
# Statistiken für alle Projekte
uvx gac stats projects
# Letzte Gac-Verlauf
uvx gac stats recent -n 20
# Alle Statistiken zurücksetzen (mit Bestätigungsaufforderung)
uvx gac stats reset
# Statistiken für ein bestimmtes Modell zurücksetzen
uvx gac stats reset model wafer:deepseek-v4-pro
Was Sie sehen werden
Die Ausführung von uvx gac stats zeigt:
- Gesamtanzahl gacs und Commits — wie oft Sie gac verwendet haben und wie viele Commits es erstellt hat
- Aktuelle und längste Streak — aufeinanderfolgende Tage mit gac-Aktivität (🔥 ab 5+ Tagen)
- Aktivitätszusammenfassung — heutige und diese Woche gacs, Commits und Tokens im Vergleich zu Ihrem Spitzentag und Ihrer Spitzenwoche
- Top-Projekte — Ihre 5 aktivsten Repos nach gac- + Commit-Anzahl, mit Ø Dateien pro Gac und Token-Nutzung
- Top-Modelle — Ihre 5 am häufigsten verwendeten Modelle mit Gesamtgeschwindigkeit, Latenz und Token-Nutzung
Die Ausführung von uvx gac stats projects zeigt alle Projekte (nicht nur die Top 5) mit:
- Alle Projekte-Tabelle — jedes Projekt sortiert nach Aktivität, mit Gac-Anzahl, Commit-Anzahl, Commits-pro-Gac-Verhältnis, Ø Dateien pro Gac, Prompt-Token, Output-Token, Reasoning-Token, Gesamt-Token und Anteil an Gesamt-Gacs
- Aktivitätsbalkendiagramm — horizontale Balken mit relativer Gac-Anzahl pro Projekt
- Token-Nutzungsbalkendiagramm — horizontale Balken mit relativem Token-Verbrauch pro Projekt
Die Ausführung von uvx gac stats models zeigt alle Modelle (nicht nur die Top 5) mit:
- Alle Modelle-Tabelle — jedes verwendete Modell sortiert nach Aktivität, mit Gac-Anzahl, Commit-Anzahl, Gesamtgeschwindigkeit (Tokens/Sek), Gesamtlatenz, Prompt-Token, Output-Token, Reasoning-Token und Gesamt-Token
- Geschwindigkeitsvergleich (30d)-Diagramm — ein horizontales Balkendiagramm der letzten (30 Tage) Modellgeschwindigkeiten, sortiert von schnellstem zu langsamstem, farbcodiert nach Geschwindigkeitsperzentil (🟡 blitzschnell, 🟢 schnell, 🔵 moderat, 🔘 langsam)
- Latenzvergleich (30d)-Diagramm — ein horizontales Balkendiagramm der letzten Latenz pro Aufruf, sortiert von kürzester zu längster
- Latenz-pro-Commit (30d)-Diagramm — ein horizontales Balkendiagramm der letzten Latenz geteilt durch Commit-Anzahl, zeigt die echte Wartezeit pro Commit (ein Modell, das 5 Commits in einem 10s-Gac macht, kostet 2s/Commit vs. eines, das 1 Commit in einem 25s-Gac bei 25s/Commit macht)
- Highscore-Feiern — 🏆 Trophäen, wenn Sie neue tägliche, wöchentliche, Token- oder Streak-Rekorde aufstellen; 🥈 wenn Sie diese einstellen
- Ermutigungsnachrichten — kontextbezogene Ermutigungen basierend auf Ihrer Aktivität
Die Ausführung von uvx gac stats recent zeigt Ihre letzten 10 Gacs (konfigurierbar mit -n):
- Letzte Gacs-Tabelle — jeder Gac mit relativer Zeit, Projekt, Modell, Commit-Anzahl, Dateien, Geschwindigkeit, Latenz und Token-Aufschlüsselung pro Gac
Statistiken deaktivieren
Setzen Sie die Umgebungsvariable GAC_DISABLE_STATS auf einen truthy-Wert:
# Statistikerfassung deaktivieren
export GAC_DISABLE_STATS=true
# Oder in .gac.env
GAC_DISABLE_STATS=true
Falsy-Werte (false, 0, no, off, leer) halten Statistiken aktiviert — genauso wie das Weglassen der Variable.
Wenn deaktiviert, überspringt gac die gesamte Statistikerfassung — es finden keine Lese- oder Schreibzugriffe auf Dateien statt. Bestehende Daten bleiben erhalten, werden jedoch erst aktualisiert, wenn Sie sie wieder aktivieren.
Discord-Webhook-Benachrichtigungen
gac kann einen Discord-Kanal jedes Mal anpingen, wenn du einen Commit landest, unter Verwendung einer Webhook-URL aus den Integrationseinstellungen deines Kanals. Die Integration ist opt-in: Sie tut nichts, bis du explizit eine Webhook-URL konfigurierst.
Einrichtung
Verwende die dedizierte discord-Subcommand-Gruppe:
uvx gac discord setup # interaktive Konfiguration einer Webhook-URL
uvx gac discord show # zeigt an, ob ein Webhook konfiguriert ist (URL maskiert)
uvx gac discord test # sendet eine Testbenachrichtigung an den konfigurierten Webhook
uvx gac discord remove # entfernt die konfigurierte Webhook-URL
Alternativ kannst du die Variable direkt in $HOME/.gac.env (oder ./.gac.env) setzen:
GAC_DISCORD_WEBHOOK_URL='https://discord.com/api/webhooks/XXXX/YYYY'
Verhalten
- Feuert nach jedem erfolgreichen Commit (einzelne und gruppierte Workflows). Wird bei
--dry-runund--message-onlyübersprungen. - Postet ein Embed im GitHub-Stil mit einem grünen Streifen, Repo + Branch als Autorenzeile, der Commit-Betreff als Titel, der Commit-Body als Beschreibung und der kurze SHA im Footer.
- Verwendet den gac-Avatar und den Benutzernamen
gac. - Webhook-Fehler werden auf WARNING geloggt und blockieren niemals deinen Commit.
- Lass
GAC_DISCORD_WEBHOOK_URLungesetzt (oder leer) um zu deaktivieren.gac initist davon nicht betroffen — Discord-Einrichtung lebt nur untergac discord.
Hilfe erhalten
- Für MCP-Server-Setup (KI-Agenten-Integration) siehe docs/MCP.md
- Für benutzerdefinierte System-Prompts siehe docs/CUSTOM_SYSTEM_PROMPTS.md
- Für Claude Code OAuth-Einrichtung siehe CLAUDE_CODE.md
- Für ChatGPT OAuth-Einrichtung siehe CHATGPT_OAUTH.md
- Für GitHub Copilot-Einrichtung siehe GITHUB_COPILOT.md
- Zur Fehlerbehebung und erweiterten Tipps siehe docs/TROUBLESHOOTING.md
- Für Installation und Konfiguration siehe README.md#installation-and-configuration
- Zum Mitwirken siehe docs/CONTRIBUTING.md
- Lizenzinformationen: LICENSE