gac kommandolinje bruk

June 22, 2026 · View on GitHub

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano

Dette dokumentet beskriver alle tilgjengelige flagg og alternativer for uvx gac CLI-verktøyet.

Innholdsfortegnelse

Grunnleggende Bruk

uvx gac init
# Følg deretter instruksjonene for å konfigurere din provider, modell og API-nøkler interaktivt
uvx gac

Genererer en LLM-drevet commit-melding for staged endringer og ber om bekreftelse. Bekreftelsesprompten aksepterer:

  • y eller yes - Fortsett med commit
  • n eller no - Avbryt commit
  • r eller reroll - Regenerer commit-meldingen med samme kontekst
  • e eller edit - Rediger commit-meldingen. Som standard åpnes en innebygd TUI med vi/emacs-tastebindinger. Sett GAC_EDITOR for å åpne din foretrukne editor i stedet (f.eks. GAC_EDITOR=code gac for VS Code, GAC_EDITOR=vim gac for vim)
  • Alt annen tekst - Regenerer med den teksten som feedback (f.eks. gjør det kortere, fokuser på ytelse)
  • Tom input (bare Enter) - Vis prompten igjen

Kjerne-workflow-flagg

Flagg / AlternativKortBeskrivelse
--add-all-aStage alle endringer før committing
--stage-SInteraktivt velg filer for staging med trebasert TUI
--group-gGrupperte staged endringer i flere logiske commits
--push-pPush endringer til remote etter committing
--yes-yBekreft commit automatisk uten prompting
--dry-runVis hva som ville skjedd uten å gjøre endringer
--message-onlyOutput kun den genererte commit-meldingen uten committing
--no-verifyHopp over pre-commit og lefthook hooks ved committing
--skip-secret-scanHopp over sikkerhetsskanning for hemmeligheter i staged endringer
--no-verify-sslHopp over SSL-sertifikatverifisering (nyttig for bedriftsproxyer)
--signoffLegg til Signed-off-by-linje i commit-meldingen (DCO-samsvar)
--interactive-iStill spørsmål om endringer for bedre commits

Merknad: --stage og --add-all er gjensidig eksklusive. Bruk --stage for å interaktivt velge hvilke filer du vil stage, og --add-all for å stage alle endringer på én gang.

Merknad: Kombiner -a og -g (dvs. -ag) for å stage ALLE endringer først, deretter gruppere dem i commits.

Merknad: Når du bruker --group, blir maks output tokens grense automatisk skalert basert på antall filer som committes (2x for 1-9 filer, 3x for 10-19 filer, 4x for 20-29 filer, 5x for 30+ filer). Dette sikrer at LLM har nok tokens til å generere alle grupperte commits uten trunkering, selv for store endringssett.

Merknad: --message-only og --group er gjensidig eksklusive. Bruk --message-only når du vil få commit-meldingen for ekstern behandling, og --group når du vil organisere flere commits i den nåværende git-workflowen.

Note: --interactive flag gir LLM ekstra kontekst ved å stille spørsmål om endringene dine, noe som fører til mer nøyaktige og detaljerte commit-meldinger. Dette er spesielt nyttig for komplekse endringer eller når du vil sørge for at commit-meldingen fanger hele konteksten av arbeidet ditt.

Meldingstilpasning

Flagg / AlternativKortBeskrivelse
--one-liner-oGenerer en enkeltlinjes commit-melding
--verbose-vGenerer detaljerte commit-meldinger med motivasjon, arkitektur & påvirkning
--hint <tekst>-hLegg til et hint for å guide LLM-en
--model <modell>-mSpesifiser modellen som skal brukes for denne commit
--language <språk>-lOverstyr språket (navn eller kode: 'Norsk', 'nb', 'sv', 'da')
--scope-sUtled et passende scope for commiten
--50-72Anvende 50/72-regelen for commit-meldingformatering

Merknad: --50-72 flagget anvender 50/72-regelen hvor:

  • Emnelinje: maksimum 50 tegn
  • Brødtekstlinjer: maksimum 72 tegn per linje
  • Dette holder commit-meldinger lesbare i git log --oneline og GitHub's UI

Du kan også sette GAC_USE_50_72_RULE=true i .gac.env filen din for å alltid anvende denne regelen.

