オートギットは、Gitリポジトリを自動的に監視・管理し、LLMを使用してコミットメッセージやドキュメント/READMEを作成するクロスプラットフォームのElectronアプリです。
- 監視と自動コミット
- – 任意のフォルダをGitリポジトリとして追加: オートギットは必要に応じて初期Gitセットアップを行います。
- – リアルタイムファイル監視(Chokidar): ファイルが変更されると、変更がデバウンス間隔で検出され、自動的にGitにコミットされます。
- – インテリジェントなコミットメッセージ: 定義された行数または時間の閾値に達すると、オートギットはすべての新しいコミットを集め、その差分からOllama-LLM(qwen2.5-Coder)用のプロンプト最適化された入力を作成し、標準のコミットメッセージを意味的に簡潔な要約に置き換えます。
- README生成とリポジトリ説明
- – ボタン一つでまたは初回追加時: オートギットは関連するコードファイル(サイズ、関連スコア、.gitignoreルールに基づく)を抽出し、それをLLMプロンプトに供給して自動的に完全で良く構造化されたREADME.mdを作成または更新します。
- – LLM支援の短い説明(≤ 255文字): 各フォルダに対して、オートギットは同じOllamaバックエンドを使用して数秒で一行のプロジェクト説明テキストを生成できます。
- 堅牢なフォルダ管理
- – 欠落または移動したフォルダは自動的に検出され(「移動が必要」)、サイドバーアイコンをクリックすることで新しいパスを割り当て、元のGit状態を復元できます(コミットハッシュによる確認)。
- – 簡単なドラッグ&ドロップサポート: フォルダをドラッグしてアプリに直接引き込み、すぐにGitリポジトリを初期化し、監視を開始します。
- – .gitignore管理: 一般的な一時的/IDE/ビルドファイルは自動的に検出され(Micromatch + 事前定義されたパターン)、必要に応じて.gitignoreに追加されます。
- Gitea統合とプッシュワークフロー
- – 設定で個人のGitea APIトークンを保存できます。
- – 「Giteaにプッシュ」をクリックすると、オートギットはリモートリポジトリが既に存在するかどうかを確認します:
- 存在しない → リポジトリを作成(LLM生成の短い説明付き)。
- 存在する → 現在の説明をPATCHで更新します。
- – その後、ローカルリモートオリジンが再構成され、現在のブランチとタグが自動的にプッシュされます。
- デスクトップUIと操作性
- – ElectronとTailwindCSS: サイドバー(監視されているすべてのフォルダのフィルタリングリスト)、中央コンテンツエリア(すべてのコミットをページネーション表示、差分ビュー、スナップショットエクスポート、「ここにジャンプ」チェックアウトを含む)を持つレスポンシブインターフェース。
- – スカイモード: 自動的な時間依存の背景(昼は柔らかい青、夜は暗い青)。
- – トレイメニューとトレイアイコン: アプリがトレイに最小化され、トレイアイコンを右クリックすると、フォルダごとの監視の開始/停止、フォルダの追加/削除、「終了」が迅速に行えます。
- – 設定ダイアログ:
- > スカイテーマのオン/オフ
- > 「トレイに閉じる」: アプリを実際に終了するのではなく、閉じるとウィンドウを隠します
- > 自動起動の動作
- > インテリジェントなコミット閾値(行数と分数)
- > 使用するOllamaモデルの選択(コミット対README)
- > Gitea APIトークンを保存
- – ゲーミフィケーションとライブ統計: コミットのための日次カウンター、色分けされた視覚化(「今日のコミット」)、次の自動LLMコミットまでのライブカウントダウン。
- テクノロジースタック
- – フロントエンド: Electron + HTML/CSS + TailwindCSS + 自作のミニマルアニメーション「アニメキャット」(クライアントサイドのキャットストリーミングLLM応答時)。
- – バックエンド/Node:
- > chokidarによるファイル監視
- > simple-gitによるすべてのGit操作(初期化、ステータス、コミット、差分、リベース、プッシュ、リモート設定)
- > micromatchとignoreによるファイル/フォルダのフィルタリング
- > electron-storeによるすべての設定の永続化(Giteaトークン、スカイモード、閾値、モデル選択を含む)
- > 自作のLLM統合: Ollamaサーバーの開始/停止、fetch(…).getReader()による並行ストリーム処理。
- > トレイ/メニュー統合: ネイティブElectronメニューとサイドバー/ツリービューのコンテキストメニュー。
すべての機能 – 継続的な自動コミットの作成からGiteaへの完全自動プッシュおよびリポジトリ設定まで – は、開発者の日常を楽にするために設計されています: コードに集中し続ける一方で、オートギットはバックグラウンドでコミット履歴、ドキュメント、リモートリポジトリを常に最新の状態に保ちます。