gac コマンドライン使用法

June 22, 2026 · View on GitHub

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

このドキュメントでは、uvx gac CLI ツールで利用可能なすべてのフラグとオプションについて説明します。

目次

基本使用法

uvx gac init
# 次にプロンプトに従ってプロバイダー、モデル、APIキーを対話的に設定
uvx gac

ステージされた変更に対して LLM を活用したコミットメッセージを生成し、確認を求めます。確認プロンプトでは以下が受け付けられます:

  • y または yes - コミットを続行
  • n または no - コミットをキャンセル
  • r または reroll - 同じコンテキストでコミットメッセージを再生成
  • e または edit - コミットメッセージを編集。デフォルトでは vi/emacs キーバインドのインプレース TUI を開きます。GAC_EDITOR を設定すると、お好みのエディタを開きます(例:VS Code の場合 GAC_EDITOR=code gac、vim の場合 GAC_EDITOR=vim gac
  • その他のテキスト - そのテキストをフィードバックとして再生成(例: もっと短くしてパフォーマンスに集中
  • 空入力(Enter のみ) - プロンプトを再表示

コアワークフローフラグ

フラグ / オプション短い形式説明
--add-all-aコミット前にすべての変更をステージ
--stage-SツリーベースのTUIでインタラクティブにステージするファイルを選択
--group-gステージされた変更を複数の論理的なコミットにグループ化
--push-pコミット後にリモートにプッシュ
--yes-yプロンプトなしで自動的にコミットを確定
--dry-run変更なしで何が起こるかを表示
--message-only実際のコミットを行わずに、生成されたコミットメッセージのみを出力
--no-verifyコミット時に pre-commit と lefthook フックをスキップ
--skip-secret-scanステージされた変更での秘密検出をスキップ
--no-verify-sslSSL証明書の検証をスキップ(企業プロキシに便利)
--signoffコミットメッセージに Signed-off-by 行を追加(DCO 準拠)
--interactive-iより良いコミットのために変更について質問する

注意: --stage--add-all は同時に使用できません。--stage はインタラクティブにステージするファイルを選択する場合に、--add-all はすべての変更を一度にステージする場合に使用してください。

注意: -ag のように -a-g を組み合わせて、まずすべての変更をステージしてからコミットにグループ化します。

注意: --group を使用する場合、最大出力トークン制限はコミットされるファイル数に基づいて自動的にスケーリングされます(ファイル数 1-9 で 2 倍、10-19 で 3 倍、20-29 で 4 倍、30 以上で 5 倍)。これにより、LLM が大きな変更セットでもトランケーションなしですべてのグループ化されたコミットを生成するのに十分なトークンを確保できます。

注意: --message-only--group は同時に使用できません。--message-only は外部処理向けにコミットメッセージだけを取得したい場合に、--group は現在の git ワークフロー内で複数のコミットを整理したい場合に使用してください。

注意: --interactive フラグは変更について質問することで LLM に追加のコンテキストを提供し、より正確で詳細なコミットメッセージを生成します。これは複雑な変更の場合や、コミットメッセージが作業の完全なコンテキストを確実に捉えるようにしたい場合に特に便利です。

メッセージカスタマイズ

フラグ / オプション短い形式説明
--one-liner-o単一行のコミットメッセージを生成
--verbose-v動機、アーキテクチャ、影響を含む詳細なコミットメッセージを生成
--hint <text>-hLLM を導くヒントを追加
--model <model>-mこのコミットで使用するモデルを指定
--language <lang>-l言語を上書き(名前またはコード: 'Spanish', 'es', 'zh-CN', 'ja')
--scope-sコミットの適切なスコープを推論
--50-72コミットメッセージの書式設定に 50/72 ルールを適用

注意: --50-72 フラグは 50/72 ルール を適用します:

  • 件名行:最大 50 文字
  • 本文行:1 行あたり最大 72 文字
  • これにより、git log --oneline や GitHub の UI でコミットメッセージが読みやすくなります

このルールを常に適用するには、.gac.env ファイルに GAC_USE_50_72_RULE=true を設定することもできます。

注意: 確認プロンプトで直接フィードバックを入力することで対話的にフィードバックを提供できます - 'r' を前置する必要はありません。シンプルな再生成には r、メッセージの編集には e(デフォルトはインプレース TUI、または $GAC_EDITOR が設定されている場合はそちら)、または直接フィードバックを入力(例: もっと短くして)。

出力と詳細レベル

フラグ / オプション短い形式説明
--quiet-qエラー以外のすべての出力を抑制
--log-level <level>ログレベルを設定(debug, info, warning, error)
--show-promptコミットメッセージ生成に使用される LLM プロンプトを表示

ヘルプとバージョン

フラグ / オプション短い形式説明
--versiongac バージョンを表示して終了
--helpヘルプメッセージを表示して終了

ワークフロー例

  • すべての変更をステージしてコミット:

    uvx gac -a
    
  • ワンステップでコミットしてプッシュ:

    uvx gac -ap
    
  • 単一行コミットメッセージを生成:

    uvx gac -o
    
  • 構造化セクション付きの詳細なコミットメッセージを生成:

    uvx gac -v
    
  • LLM にヒントを追加:

    uvx gac -h "認証ロジックをリファクタリング"
    
  • コミットのスコープを推論:

    uvx gac -s
    
  • ステージされた変更を論理的なコミットにグループ化:

    uvx gac -g
    # すでにステージしたファイルのみをグループ化
    
  • すべての変更(ステージ+未ステージ)をグループ化して自動確定:

    uvx gac -agy
    # すべてをステージ、グループ化、自動確定
    
  • このコミットのみ特定のモデルを使用:

    uvx gac -m anthropic:claude-haiku-4-5
    
  • 特定の言語でコミットメッセージを生成:

    # 言語コードを使用(短い)
    uvx gac -l zh-CN
    uvx gac -l ja
    uvx gac -l es
    
    # 完全な名前を使用
    uvx gac -l "Simplified Chinese"
    uvx gac -l Japanese
    uvx gac -l Spanish
    
  • ドライラン(何が起こるかを確認):

    uvx gac --dry-run
    
  • コミットメッセージのみを取得(スクリプト統合用):

    uvx gac --message-only
    # 出力例: feat: add user authentication system
    
  • 1 行形式のコミットメッセージを取得:

    uvx gac --message-only --one-liner
    # 出力例: feat: add user authentication system
    
  • コンテキストを提供するためにインタラクティブモードを使用:

    uvx gac -i
    # これらの変更の主な目的は何ですか?
    # どの問題を解決していますか?
    

言及する価値のある実装詳細はありますか?

  • 詳細出力でインタラクティブモード:
uvx gac -i -v
# 質問して詳細なコミットメッセージを生成

詳細

  • より強力なワークフローのためにフラグを組み合わせる(例: uvx gac -ayp でステージ、自動確定、プッシュ)
  • --show-prompt を使用して LLM に送信されるプロンプトをデバッグ・確認
  • --log-level または --quiet で詳細レベルを調整
  • --message-only をスクリプト統合や自動化されたワークフローに使用

スクリプト統合と外部処理

--message-only フラグは、スクリプト統合や外部ツールのワークフロー向けに設計されています。追加のフォーマットやスピナー、UI 要素なしで、生のコミットメッセージのみを出力します。

ユースケース:

  • エージェント統合: AI エージェントがコミットメッセージを取得し、自身でコミット処理を行えるようにする
  • 別の VCS: 生成されたメッセージを他のバージョン管理システム(Mercurial、Jujutsu など)で使用
  • カスタムコミットワークフロー: コミット前にメッセージを処理・変更する
  • CI/CD パイプライン: コミットメッセージを自動処理のために抽出する

スクリプトでの使用例:

#!/bin/bash
# コミットメッセージを取得し、カスタムコミット関数で使用
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 統合例
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}")

スクリプト用途における主な特徴:

  • Rich による装飾やスピナーのないクリーンな出力
  • 確認プロンプトを自動的にスキップ
  • 実際の git コミットは行われない
  • 単純な出力が必要な場合は --one-liner と組み合わせて使用可能
  • --hint--model などの他のフラグとも組み合わせて利用可能

Pre-commit と Lefthook フックのスキップ

--no-verify フラグにより、プロジェクトで設定された pre-commit または lefthook フックをスキップできます:

uvx gac --no-verify  # すべてのpre-commitとlefthookフックをスキップ

--no-verify を使用する状況:

  • Pre-commit または lefthook フックが一時的に失敗している場合
  • 時間のかかるフックを処理している場合
  • まだすべてのチェックを通過していない作業中のコードをコミットする場合

注意: これらのフックはコード品質基準を維持するものであるため、注意して使用してください。

セキュリティスキャン

uvx gac には組み込みセキュリティスキャンが含まれており、AI API呼び出しが行われる前にステージされた変更で潜在的な秘密と API キーを自動的に検出します。秘密が検出された場合、ワークフローは直ちに中止されます — API呼び出しは行われません。これにより、機密データがAIモデルに送信されることはありません。スキャナーは正規表現ベースのパターンマッチングを使用し、LLMではないため、スキャンは高速で完全にローカルで実行されます。

セキュリティスキャンのスキップ:

uvx gac --skip-secret-scan  # このコミットのセキュリティスキャンをスキップ

永続的に無効化するには: .gac.env ファイルで GAC_SKIP_SECRET_SCAN=true を設定します。

スキップする状況:

  • プレースホルダーキー付きのサンプルコードをコミットする場合
  • ダミーの認証情報を含むテストフィクスチャを扱っている場合
  • 変更が安全であることを確認した場合

注意: スキャナーは正規表現ベースのパターンマッチング(LLMではない)を使用して一般的な秘密形式を検出します。AI API呼び出しの前に実行されます — 秘密が見つかった場合、API呼び出しは行われません。コミット前に常に確認してください。

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証明書検証

--no-verify-ssl フラグにより、API呼び出しのSSL証明書検証をスキップできます:

uvx gac --no-verify-ssl  # このコミットのSSL検証をスキップ

永続的に設定するには: .gac.env ファイルで GAC_NO_VERIFY_SSL=true を設定します。

--no-verify-ssl を使用する状況:

  • 企業プロキシがSSLトラフィックを傍受している場合(MITMプロキシ)
  • 開発環境が自己署名証明書を使用している場合
  • ネットワークセキュリティ設定によりSSL証明書エラーが発生する場合

注意: 信頼できるネットワーク環境でのみこのオプションを使用してください。SSL検証を無効にするとセキュリティが低下し、API要求が中間者攻撃に対して脆弱になる可能性があります。

Signed-off-by 行(DCO 準拠)

uvx gac はコミットメッセージに Signed-off-by 行を追加することをサポートしており、これは多くのオープンソースプロジェクトで Developer Certificate of Origin (DCO) 準拠のために必要です。

Signoff を追加 :

uvx gac --signoff  # コミットメッセージに Signed-off-by 行を追加(DCO 準拠)

永続的に有効にするには : .gac.env ファイルに GAC_SIGNOFF=true を設定するか、設定に signoff=true を追加してください。

機能 :

  • コミットメッセージに Signed-off-by: あなたの名前 <your.email@example.com> を追加します
  • git config (user.nameuser.email) を使用して行を構成します
  • Cherry Studio、Linux カーネル、その他 DCO を使用するプロジェクトで必要です

git ユーザー情報の設定 :

git config に正しい名前とメールアドレスが設定されていることを確認してください :

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

注意 : Signed-off-by 行はメッセージ生成時の AI ではなく、コミット時に git によって追加されます。プレビューには表示されませんが、最終的なコミットには含まれます (git log -1 で確認してください)。

設定に関する注意

  • gac を設定する推奨方法は uvx gac init を実行して対話的なプロンプトに従うことです。
  • すでに言語を設定しており、プロバイダーやモデルを切り替える必要があるだけですか?uvx gac model を実行して質問なしでセットアップを繰り返してください。
  • Claude Code を使用していますか? OAuth 認証の手順についてはClaude Code 設定ガイドを参照してください。
  • ChatGPT OAuth を使用していますか? ブラウザベースの認証の手順については ChatGPT OAuth 設定ガイド を参照してください。
  • GitHub Copilot を使用していますか? Device Flow 認証の手順についてはGitHub Copilot 設定ガイドを参照してください。
  • gac は以下の優先度順で設定を読み込みます:
    1. CLI フラグ
    2. プロジェクトレベル .gac.env
    3. ユーザーレベル ~/.gac.env
    4. 環境変数

高度な設定オプション

これらのオプションの環境変数で gac の動作をカスタマイズできます:

  • GAC_EDITOR=code --wait - 確認プロンプトで e を押したときに使用するエディタを上書き。デフォルトでは e はインプレース TUI を開きますが、GAC_EDITOR を設定すると外部エディタに切り替わります。引数付きのエディタコマンドに対応。既知の GUI エディタ(VS Code、Cursor、Zed、Sublime Text)には待機フラグ(--wait/-w)が自動挿入され、ファイルを閉じるまでプロセスがブロックされます
  • GAC_ALWAYS_INCLUDE_SCOPE=true - コミットメッセージにスコープを自動的に推論して含める(例: feat(auth): vs feat:
  • GAC_ALWAYS_GROUPED=true - 常にグループ化コミットモードを使用(常に -g または --group フラグを渡すのと同じ)
  • GAC_VERBOSE=true - 動機、アーキテクチャ、影響セクションを含む詳細なコミットメッセージを生成
  • GAC_USE_50_72_RULE=true - コミットメッセージに常に 50/72 ルールを適用(件名 ≤50 文字、本文行 ≤72 文字)
  • GAC_SIGNOFF=true - 常にコミットに Signed-off-by 行を追加(DCO 準拠用)
  • GAC_TEMPERATURE=0.7 - LLM の創造性を制御(0.0-1.0、低いほど focused)
  • GAC_REASONING_EFFORT=medium - 拡張思考をサポートするモデルの推論/思考深度を制御(low、medium、high、max)。設定しない場合は各モデルのデフォルトを使用。互換性のあるプロバイダー(OpenAI スタイル、Anthropic 以外)にのみ送信されます。
  • GAC_MAX_OUTPUT_TOKENS=4096 - 生成されたメッセージの最大トークン数(--group 使用時にファイル数に基づいて自動的に 2-5 倍にスケーリング;これ以上または以下にするには上書き)
  • GAC_WARNING_LIMIT_TOKENS=4096 - プロンプトがこのトークン数を超えた場合に警告
  • GAC_SYSTEM_PROMPT_PATH=/path/to/custom_prompt.txt - コミットメッセージ生成にカスタムシステムプロンプトを使用
  • GAC_LANGUAGE=Spanish - 特定の言語でコミットメッセージを生成(例: Spanish, French, Japanese, German)。完全な名前または ISO コードをサポート(es, fr, ja, de, zh-CN)。対話的な選択には uvx gac language を使用
  • GAC_TRANSLATE_PREFIXES=true - 従来のコミットプレフィックス(feat, fix など)を対象言語に翻訳(デフォルト: false、プレフィックスは英語のまま)
  • GAC_SKIP_SECRET_SCAN=true - ステージされた変更での秘密の自動セキュリティスキャンを無効化(注意して使用)
  • GAC_NO_VERIFY_SSL=true - API呼び出しのSSL証明書検証をスキップ(SSLトラフィックを傍受する企業プロキシに便利)
  • GAC_DISABLE_STATS=true - 使用統計の追跡を無効化(統計ファイルの読み書きを行わない;既存のデータは保持されます)。truthy値のみが統計を無効化します;false/0/no/offに設定すると統計は有効のままです。変数を未設定にするのと同じです

完全な設定テンプレートについては .gac.env.example を参照。

カスタムシステムプロンプト作成の詳細なガイドについては CUSTOM_SYSTEM_PROMPTS.md を参照。

設定サブコマンド

以下のサブコマンドが利用可能です:

  • uvx gac init — プロバイダー、モデル、言語設定の対話的なセットアップウィザード
  • uvx gac model — 言語プロンプトなしのプロバイダー/モデル/API キー設定(クイックスイッチに最適)
  • uvx gac auth — すべてのプロバイダーのOAuth認証ステータスを表示
  • uvx gac auth claude-code login — OAuthを使用してClaude Codeにログイン(ブラウザを開く)
  • uvx gac auth claude-code logout — Claude Codeからログアウトして保存されたトークンを削除
  • uvx gac auth claude-code status — Claude Code認証ステータスを確認
  • uvx gac auth chatgpt login — OAuth を使用して ChatGPT にログイン(ブラウザを開く)
  • uvx gac auth chatgpt logout — ChatGPT からログアウトして保存されたトークンを削除
  • uvx gac auth chatgpt status — ChatGPT 認証ステータスを確認
  • uvx gac auth copilot login — Device Flow を使用して GitHub Copilot にログイン
  • uvx gac auth copilot login --host ghe.mycompany.com — GitHub Enterprise インスタンスの Copilot にログイン
  • uvx gac auth copilot logout — Copilot からログアウトして保存されたトークンを削除
  • uvx gac auth copilot status — Copilot 認証ステータスを確認
  • uvx gac config show — 現在の設定を表示
  • uvx gac config set KEY VALUE$HOME/.gac.env で設定キーを設定
  • uvx gac config get KEY — 設定値を取得
  • uvx gac config unset KEY$HOME/.gac.env から設定キーを削除
  • uvx gac language (または uvx gac lang) — コミットメッセージの対話的言語セレクター(GAC_LANGUAGE を設定)
  • uvx gac editor (または uvx gac edit) — 確認プロンプトの e キーの対話的エディターセレクター(GAC_EDITOR を設定)
  • uvx gac diff — ステージ/未ステージ変更、色、トランケーションのオプション付きでフィルタリングされた git diff を表示
  • uvx gac serve — AI エージェント統合用の MCP サーバーとして GAC を起動(stdio トランスポート)
  • uvx gac stats show — gac の使用統計を表示(合計、ストリーク、日次・週次アクティビティ、トークン使用量、平均ファイル数付きトッププロジェクト、速度とレイテンシ付きトップモデル)
  • uvx gac stats models — すべてのモデルの詳細統計(トークン内訳、速度、レイテンシ、コミット別レイテンシチャート付き)
  • uvx gac stats projects — すべてのプロジェクトの統計(トークン内訳、gacあたり平均ファイル数付き)
  • uvx gac stats recent — 最近の10件のgac履歴(gacごとのトークン、速度、レイテンシ、ファイル数)(-n 20で更多)
  • uvx gac stats reset — すべての統計をゼロにリセット(確認プロンプト付き)
  • uvx gac stats reset model <model-id> — 特定のモデルの統計をリセット(大文字小文字を区別しない)

インタラクティブモード

--interactive (-i) フラグは、変更について的を絞った質問をすることで gac のコミットメッセージ生成を向上させます。この追加のコンテキストは、LLM がより正確で詳細で文脈に適したコミットメッセージを作成するのに役立ちます。

動作方法

--interactive を使用すると、gac はこのような質問をします:

  • これらの変更の主な目的は何ですか? - 高レベルの目標を理解するのに役立ちます
  • どの問題を解決していますか? - 動機に関するコンテキストを提供します
  • 言及する価値のある実装詳細はありますか? - 技術的な仕様をキャプチャします
  • 破壊的変更はありますか? - 潜在的な影響の問題を特定します
  • これは issue やチケットに関連していますか? - プロジェクト管理にリンクします

インタラクティブモードを使用する場合

インタラクティブモードは特に以下の場合に便利です:

  • 複雑な変更 - diff だけではコンテキストが明確でない場合
  • リファクタリング作業 - 複数のファイルと概念にまたがる場合
  • 新機能 - 全体的な目的の説明が必要な場合
  • バグ修正 - 根本的な原因がすぐに見えない場合
  • パフォーマンス最適化 - 理由が明確でない場合
  • コードレビュー準備 - 質問が変更について考えるのに役立ちます

使用例

基本的なインタラクティブモード:

uvx gac -i

これにより以下が行われます:

  1. ステージされた変更の要約を表示します
  2. 変更について質問します
  3. 回答を含めてコミットメッセージを生成します
  4. 確認を求めます(または -y と組み合わせた場合は自動確認)

ステージされた変更でインタラクティブモード:

uvx gac -ai
# すべての変更をステージしてから、より良いコンテキストのために質問します

特定のヒントでインタラクティブモード:

uvx gac -i -h "ユーザープロファイルのデータベース移行"
# LLM を集中させるための特定のヒントを提供しながら質問します

詳細出力でインタラクティブモード:

uvx gac -i -v
# 質問して詳細で構造化されたコミットメッセージを生成します

自動確認インタラクティブモード:

uvx gac -i -y
# 質問しますが、結果のコミットを自動確認します

質疑応答ワークフロー

インタラクティブワークフローはこのパターンに従います:

  1. 変更の確認 - gac がコミットしている内容の要約を表示します
  2. 質問に回答 - 各プロンプトに関連する詳細で回答します
  3. コンテキストの向上 - 回答が LLM プロンプトに追加されます
  4. メッセージ生成 - LLM が完全なコンテキストでコミットメッセージを作成します
  5. 確認 - コミットを確認して確認します(または -y で自動確認)

有用な回答を提供するためのヒント:

  • 簡潔だが徹底的に - 過度に冗長にならずに重要な詳細を提供します
  • 「なぜ」に焦点を当てる - 変更の背後にある理由を説明します
  • 制約に言及 - 制限や特別な考慮事項に注意します
  • 外部コンテキストにリンク - issue、ドキュメント、設計ドキュメントを参照します
  • 空の回答も可 - 質問が適用されない場合は、Enter キーを押すだけです

他のフラグとの組み合わせ

インタラクティブモードは他のほとんどのフラグと良好に動作します:

# すべての変更をステージして質問します
uvx gac -ai

# 詳細出力で質問します
uvx gac -i -v

ベストプラクティス

  • 複雑な PR で使用 - 詳細な説明が必要な pull request で特に便利です
  • チームコラボレーション - 質問は他の人がレビューする変更について考えるのに役立ちます
  • ドキュメント準備 - 回答はリリースノートの基礎を形成するのに役立ちます
  • 学習ツール - 質問はコミットメッセージの良いプラクティスを強化します
  • 簡単な変更ではスキップ - 自明な修正の場合、基本モードの方が高速です

使用統計

uvx gac は軽量な使用統計を追跡し、コミットアクティビティ、ストリーク、トークン使用量、最もアクティブなプロジェクトとモデルを確認できます。統計は ~/.gac_stats.json にローカルで保存され、どこにも送信されません — テレメトリはありません。

追跡内容: gac 実行回数の合計、コミット回数の合計、プロンプトおよび完了トークンの合計、初回/最終使用日、日次および週次カウント(gac、コミット、トークン)、現在および最長ストリーク、プロジェクト別アクティビティ(gac、コミット、プロンプト + 完了トークン)、モデル別アクティビティ(gac、プロンプト + 完了トークン)。

追跡しない内容: コミットメッセージ、コード内容、ファイルパス、個人情報、またはカウント、日付、プロジェクト名(gitリモートまたはディレクトリ名から派生)、モデル名を超えるデータ。

オプトインまたはオプトアウト

uvx gac init は統計を有効にするかどうかを確認し、保存される内容を説明します。いつでも変更できます:

  • 統計を有効にする: GAC_DISABLE_STATS を未設定にするか、false/0/no/off/空に設定します。
  • 統計を無効にする: GAC_DISABLE_STATS を truthy 値(true1yeson)に設定します。

uvx gac init 中に統計を拒否し、既存の ~/.gac_stats.json が検出された場合、削除するオプションが提示されます。

統計サブコマンド

コマンド説明
uvx gac stats統計を表示(uvx gac stats show と同じ)
uvx gac stats show完全な統計を表示:合計、ストリーク、日次・週次アクティビティ、トークン使用量、トッププロジェクト、トップモデル
uvx gac stats modelsすべての使用モデルの詳細統計、トークン内訳、速度、レイテンシ、コミット別レイテンシチャート付き
uvx gac stats projectsすべてのプロジェクトの統計、トークン内訳とgacあたり平均ファイル数付き
uvx gac stats recent最近の10件のgac(-n 20で更多)、gacごとのトークン、速度、レイテンシ、ファイル数
uvx gac stats resetすべての統計をゼロにリセット(確認プロンプト付き)
uvx gac stats reset model <model-id>特定のモデルの統計をリセット(大文字小文字を区別しない)

# 全体の統計を表示
uvx gac stats

# 使用したすべてのモデルの詳細内訳
uvx gac stats models

# すべてのプロジェクトの統計
uvx gac stats projects

# 最近の gac 履歴
uvx gac stats recent -n 20

# すべての統計をリセット(確認プロンプト付き)
uvx gac stats reset

# 特定のモデルの統計をリセット
uvx gac stats reset model wafer:deepseek-v4-pro

表示される内容

uvx gac stats を実行すると以下が表示されます:

  • gac とコミットの合計 — gac を使用した回数とそれが作成したコミット数
  • 現在および最長ストリーク — gac アクティビティがある連続日数(5日以上で 🔥)
  • アクティビティサマリー — 今日および今週の gac、コミット、トークン数とピーク日およびピーク週の比較
  • トッププロジェクト — gac 使用 + コミット数による上位5つの最もアクティブなリポジトリ、gacあたり平均ファイル数とトークン使用量付き
  • トップモデル — 最も使用されている上位5つのモデル、全期間の速度、レイテンシ、トークン使用量付き

uvx gac stats projects は(上位5つだけでなく)すべてのプロジェクトを次の内容で表示します:

  • 全プロジェクトテーブル — アクティビティ順の各プロジェクト、gac数、コミット数、gacあたりコミット比率、gacあたり平均ファイル数、プロンプトトークン、完了トークン、推論トークン、合計トークン、総gac数のシェア付き
  • アクティビティバーチャート — プロジェクトごとの相対的なgac数を示す水平バー
  • トークン使用量バーチャート — プロジェクトごとの相対的なトークン消費量を示す水平バー

uvx gac stats models は(上位5つだけでなく)すべてのモデルを次の内容で表示します:

  • 全モデルテーブル — アクティビティ順の各使用モデル、gac数、コミット数、全期間の速度(トークン/秒)、全期間のレイテンシ、プロンプトトークン、完了トークン、推論トークン、合計トークン付き
  • 速度比較(30日)チャート — 直近(過去30日間)のモデル速度の水平バーチャート、最速から最遅へソート、速度パーセンタイル別の色分け(🟡 超高速、🟢 高速、🔵 中程度、🔘 低速)
  • レイテンシ比較(30日)チャート — 直近の呼び出しごとのレイテンシの水平バーチャート、最短から最長へソート
  • コミットあたりレイテンシ(30日)チャート — 直近のレイテンシをコミット数で割った水平バーチャート、コミットごとの実際の待ち時間を示す(10秒のgacで5コミットするモデルは2秒/コミット vs 25秒のgacで1コミットするモデルは25秒/コミット)
  • ハイスコアのお祝い — 🏆 新しい日次、週次、トークン、またはストリーク記録を樹立したときにトロフィーを獲得;🥈 記録に並んだときに獲得
  • 励ましのメッセージ — アクティビティに基づいたコンテキストに応じた励まし

uvx gac stats recent は最近の10件のgacを表示します(-nで設定可能):

  • 最近のgacテーブル — 各gacに相対時間、プロジェクト、モデル、コミット数、ファイル数、速度、レイテンシ、gacごとのトークン内訳付き

統計の無効化

GAC_DISABLE_STATS 環境変数を truthy 値に設定します:

# 統計追跡を無効化
export GAC_DISABLE_STATS=true

# または .gac.env で
GAC_DISABLE_STATS=true

Falsy値(false0nooff、空)は統計を有効なままにします — 変数を未設定にするのと同じです。

無効にすると、gac はすべての統計記録をスキップします — ファイルの読み書きは行われません。既存のデータは保持されますが、再度有効にするまで更新されません。


Discord Webhook 通知

gacはコミットするたびにDiscordチャンネルに通知を送信できます。チャンネルの統合設定からWebhook URLを使用します。この統合はオプトインです:Webhook URLを明示的に設定するまで何もしません。

設定

専用のdiscordサブコマンドグループを使用します:

uvx gac discord setup     # Webhook URLを対話的に設定
uvx gac discord show      # Webhookが設定されているか表示(URLはマスクされます)
uvx gac discord test      # 設定されたWebhookにテスト通知を送信
uvx gac discord remove    # 設定されたWebhook URLを削除

または、$HOME/.gac.env(または./.gac.env)に変数を直接設定します:

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

動作

  • 各成功したコミット後に発火(単一およびグループ化されたワークフロー)。--dry-run--message-onlyではスキップされます。
  • 緑のストライプ付きのGitHubスタイルEmbedを投稿します:著者行としてリポジトリ+ブランチ、タイトルとしてコミットサブジェクト、説明としてコミット本文、フッターに短いSHAを含みます。
  • gacアバターとユーザー名gacを使用します。
  • Webhookの失敗はWARNINGでログに記録され、コミットを決してブロックしません
  • 無効にするにはGAC_DISCORD_WEBHOOK_URLを未設定(または空白)のままにします。gac initは影響を受けません — Discordの設定はgac discordだけにあります。

ヘルプを取得

  • MCP サーバーのセットアップ(AI エージェント統合)については MCP.md を参照
  • カスタムシステムプロンプトについては CUSTOM_SYSTEM_PROMPTS.md を参照
  • Claude Code OAuth のセットアップについては CLAUDE_CODE.md を参照
  • ChatGPT OAuth のセットアップについては、CHATGPT_OAUTH.md を参照
  • GitHub Copilot のセットアップについては、GITHUB_COPILOT.md を参照
  • トラブルシューティングと高度なヒントについては TROUBLESHOOTING.md を参照
  • インストールと設定については ../README.md を参照
  • 貢献については CONTRIBUTING.md を参照
  • ライセンス情報: ../LICENSE