Merknad: Du kan gi feedback interaktivt ved å skrive det direkte i bekreftelsesprompten - ingen 'r'-prefiks nødvendig. Skriv r for en enkel reroll, e for å redigere meldingen (innebygd TUI som standard, eller din $GAC_EDITOR hvis satt), eller skriv feedbacken din direkte som gjør det kortere.

Output og detaljnivå

Flagg / AlternativKortBeskrivelse
--quiet-qUndertrykk all output unntatt feil
--log-level <level>Sett loggnivå (debug, info, warning, error)
--show-promptSkriv ut LLM-prompten brukt for commit-meldingsgenerering

Hjelp og versjon

Flagg / AlternativKortBeskrivelse
--versionVis gac-versjon og avslutt
--helpVis hjelpemelding og avslutt

Eksempel-workflows

  • Stage alle endringer og commit:

    uvx gac -a
    
  • Commit og push i ett steg:

    uvx gac -ap
    
  • Generer en enkeltlinjes commit-melding:

    uvx gac -o
    
  • Generer en detaljert commit-melding med strukturerte seksjoner:

    uvx gac -v
    
  • Legg til et hint for LLM-en:

    uvx gac -h "Refaktorer autentiseringslogikk"
    
  • Utled scope for commitet:

    uvx gac -s
    
  • Grupperte staged endringer i logiske commits:

    uvx gac -g
    # Grupperer kun filene du allerede har staged
    
  • Grupper alle endringer (staged + unstaged) og auto-bekreft:

    uvx gac -agy
    # Stager alt, grupperer det og bekrefter automatisk
    
  • Bruk en spesifikk modell kun for denne commit:

    uvx gac -m anthropic:claude-haiku-4-5
    
  • Generer commit-melding på et spesifikt språk:

    # Bruker språkkoder (kortere)
    uvx gac -l zh-CN
    uvx gac -l ja
    uvx gac -l es
    
    # Bruker fulle navn
    uvx gac -l "Forenklet Kinesisk"
    uvx gac -l Japansk
    uvx gac -l Spansk
    
  • Tørrkjøring (se hva som ville skjedd):

    uvx gac --dry-run
    
  • Få kun commit-meldingen (for skript-integrasjon):

    uvx gac --message-only
    # Output: feat: legg til brukerautentiseringssystem
    
  • Få commit-melding i enkeltlinjeformat:

    uvx gac --message-only --one-liner
    # Output: feat: legg til brukerautentiseringssystem
    
  • Bruk interaktiv modus for å gi kontekst:

    uvx gac -i
    # Hva er hovedformålet med disse endringene?
    # Hvilket problem løser du?
    # Er det implementeringsdetaljer verdt å nevne?
    
  • Interaktiv modus med detaljert output:

    uvx gac -i -v
    # Still spørsmål og generer detaljert commit-melding
    

Avansert

  • Kombiner flagg for mer kraftfulle workflows (f.eks. uvx gac -ayp for å stage, auto-bekrefte og pushe)
  • Bruk --show-prompt for å debugge eller gjennomgå prompten sendt til LLM-en
  • Juster detaljnivå med --log-level eller --quiet

Hoppe over Pre-commit og Lefthook Hooks

--no-verify-flagget lar deg hoppe over alle pre-commit eller lefthook hooks konfigurert i prosjektet ditt:

uvx gac --no-verify  # Hopp over alle pre-commit og lefthook hooks

Bruk --no-verify når:

  • Pre-commit eller lefthook hooks feiler midlertidig
  • Du jobber med tidkrevende hooks
  • Du committer arbeid-på-gang-kode som ikke består alle sjekker ennå

Merknad: Bruk med forsiktighet da disse hooks vedlikeholder kodekvalitetsstandarder.

Sikkerhetsskanning

uvx gac inkluderer innebygd sikkerhetsskanning som automatisk oppdager potensielle hemmeligheter og API-nøkler i dine staged endringer før noen AI API-kall blir gjort. Hvis en hemmelighet oppdages, avbrytes arbeidsflyten umiddelbart — ingen API-kall blir utført. Dette sikrer at dine sensitive data aldri sendes til noen AI-modell. Skanneren bruker regex-basert mønstergjenkjenning, ikke LLM-er, så skanning er rask og kjøres helt lokalt.

Hoppe over sikkerhetsskanninger:

uvx gac --skip-secret-scan  # Hopp over sikkerhetsskanning for denne commit

For å deaktivere permanent: Sett GAC_SKIP_SECRET_SCAN=true i din .gac.env-fil.

Når du skal hoppe over:

  • Committe av eksempelkode med plassholdernøkler
  • Arbeide med test fixtures som inneholder dummy-credentials
  • Når du har verifisert at endringene er trygge

Merknad: Skanneren bruker regex-basert mønstergjenkjenning (ikke LLM-er) for å oppdage vanlige hemmelighetsformater. Den kjøres før ethvert AI API-kall — hvis en hemmelighet blir funnet, utføres ingen API-kall. Gjennomgå alltid dine staged endringer før commit.

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:

  1. 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__/
    
  2. Use Git LFS for large binary files that must be tracked:

    git lfs track "*.psd"
    git lfs track "*.zip"
    
  3. 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-sertifikatverifisering

--no-verify-ssl-flagget lar deg hoppe over SSL-sertifikatverifisering for API-kall:

uvx gac --no-verify-ssl  # Hopp over SSL-verifisering for denne commit

For å sette permanent: Sett GAC_NO_VERIFY_SSL=true i din .gac.env-fil.

Bruk --no-verify-ssl når:

  • Bedriftsproxyer avlytter SSL-trafikk (MITM-proxyer)
  • Utviklingsmiljøer bruker selv-signerte sertifikater
  • Du møter SSL-sertifikatfeil på grunn av nettverkssikkerhetsinnstillinger

Merknad: Bruk kun dette alternativet i pålitelige nettverksmiljøer. Deaktivering av SSL-verifisering reduserer sikkerheten og kan gjøre API-forespørslene dine sårbare for man-in-the-middle-angrep.

Signed-off-by-linje (DCO-samsvar)

uvx gac støtter å legge til en Signed-off-by-linje i commit-meldinger, som er påkrevd for Developer Certificate of Origin (DCO)-samsvar i mange open source-prosjekter.

Legg til signoff :

uvx gac --signoff  # Legg til Signed-off-by-linje i commit-meldingen (DCO-samsvar)

For å aktivere permanent : Sett GAC_SIGNOFF=true i .gac.env-filen din, eller legg til signoff=true i konfigurasjonen din.

Hva den gjør :

  • Legger til Signed-off-by: Ditt Navn <din.email@example.com> i commit-meldingen
  • Bruker git-konfigurasjonen din (user.name og user.email) til linjen
  • Påkrevd for prosjekter som Cherry Studio, Linux-kjernen og andre som bruker DCO

Git-identitetsoppsett :

Sørg for at git-konfigurasjonen din har riktig navn og e-post :

git config --global user.name "Your Full Name"
git config --global user.email "your.email@example.com"

Merknad : Signed-off-by-linjen legges til av git under commit, ikke av AI under meldingsgenerering. Du vil ikke se den i forhåndsvisningen, men den vil være i den endelige commiten (sjekk med git log -1).

Konfigurasjonsnotater

  • Den anbefalte måten å sette opp gac er å kjøre uvx gac init og følge de interaktive promptene.
  • Allerede konfigurert språk og trenger bare å bytte provider eller modeller? Kjør uvx gac model for å gjenta oppsettet uten språkspørsmål.
  • Bruker Claude Code? Se Claude Code oppsettguide for OAuth-autentiseringsinstruksjoner.
  • Bruker ChatGPT OAuth? Se ChatGPT OAuth oppsettguide for nettleserbaserte autentiseringsinstruksjoner.
  • Bruker du GitHub Copilot? Se GitHub Copilot-oppsettsguiden for instruksjoner om Device Flow-autentisering.
  • gac laster konfigurasjon i følgende prioriteringsrekkefølge:
    1. CLI-flagg
    2. Prosjektnivå .gac.env
    3. Brukernivå ~/.gac.env
    4. Miljøvariabler

Avanserte Konfigurasjonsalternativer

Du kan tilpasse gac sitt oppførsel med disse valgfrie miljøvariablene:

  • GAC_EDITOR=code --wait - Overstyr editoren som brukes når du trykker e i bekreftelsesprompten. Som standard åpner e en innebygd TUI; ved å sette GAC_EDITOR bytter du til en ekstern editor. Støtter enhver editorkommando med argumenter. Venteflagg (--wait/-w) settes automatisk inn for kjente GUI-editorer (VS Code, Cursor, Zed, Sublime Text) slik at prosessen blokkeres til du lukker filen
  • GAC_ALWAYS_INCLUDE_SCOPE=true - Utled automatisk og inkluder scope i commit-meldinger (f.eks. feat(auth): vs `feat:)
  • GAC_ALWAYS_GROUPED=true - Bruk alltid gruppert commit-modus (ekvivalent med å alltid sende flagget -g eller --group)
  • GAC_VERBOSE=true - Generer detaljerte commit-meldinger med motivasjon, arkitektur og påvirkningseksjoner
  • GAC_USE_50_72_RULE=true - Alltid anvende 50/72-regelen for commit-meldinger (emne ≤50 tegn, brødtekstlinjer ≤72 tegn)
  • GAC_SIGNOFF=true - Alltid legg til Signed-off-by-linje i commits (for DCO-samsvar)
  • GAC_TEMPERATURE=0.7 - Kontroller LLM-kreativitet (0.0-1.0, lavere = mer fokusert)
  • GAC_REASONING_EFFORT=medium - Kontroller resonnerings-/tankedybde for modeller som støtter utvidet tenkning (low, medium, high, max). La være uinnstilt for å bruke hver modells standard. Sendes kun til kompatible leverandører (OpenAI-stil; ikke Anthropic).
  • GAC_MAX_OUTPUT_TOKENS=4096 - Maksimum tokens for genererte meldinger (automatisk skalert 2-5x når du bruker --group basert på filantall; overstyr for å gå høyere eller lavere)
  • GAC_WARNING_LIMIT_TOKENS=4096 - Varsel når prompter overstiger dette tokenantallet
  • GAC_SYSTEM_PROMPT_PATH=/path/to/custom_prompt.txt - Bruk et egendefinert systemprompt for commit-meldingsgenerering
  • GAC_LANGUAGE=Norwegian - Generer commit-meldinger på et spesifikt språk (f.eks. Norwegian, French, Japanese, German). Støtter fulle navn eller ISO-koder (nb, fr, ja, de, zh-CN). Bruk uvx gac language for interaktivt valg
  • GAC_TRANSLATE_PREFIXES=true - Oversett konvensjonelle commit-prefikser (feat, fix, etc.) til målspråket (default: false, beholder prefikser på engelsk)
  • GAC_SKIP_SECRET_SCAN=true - Deaktiver automatisk sikkerhetsskanning for hemmeligheter i staged endringer (bruk med forsiktighet)
  • GAC_NO_VERIFY_SSL=true - Hopp over SSL-sertifikatverifisering for API-kall (nyttig for bedriftsproxyer som avlytter SSL-trafikk)
  • GAC_DISABLE_STATS=true - Deaktiver sporing av bruksstatistikk (ingen lesing eller skriving av statistikkfil; eksisterende data bevares). Bare truthy-verdier deaktiverer statistikk; å sette den til false/0/no/off holder statistikk aktivert, det samme som å la variabelen være udefinert

Se .gac.env.example for en komplett konfigurasjonsmal.

For detaljert veiledning for å lage egendefinerte systemprompts, se docs/CUSTOM_SYSTEM_PROMPTS.md.

Konfigurasjons-underkommandoer

Følgende underkommandoer er tilgjengelige:

  • uvx gac init — Interaktiv oppsettsguide for provider, modell og språkkonfigurasjon
  • uvx gac model — Provider/modell/API-nøkkel oppsett uten språkprompts (ideelt for raske bytter)
  • uvx gac auth — Vis OAuth-autentiseringsstatus for alle leverandører
  • uvx gac auth claude-code login — Logg inn på Claude Code med OAuth (åpner nettleser)
  • uvx gac auth claude-code logout — Logg ut av Claude Code og fjern lagret token
  • uvx gac auth claude-code status — Sjekk Claude Code-autentiseringsstatus
  • uvx gac auth chatgpt login — Logg inn på ChatGPT med OAuth (åpner nettleser)
  • uvx gac auth chatgpt logout — Logg ut av ChatGPT og fjern lagret token
  • uvx gac auth chatgpt status — Sjekk ChatGPT-autentiseringsstatus
  • uvx gac auth copilot login — Logg inn på GitHub Copilot med Device Flow
  • uvx gac auth copilot login --host ghe.mycompany.com — Logg inn på Copilot på en GitHub Enterprise-instans
  • uvx gac auth copilot logout — Logg ut av Copilot og fjern lagrede tokens
  • uvx gac auth copilot status — Sjekk Copilot-autentiseringsstatus
  • uvx gac config show — Vis nåværende konfigurasjon
  • uvx gac config set KEY VALUE — Sett en konfigurasjonsnøkkel i $HOME/.gac.env
  • uvx gac config get KEY — Hent en konfigurasjonsverdi
  • uvx gac config unset KEY — Fjern en konfigurasjonsnøkkel fra $HOME/.gac.env
  • uvx gac language (eller uvx gac lang) — Interaktivt språkvalg for commit-meldinger (setter GAC_LANGUAGE)
  • uvx gac editor (eller uvx gac edit) — Interaktiv editorvelger for e-knappen ved bekreftelsesprompten (setter GAC_EDITOR)
  • uvx gac diff — Vis filtrert git diff med alternativer for staged/unstaged endringer, farge og trunkering
  • uvx gac serve — Start GAC som MCP-server for AI-agent integrasjon (stdio transport)
  • uvx gac stats show — Vis din gac-bruksstatistikk (totaler, streaks, daglig & ukentlig aktivitet, tokenbruk, topprosjekter med snitt filer, toppmodeller med fart og latens)
  • uvx gac stats models — Detaljert statistikk for alle modeller med token-oppdeling, hastighet, latens og latens-per-commit-diagrammer
  • uvx gac stats projects — Statistikk for alle prosjekter med token-oppdeling og snitt filer per gac
  • uvx gac stats recent — Siste 10 gacs med tokens, hastighet, latens og filer per gac (-n 20 for flere)
  • uvx gac stats reset — Tilbakestill all statistikk til null (ber om bekreftelse)
  • uvx gac stats reset model <model-id> — Tilbakestill statistikk for en spesifikk modell (ufølsom for store/små bokstaver)

Interaktiv Modus

--interactive (-i) flagget forbedrer gac's commit-meldinggenerering ved å stille målrettede spørsmål om endringene dine. Denne ekstra konteksten hjelper LLM med å lage mer nøyaktige, detaljerte og kontekstilpassede commit-meldinger.

Hvordan det fungerer

Når du bruker --interactive, vil gac stille spørsmål som:

  • Hva er hovedformålet med disse endringene? - Hjelper med å forstå høynivåmålet
  • Hvilket problem løser du? - Gir kontekst om motivasjonen
  • Er det implementasjonsdetaljer å nevne? - Fanger tekniske spesifikasjoner
  • Er det breaking changes? - Identifiserer potensielle impact-problemer
  • Er dette relatert til en issue eller ticket? - Kobler til prosjektstyring

Når du skal bruke interaktiv modus

Interaktiv modus er spesielt nyttig for:

  • Komplekse endringer hvor konteksten ikke er klar fra diff-en alene
  • Refactoring-arbeid som spenner over flere filer og konsepter
  • Nye funksjoner som krever forklaring av overall formål
  • Bug fixes hvor rotårsaken ikke er umiddelbart synlig
  • Ytelsesoptimalisering hvor logikken ikke er åpenbar
  • Code review-forberedelse - spørsmål hjelper deg å tenke over endringene dine

Brukseksempler

Basis interaktiv modus:

uvx gac -i

Dette vil:

  1. Vise en oppsummering av staged endringer
  2. Stille spørsmål om endringene
  3. Generere en commit-melding med svarene dine
  4. Be om bekreftelse (eller automatisk bekrefte når kombinert med -y)

Interaktiv modus med staged endringer:

uvx gac -ai
# Stage alle endringer, still spørsmål for bedre kontekst

Interaktiv modus med spesifikke hints:

uvx gac -i -h "Databasemigrering for brukerprofiler"
# Still spørsmål mens du gir et spesifikt hint for å fokusere LLM

Interaktiv modus med detaljert output:

uvx gac -i -v
# Still spørsmål og generer en detaljert, strukturert commit-melding

Automatisk bekreftet interaktiv modus:

uvx gac -i -y
# Still spørsmål men bekrefter resulterende commit automatisk

Spørsmål-Svar Workflow

Den interaktive workflown følger dette mønsteret:

  1. Endringsgjennomgang - gac viser en oppsummering av hva du committer
  2. Svar på spørsmål - svar på hver prompt med relevante detaljer
  3. Kontekstforbedring - svarene dine legges til LLM-prompten
  4. Meldingsgenerering - LLM lager en commit-melding med full kontekst
  5. Bekreftelse - gjennomgå og bekreft commit (eller automatisk med -y)

Tips for nyttige svar:

  • Konsis men komplett - gi viktige detaljer uten å være overlydende verbose
  • Fokuser på "hvorfor" - forklar resonnementet bak endringene dine
  • Nevn begrensninger - noter begrensninger eller spesielle hensyn
  • Lenk til ekstern kontekst - referer til issues, dokumentasjon, eller designdokumenter
  • Tomme svar er ok - hvis et spørsmål ikke gjelder, bare trykk Enter

Kombinasjon med andre flagg

Interaktiv modus fungerer godt med de fleste andre flagg:

# Stage alle endringer og still spørsmål
uvx gac -ai

# Still spørsmål med detaljert output
uvx gac -i -v

Beste Praksis

  • Bruk for komplekse PR-er - spesielt nyttig for pull requests som trenger detaljerte forklaringer
  • Teamsamarbeid - spørsmål hjelper deg å tenke over endringer andre skal gjennomgå
  • Dokumentasjonsforberedelse - svarene dine kan hjelpe med å danne grunnlag for release notes
  • Læringsverktøy - spørsmål forsterker gode praksiser for commit-meldinger
  • Hopp over for enkle endringer - for trivielle fixes kan basismodus være raskere

Bruksstatistikk

uvx gac sporer lettvektig bruksstatistikk slik at du kan se din commit-aktivitet, streaks, tokenbruk og mest aktive prosjekter og modeller. Statistikk lagres lokalt i ~/.gac_stats.json og sendes aldri noe sted — det er ingen telemetri.

Hva spores: totalt antall gac-kjøringer, totalt antall committer, totale prompt-, output- og reasoning-tokens, første/siste bruk-datoer, daglige og ukentlige tellinger (gacs, committer, tokens), nåværende og lengste streak, aktivitet per prosjekt (gacs, committer, tokens) og aktivitet per modell (gacs, tokens).

Hva IKKE spores: commit-meldinger, kodeinnhold, filstier, personlig informasjon eller noe utover tellinger, datoer, prosjektnavn (avledet fra git remote eller mappenavn) og modellnavn.

Opt-in eller Opt-out

uvx gac init spør om du vil aktivere statistikk og forklarer nøyaktig hva som lagres. Du kan når som helst ombestemme deg:

  • Aktiver statistikk: fjern GAC_DISABLE_STATS eller sett den til false/0/no/off/tom.
  • Deaktiver statistikk: sett GAC_DISABLE_STATS til en truthy-verdi (true, 1, yes, on).

Når du avslår statistikk under uvx gac init og en eksisterende ~/.gac_stats.json oppdages, blir du tilbudt muligheten til å slette den.

Statistikk-underkommandoer

KommandoBeskrivelse
uvx gac statsVis din statistikk (samme som uvx gac stats show)
uvx gac stats showVis fullstendig statistikk: totaler, streaks, daglig & ukentlig aktivitet, tokenbruk, topprosjekter, toppmodeller
uvx gac stats modelsDetaljert statistikk for alle brukte modeller med token-oppdeling, hastighet, latens og latens-per-commit-diagrammer
uvx gac stats projectsStatistikk for alle prosjekter med token-oppdeling og snitt filer per gac
uvx gac stats recentSiste 10 gacs (-n 20 for flere), med tokens, hastighet, latens og filer per gac
uvx gac stats resetTilbakestill all statistikk til null (ber om bekreftelse)
uvx gac stats reset model <model-id>Tilbakestill statistikk for en spesifikk modell (ufølsom for store/små bokstaver)

Eksempler

# Vis din totale statistikk
uvx gac stats

# Detaljert nedbryting av alle brukte modeller
uvx gac stats models

# Statistikk for alle prosjekter
uvx gac stats projects

# Nylig gac-historikk
uvx gac stats recent -n 20

# Tilbakestill all statistikk (med bekreftelsesprompt)
uvx gac stats reset

# Tilbakestill statistikk for en spesifikk modell
uvx gac stats reset model wafer:deepseek-v4-pro

Hva du vil se

Å kjøre uvx gac stats viser:

  • Totalt antall gacs og committer — hvor mange ganger du har brukt gac og hvor mange committer det har opprettet
  • Nåværende og lengste streak — etterfølgende dager med gac-aktivitet (🔥 ved 5+ dager)
  • Aktivitetssammendrag — dagens og denne ukens gacs, committer og tokens sammenlignet med din toppedag og toppeuke
  • Topprosjekter — dine 5 mest aktive repos etter gac- + commit-antall, med snitt filer per gac og tokenbruk
  • Toppmodeller — dine 5 mest brukte modeller med total fart, latens og tokenbruk

Å kjøre uvx gac stats projects viser alle prosjekter (ikke bare de 5 øverste) med:

  • Alle prosjekter-tabell — hvert prosjekt sortert etter aktivitet, med gac-antall, commit-antall, commits-per-gac-ratio, snitt filer per gac, prompt-tokens, output-tokens, reasoning-tokens, totale tokens og andel av totale gacs
  • Aktivitetsstolpediagram — horisontale stolper som viser relativt gac-antall per prosjekt
  • Tokenbrukstolpediagram — horisontale stolper som viser relativt tokenforbruk per prosjekt

Å kjøre uvx gac stats models viser alle modeller (ikke bare de 5 øverste) med:

  • Alle modeller-tabell — hver brukt modell sortert etter aktivitet, med gac-antall, commit-antall, total fart (tokens/sek), total latens, prompt-tokens, output-tokens, reasoning-tokens og totale tokens
  • Fartssammenligning (30d)-diagram — et horisontalt stolpediagram av nylige (siste 30 dager) modelfarter, sortert fra raskest til tregest, fargekodet etter fartspersentil (🟡 lynrask, 🟢 rask, 🔵 moderat, 🔘 treg)
  • Latenssammenligning (30d)-diagram — et horisontalt stolpediagram av nylig latens per kall, sortert fra kortest til lengst
  • Latens-per-commit (30d)-diagram — et horisontalt stolpediagram av nylig latens delt på commit-antall, viser ekte ventetid per commit (en modell som gjør 5 committer i en 10s gac koster 2s/commit vs en som gjør 1 commit i en 25s gac til 25s/commit)
  • Highscore-feiringer — 🏆 trofeer når du setter nye daglige, ukentlige, token- eller streak-rekorder; 🥈 for å tangere dem
  • Oppmuntringsmeldinger — kontekstuelle oppmuntringer basert på din aktivitet

Å kjøre uvx gac stats recent viser dine siste 10 gacs (konfigurerbar med -n):

  • Nylige gacs-tabell — hver gac med relativ tid, prosjekt, modell, commit-antall, filer, fart, latens og token-nedbrytning per gac

Deaktivere statistikk

Sett miljøvariabelen GAC_DISABLE_STATS til en truthy-verdi:

# Deaktiver statistikksporing
export GAC_DISABLE_STATS=true

# Eller i .gac.env
GAC_DISABLE_STATS=true

Falsy-verdier (false, 0, no, off, tom) holder statistikk aktivert — det samme som å la variabelen være udefinert.

Når deaktivert, hopper gac over all statistikkregistrering — ingen fillesing eller skriving skjer. Eksisterende data bevares men oppdateres ikke før du reaktiverer dem.


Discord Webhook-varsler

gac kan pinge en Discord-kanal hver gang du gjør en commit, ved å bruke en webhook-URL fra kanalens integreringsinnstillinger. Integrasjonen er valgfri: den gjør ingenting før du eksplisitt konfigurerer en webhook-URL.

Oppsett

Bruk den dedikerte discord underkommandogruppen:

uvx gac discord setup     # konfigurer en webhook-URL interaktivt
uvx gac discord show      # vis om en webhook er konfigurert (URL maskert)
uvx gac discord test      # send en testvarsling til den konfigurerte webhooken
uvx gac discord remove    # fjern den konfigurerte webhook-URL-en

Alternativt kan du angi variabelen direkte i $HOME/.gac.env(eller./.gac.env):

GAC_DISCORD_WEBHOOK_URL='https://discord.com/api/webhooks/XXXX/YYYY'

Oppførsel

  • Avfyres etter hver vellykket commit (enkelte og grupperte arbeidsflyter). Hoppes over ved --dry-run og --message-only.
  • Poster en GitHub-stil embed med en grønn stripe, repo + gren som autorad, commit-emnet som tittel, commit-bodyen som beskrivelse og den korte SHA i footeren.
  • Bruker gac-avataren og brukernavnet gac.
  • Webhook-feil logges på WARNING-nivå og blokkerer aldri commitet ditt.
  • La GAC_DISCORD_WEBHOOK_URL være usatt (eller tom) for å deaktivere. gac init påvirkes ikke — Discord-oppsett lever kun under gac discord.

Få Hjelp