Skip to content

Repository files navigation

AutoCommit

Beschreibung

autocommit ist ein Python-Skript, das geänderte Dateien in einem Git-Repository erkennt, ihre Diffs einsammelt und automatisch eine Commit-Nachricht erzeugt. Du kannst entweder den eingebauten Provider-Modus mit Google Gemini (über google-genai), Z.AI GLM Coding Plan (OpenAI-kompatibel, z. B. GLM-4.6) und OpenAI verwenden oder auf macOS einen Shortcuts-Modus nutzen. Danach öffnet sich dein Editor zur Feinjustierung, und auf Wunsch wird automatisch gepusht.

Das Skript unterstützt:

  • Erkennung von untracked und modifizierten, aber nicht gestagten Dateien
  • Manuelle Bestätigung zum Hinzufügen neuer oder geänderter Dateien
  • Automatische Commit-Generierung über Gemini, Z.AI GLM (Coding API), OpenAI oder macOS Shortcuts
  • Bearbeitung der Commit-Nachricht im bevorzugten Editor ($EDITOR oder vim)
  • Automatisches Committen und Pushen, falls ein origin-Remote vorhanden ist

Installation

Voraussetzungen

  • Python 3.11+
  • git
  • uv
  • API-Key für Google Gemini, Z.AI GLM Coding Plan oder OpenAI; alternativ macOS mit installiertem Shortcut

1. Repository klonen und Abhängigkeiten installieren

git clone https://github.com/dein-user/autocommit.git ~/dev/auto-commit
cd~/dev/auto-commit
uv sync

uv legt die lokale .venv selbst an und hält sie anhand von pyproject.toml und uv.lock konsistent.

2. .env anlegen und Provider konfigurieren

Beispiel siehe env.example. Kopiere die Datei und trage deine Keys ein:

cp env.example .env

Wichtige Variablen:

  • COMMIT_MODE: provider (Standard) oder shortcuts
  • AI_PROVIDER: gemini (Standard), zai oder openai
  • Gemini: GEMINI_API_KEY, optional GEMINI_MODEL
  • Z.AI: ZAI_API_KEY, optional ZAI_MODEL, ZAI_BASE_URL (Standard: https://api.z.ai/api/coding/paas/v4Coding API, nicht die General API)
  • OpenAI: OPENAI_API_KEY, optional OPENAI_MODEL, optional OPENAI_BASE_URL
  • macOS Shortcuts: MACOS_SHORTCUT_NAME (Standard: auto-commit-chatgpt)
  • COMMIT_LANGUAGE: Sprache der Commit-Nachricht
  • NO_PUSH: true oder false (Standard: false) – Überspringt den git push nach dem Commit

macOS Shortcuts-Modus

Wenn du lieber die lokale macOS-Shortcuts-Integration verwenden willst, setze:

COMMIT_MODE=shortcuts
MACOS_SHORTCUT_NAME=auto-commit-chatgpt

Der Shortcut bekommt exakt denselben Prompt wie der eingebaute Modellpfad. Die Übergabe erfolgt als echter Texteingang über AppleScript und Shortcuts Events, nicht als Datei-Upload:

osascript - auto-commit-chatgpt /tmp/prompt.txt <<'APPLESCRIPT'onrun argvsetshortcutNametoitem1of argvsetinputPathtoitem2of argvsetpromptTexttoreadPOSIX file inputPathtellapplication"Shortcuts Events"returnrun shortcut shortcutName with input promptTextend tellendrunAPPLESCRIPT

Der Modus prüft beim Start:

  • dass das System auf macOS läuft
  • dass die shortcuts-CLI verfügbar ist
  • dass der konfigurierte Shortcut tatsächlich existiert

Shortcut-Link für auto-commit-chatgpt:

3. Skript als ausführbare Datei einrichten (optional)

cd~/dev/auto-commit
./scripts/install.sh

Das Skript führt uv sync aus, testet den CLI-Start und installiert bzw. aktualisiert ~/.local/bin/autocommit. Der installierte Wrapper nutzt dieses Repository nur als Tool-Quelle; ausgeführt wird autocommit immer im aktuellen Arbeitsverzeichnis.

Falls ~/.local/bin nicht im PATH ist:

echo'export PATH="$HOME/.local/bin:$PATH"'>>~/.zshrc # oder ~/.bashrcsource~/.zshrc

Provider-spezifische Hinweise

  • Google Gemini: Nutzt die google-genai API. Modell per .env (GEMINI_MODEL) oder CLI --model.
  • Z.AI GLM Coding Plan: OpenAI-kompatibel. Verwende die Coding-Endpoint https://api.z.ai/api/coding/paas/v4 und setze das Modell (GLM-4.7, GLM-4.6, GLM-4.5, GLM-4.5-air).
  • OpenAI: Nutzt die openai Python SDK (chat.completions). Standardmodell ist gpt-5.4-mini (per .envOPENAI_MODEL oder via --model). Eine aktuelle Modell-Liste (Model-IDs für --model/OPENAI_MODEL) findest du hier: https://platform.openai.com/docs/models

Verwendung

autocommit

Ohne installierten Wrapper geht es direkt aus dem Repo heraus:

uv run autocommit

CLI-Optionen:

  • --lang: Sprache der Commit-Nachricht
  • --mode: provider oder shortcuts
  • --provider: gemini, zai oder openai (überschreibt .env)
  • --model: Modellname für den gewählten Provider
  • --shortcut-name: Name des macOS-Shortcuts für --mode shortcuts
  • --zai-base-url: eigenes Base-URL für die Z.AI Coding API (Standard ist bereits gesetzt)
  • --openai-base-url: optional eigenes Base-URL für OpenAI
  • --style: Commit-Stil: sarcastic, humorous oder standard (default)
  • --no-push: Überspringt den git push nach dem Commit (kann auch via .env mit NO_PUSH=true gesetzt werden)

Beispiele:

  • Gemini nutzen (Standard):

    autocommit --lang Englisch --model gemini-2.5-flash
  • Z.AI GLM Coding Plan:

    autocommit --provider zai --model GLM-4.7 --zai-base-url https://api.z.ai/api/coding/paas/v4
  • OpenAI:

    autocommit --provider openai --model gpt-5.4-mini
  • macOS Shortcuts:

    autocommit --mode shortcuts --shortcut-name auto-commit-chatgpt
  • Sarcastic Commit-Style:

    autocommit --style sarcastic

Beispielausgabe

Untracked Files gefunden:
- new_script.py
- config.json
Möchtest du alle untracked Dateien hinzufügen? (y/n): y
Untracked Files wurden hinzugefügt.
Modifizierte, aber nicht gestagte Dateien gefunden:
- main.py
- utils.py
Möchtest du alle unstaged Dateien hinzufügen? (y/n): y
Unstaged Files wurden hinzugefügt.
Commit-Nachricht:
feat: Automatische Erkennung und AI-generierte Commit-Messages hinzugefügt
Dieses Commit fügt ein Skript hinzu, das geänderte und neue Dateien erkennt und eine AI-generierte Commit-Nachricht vorschlägt.
Öffne Editor für die Commit-Nachricht...
Commit abgeschlossen.
Kein 'origin' Remote gefunden. Überspringe 'git push'.

Fehlerbehebung

  • hash -r falls das Skript nach Installation nicht gefunden wird.
  • ./scripts/install.sh nach Updates oder bei Import-Problemen.
  • Normales Update: git pull, danach uv sync.
  • Neueste auflösbare Dependency-Versionen prüfen/übernehmen: uv lock --upgrade, danach uv sync und uv run python -m unittest discover -s tests.
  • --mode shortcuts funktioniert nur auf macOS und bricht sauber ab, wenn der konfigurierte Shortcut fehlt.
  • PATH prüfen: export PATH="$HOME/.local/bin:$PATH".

Lizenz

MIT License – Open Source & für eigene Zwecke anpassbar. 🚀

About

Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - uwe-schwarz/auto-commit: Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch · GitHub
Skip to content

Repository files navigation

AutoCommit

Beschreibung

autocommit ist ein Python-Skript, das geänderte Dateien in einem Git-Repository erkennt, ihre Diffs einsammelt und automatisch eine Commit-Nachricht erzeugt. Du kannst entweder den eingebauten Provider-Modus mit Google Gemini (über google-genai), Z.AI GLM Coding Plan (OpenAI-kompatibel, z. B. GLM-4.6) und OpenAI verwenden oder auf macOS einen Shortcuts-Modus nutzen. Danach öffnet sich dein Editor zur Feinjustierung, und auf Wunsch wird automatisch gepusht.

Das Skript unterstützt:

  • Erkennung von untracked und modifizierten, aber nicht gestagten Dateien
  • Manuelle Bestätigung zum Hinzufügen neuer oder geänderter Dateien
  • Automatische Commit-Generierung über Gemini, Z.AI GLM (Coding API), OpenAI oder macOS Shortcuts
  • Bearbeitung der Commit-Nachricht im bevorzugten Editor ($EDITOR oder vim)
  • Automatisches Committen und Pushen, falls ein origin-Remote vorhanden ist

Installation

Voraussetzungen

  • Python 3.11+
  • git
  • uv
  • API-Key für Google Gemini, Z.AI GLM Coding Plan oder OpenAI; alternativ macOS mit installiertem Shortcut

1. Repository klonen und Abhängigkeiten installieren

git clone https://github.com/dein-user/autocommit.git ~/dev/auto-commit
cd~/dev/auto-commit
uv sync

uv legt die lokale .venv selbst an und hält sie anhand von pyproject.toml und uv.lock konsistent.

2. .env anlegen und Provider konfigurieren

Beispiel siehe env.example. Kopiere die Datei und trage deine Keys ein:

cp env.example .env

Wichtige Variablen:

  • COMMIT_MODE: provider (Standard) oder shortcuts
  • AI_PROVIDER: gemini (Standard), zai oder openai
  • Gemini: GEMINI_API_KEY, optional GEMINI_MODEL
  • Z.AI: ZAI_API_KEY, optional ZAI_MODEL, ZAI_BASE_URL (Standard: https://api.z.ai/api/coding/paas/v4Coding API, nicht die General API)
  • OpenAI: OPENAI_API_KEY, optional OPENAI_MODEL, optional OPENAI_BASE_URL
  • macOS Shortcuts: MACOS_SHORTCUT_NAME (Standard: auto-commit-chatgpt)
  • COMMIT_LANGUAGE: Sprache der Commit-Nachricht
  • NO_PUSH: true oder false (Standard: false) – Überspringt den git push nach dem Commit

macOS Shortcuts-Modus

Wenn du lieber die lokale macOS-Shortcuts-Integration verwenden willst, setze:

COMMIT_MODE=shortcuts
MACOS_SHORTCUT_NAME=auto-commit-chatgpt

Der Shortcut bekommt exakt denselben Prompt wie der eingebaute Modellpfad. Die Übergabe erfolgt als echter Texteingang über AppleScript und Shortcuts Events, nicht als Datei-Upload:

osascript - auto-commit-chatgpt /tmp/prompt.txt <<'APPLESCRIPT'onrun argvsetshortcutNametoitem1of argvsetinputPathtoitem2of argvsetpromptTexttoreadPOSIX file inputPathtellapplication"Shortcuts Events"returnrun shortcut shortcutName with input promptTextend tellendrunAPPLESCRIPT

Der Modus prüft beim Start:

  • dass das System auf macOS läuft
  • dass die shortcuts-CLI verfügbar ist
  • dass der konfigurierte Shortcut tatsächlich existiert

Shortcut-Link für auto-commit-chatgpt:

3. Skript als ausführbare Datei einrichten (optional)

cd~/dev/auto-commit
./scripts/install.sh

Das Skript führt uv sync aus, testet den CLI-Start und installiert bzw. aktualisiert ~/.local/bin/autocommit. Der installierte Wrapper nutzt dieses Repository nur als Tool-Quelle; ausgeführt wird autocommit immer im aktuellen Arbeitsverzeichnis.

Falls ~/.local/bin nicht im PATH ist:

echo'export PATH="$HOME/.local/bin:$PATH"'>>~/.zshrc # oder ~/.bashrcsource~/.zshrc

Provider-spezifische Hinweise

  • Google Gemini: Nutzt die google-genai API. Modell per .env (GEMINI_MODEL) oder CLI --model.
  • Z.AI GLM Coding Plan: OpenAI-kompatibel. Verwende die Coding-Endpoint https://api.z.ai/api/coding/paas/v4 und setze das Modell (GLM-4.7, GLM-4.6, GLM-4.5, GLM-4.5-air).
  • OpenAI: Nutzt die openai Python SDK (chat.completions). Standardmodell ist gpt-5.4-mini (per .envOPENAI_MODEL oder via --model). Eine aktuelle Modell-Liste (Model-IDs für --model/OPENAI_MODEL) findest du hier: https://platform.openai.com/docs/models

Verwendung

autocommit

Ohne installierten Wrapper geht es direkt aus dem Repo heraus:

uv run autocommit

CLI-Optionen:

  • --lang: Sprache der Commit-Nachricht
  • --mode: provider oder shortcuts
  • --provider: gemini, zai oder openai (überschreibt .env)
  • --model: Modellname für den gewählten Provider
  • --shortcut-name: Name des macOS-Shortcuts für --mode shortcuts
  • --zai-base-url: eigenes Base-URL für die Z.AI Coding API (Standard ist bereits gesetzt)
  • --openai-base-url: optional eigenes Base-URL für OpenAI
  • --style: Commit-Stil: sarcastic, humorous oder standard (default)
  • --no-push: Überspringt den git push nach dem Commit (kann auch via .env mit NO_PUSH=true gesetzt werden)

Beispiele:

  • Gemini nutzen (Standard):

    autocommit --lang Englisch --model gemini-2.5-flash
  • Z.AI GLM Coding Plan:

    autocommit --provider zai --model GLM-4.7 --zai-base-url https://api.z.ai/api/coding/paas/v4
  • OpenAI:

    autocommit --provider openai --model gpt-5.4-mini
  • macOS Shortcuts:

    autocommit --mode shortcuts --shortcut-name auto-commit-chatgpt
  • Sarcastic Commit-Style:

    autocommit --style sarcastic

Beispielausgabe

Untracked Files gefunden:
- new_script.py
- config.json
Möchtest du alle untracked Dateien hinzufügen? (y/n): y
Untracked Files wurden hinzugefügt.
Modifizierte, aber nicht gestagte Dateien gefunden:
- main.py
- utils.py
Möchtest du alle unstaged Dateien hinzufügen? (y/n): y
Unstaged Files wurden hinzugefügt.
Commit-Nachricht:
feat: Automatische Erkennung und AI-generierte Commit-Messages hinzugefügt
Dieses Commit fügt ein Skript hinzu, das geänderte und neue Dateien erkennt und eine AI-generierte Commit-Nachricht vorschlägt.
Öffne Editor für die Commit-Nachricht...
Commit abgeschlossen.
Kein 'origin' Remote gefunden. Überspringe 'git push'.

Fehlerbehebung

  • hash -r falls das Skript nach Installation nicht gefunden wird.
  • ./scripts/install.sh nach Updates oder bei Import-Problemen.
  • Normales Update: git pull, danach uv sync.
  • Neueste auflösbare Dependency-Versionen prüfen/übernehmen: uv lock --upgrade, danach uv sync und uv run python -m unittest discover -s tests.
  • --mode shortcuts funktioniert nur auf macOS und bricht sauber ab, wenn der konfigurierte Shortcut fehlt.
  • PATH prüfen: export PATH="$HOME/.local/bin:$PATH".

Lizenz

MIT License – Open Source & für eigene Zwecke anpassbar. 🚀

About

Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - uwe-schwarz/auto-commit: Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch · GitHub
Skip to content

Repository files navigation

AutoCommit

Beschreibung

autocommit ist ein Python-Skript, das geänderte Dateien in einem Git-Repository erkennt, ihre Diffs einsammelt und automatisch eine Commit-Nachricht erzeugt. Du kannst entweder den eingebauten Provider-Modus mit Google Gemini (über google-genai), Z.AI GLM Coding Plan (OpenAI-kompatibel, z. B. GLM-4.6) und OpenAI verwenden oder auf macOS einen Shortcuts-Modus nutzen. Danach öffnet sich dein Editor zur Feinjustierung, und auf Wunsch wird automatisch gepusht.

Das Skript unterstützt:

  • Erkennung von untracked und modifizierten, aber nicht gestagten Dateien
  • Manuelle Bestätigung zum Hinzufügen neuer oder geänderter Dateien
  • Automatische Commit-Generierung über Gemini, Z.AI GLM (Coding API), OpenAI oder macOS Shortcuts
  • Bearbeitung der Commit-Nachricht im bevorzugten Editor ($EDITOR oder vim)
  • Automatisches Committen und Pushen, falls ein origin-Remote vorhanden ist

Installation

Voraussetzungen

  • Python 3.11+
  • git
  • uv
  • API-Key für Google Gemini, Z.AI GLM Coding Plan oder OpenAI; alternativ macOS mit installiertem Shortcut

1. Repository klonen und Abhängigkeiten installieren

git clone https://github.com/dein-user/autocommit.git ~/dev/auto-commit
cd~/dev/auto-commit
uv sync

uv legt die lokale .venv selbst an und hält sie anhand von pyproject.toml und uv.lock konsistent.

2. .env anlegen und Provider konfigurieren

Beispiel siehe env.example. Kopiere die Datei und trage deine Keys ein:

cp env.example .env

Wichtige Variablen:

  • COMMIT_MODE: provider (Standard) oder shortcuts
  • AI_PROVIDER: gemini (Standard), zai oder openai
  • Gemini: GEMINI_API_KEY, optional GEMINI_MODEL
  • Z.AI: ZAI_API_KEY, optional ZAI_MODEL, ZAI_BASE_URL (Standard: https://api.z.ai/api/coding/paas/v4Coding API, nicht die General API)
  • OpenAI: OPENAI_API_KEY, optional OPENAI_MODEL, optional OPENAI_BASE_URL
  • macOS Shortcuts: MACOS_SHORTCUT_NAME (Standard: auto-commit-chatgpt)
  • COMMIT_LANGUAGE: Sprache der Commit-Nachricht
  • NO_PUSH: true oder false (Standard: false) – Überspringt den git push nach dem Commit

macOS Shortcuts-Modus

Wenn du lieber die lokale macOS-Shortcuts-Integration verwenden willst, setze:

COMMIT_MODE=shortcuts
MACOS_SHORTCUT_NAME=auto-commit-chatgpt

Der Shortcut bekommt exakt denselben Prompt wie der eingebaute Modellpfad. Die Übergabe erfolgt als echter Texteingang über AppleScript und Shortcuts Events, nicht als Datei-Upload:

osascript - auto-commit-chatgpt /tmp/prompt.txt <<'APPLESCRIPT'onrun argvsetshortcutNametoitem1of argvsetinputPathtoitem2of argvsetpromptTexttoreadPOSIX file inputPathtellapplication"Shortcuts Events"returnrun shortcut shortcutName with input promptTextend tellendrunAPPLESCRIPT

Der Modus prüft beim Start:

  • dass das System auf macOS läuft
  • dass die shortcuts-CLI verfügbar ist
  • dass der konfigurierte Shortcut tatsächlich existiert

Shortcut-Link für auto-commit-chatgpt:

3. Skript als ausführbare Datei einrichten (optional)

cd~/dev/auto-commit
./scripts/install.sh

Das Skript führt uv sync aus, testet den CLI-Start und installiert bzw. aktualisiert ~/.local/bin/autocommit. Der installierte Wrapper nutzt dieses Repository nur als Tool-Quelle; ausgeführt wird autocommit immer im aktuellen Arbeitsverzeichnis.

Falls ~/.local/bin nicht im PATH ist:

echo'export PATH="$HOME/.local/bin:$PATH"'>>~/.zshrc # oder ~/.bashrcsource~/.zshrc

Provider-spezifische Hinweise

  • Google Gemini: Nutzt die google-genai API. Modell per .env (GEMINI_MODEL) oder CLI --model.
  • Z.AI GLM Coding Plan: OpenAI-kompatibel. Verwende die Coding-Endpoint https://api.z.ai/api/coding/paas/v4 und setze das Modell (GLM-4.7, GLM-4.6, GLM-4.5, GLM-4.5-air).
  • OpenAI: Nutzt die openai Python SDK (chat.completions). Standardmodell ist gpt-5.4-mini (per .envOPENAI_MODEL oder via --model). Eine aktuelle Modell-Liste (Model-IDs für --model/OPENAI_MODEL) findest du hier: https://platform.openai.com/docs/models

Verwendung

autocommit

Ohne installierten Wrapper geht es direkt aus dem Repo heraus:

uv run autocommit

CLI-Optionen:

  • --lang: Sprache der Commit-Nachricht
  • --mode: provider oder shortcuts
  • --provider: gemini, zai oder openai (überschreibt .env)
  • --model: Modellname für den gewählten Provider
  • --shortcut-name: Name des macOS-Shortcuts für --mode shortcuts
  • --zai-base-url: eigenes Base-URL für die Z.AI Coding API (Standard ist bereits gesetzt)
  • --openai-base-url: optional eigenes Base-URL für OpenAI
  • --style: Commit-Stil: sarcastic, humorous oder standard (default)
  • --no-push: Überspringt den git push nach dem Commit (kann auch via .env mit NO_PUSH=true gesetzt werden)

Beispiele:

  • Gemini nutzen (Standard):

    autocommit --lang Englisch --model gemini-2.5-flash
  • Z.AI GLM Coding Plan:

    autocommit --provider zai --model GLM-4.7 --zai-base-url https://api.z.ai/api/coding/paas/v4
  • OpenAI:

    autocommit --provider openai --model gpt-5.4-mini
  • macOS Shortcuts:

    autocommit --mode shortcuts --shortcut-name auto-commit-chatgpt
  • Sarcastic Commit-Style:

    autocommit --style sarcastic

Beispielausgabe

Untracked Files gefunden:
- new_script.py
- config.json
Möchtest du alle untracked Dateien hinzufügen? (y/n): y
Untracked Files wurden hinzugefügt.
Modifizierte, aber nicht gestagte Dateien gefunden:
- main.py
- utils.py
Möchtest du alle unstaged Dateien hinzufügen? (y/n): y
Unstaged Files wurden hinzugefügt.
Commit-Nachricht:
feat: Automatische Erkennung und AI-generierte Commit-Messages hinzugefügt
Dieses Commit fügt ein Skript hinzu, das geänderte und neue Dateien erkennt und eine AI-generierte Commit-Nachricht vorschlägt.
Öffne Editor für die Commit-Nachricht...
Commit abgeschlossen.
Kein 'origin' Remote gefunden. Überspringe 'git push'.

Fehlerbehebung

  • hash -r falls das Skript nach Installation nicht gefunden wird.
  • ./scripts/install.sh nach Updates oder bei Import-Problemen.
  • Normales Update: git pull, danach uv sync.
  • Neueste auflösbare Dependency-Versionen prüfen/übernehmen: uv lock --upgrade, danach uv sync und uv run python -m unittest discover -s tests.
  • --mode shortcuts funktioniert nur auf macOS und bricht sauber ab, wenn der konfigurierte Shortcut fehlt.
  • PATH prüfen: export PATH="$HOME/.local/bin:$PATH".

Lizenz

MIT License – Open Source & für eigene Zwecke anpassbar. 🚀

About

Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - uwe-schwarz/auto-commit: Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch · GitHub
Skip to content

Repository files navigation

AutoCommit

Beschreibung

autocommit ist ein Python-Skript, das geänderte Dateien in einem Git-Repository erkennt, ihre Diffs einsammelt und automatisch eine Commit-Nachricht erzeugt. Du kannst entweder den eingebauten Provider-Modus mit Google Gemini (über google-genai), Z.AI GLM Coding Plan (OpenAI-kompatibel, z. B. GLM-4.6) und OpenAI verwenden oder auf macOS einen Shortcuts-Modus nutzen. Danach öffnet sich dein Editor zur Feinjustierung, und auf Wunsch wird automatisch gepusht.

Das Skript unterstützt:

  • Erkennung von untracked und modifizierten, aber nicht gestagten Dateien
  • Manuelle Bestätigung zum Hinzufügen neuer oder geänderter Dateien
  • Automatische Commit-Generierung über Gemini, Z.AI GLM (Coding API), OpenAI oder macOS Shortcuts
  • Bearbeitung der Commit-Nachricht im bevorzugten Editor ($EDITOR oder vim)
  • Automatisches Committen und Pushen, falls ein origin-Remote vorhanden ist

Installation

Voraussetzungen

  • Python 3.11+
  • git
  • uv
  • API-Key für Google Gemini, Z.AI GLM Coding Plan oder OpenAI; alternativ macOS mit installiertem Shortcut

1. Repository klonen und Abhängigkeiten installieren

git clone https://github.com/dein-user/autocommit.git ~/dev/auto-commit
cd~/dev/auto-commit
uv sync

uv legt die lokale .venv selbst an und hält sie anhand von pyproject.toml und uv.lock konsistent.

2. .env anlegen und Provider konfigurieren

Beispiel siehe env.example. Kopiere die Datei und trage deine Keys ein:

cp env.example .env

Wichtige Variablen:

  • COMMIT_MODE: provider (Standard) oder shortcuts
  • AI_PROVIDER: gemini (Standard), zai oder openai
  • Gemini: GEMINI_API_KEY, optional GEMINI_MODEL
  • Z.AI: ZAI_API_KEY, optional ZAI_MODEL, ZAI_BASE_URL (Standard: https://api.z.ai/api/coding/paas/v4Coding API, nicht die General API)
  • OpenAI: OPENAI_API_KEY, optional OPENAI_MODEL, optional OPENAI_BASE_URL
  • macOS Shortcuts: MACOS_SHORTCUT_NAME (Standard: auto-commit-chatgpt)
  • COMMIT_LANGUAGE: Sprache der Commit-Nachricht
  • NO_PUSH: true oder false (Standard: false) – Überspringt den git push nach dem Commit

macOS Shortcuts-Modus

Wenn du lieber die lokale macOS-Shortcuts-Integration verwenden willst, setze:

COMMIT_MODE=shortcuts
MACOS_SHORTCUT_NAME=auto-commit-chatgpt

Der Shortcut bekommt exakt denselben Prompt wie der eingebaute Modellpfad. Die Übergabe erfolgt als echter Texteingang über AppleScript und Shortcuts Events, nicht als Datei-Upload:

osascript - auto-commit-chatgpt /tmp/prompt.txt <<'APPLESCRIPT'onrun argvsetshortcutNametoitem1of argvsetinputPathtoitem2of argvsetpromptTexttoreadPOSIX file inputPathtellapplication"Shortcuts Events"returnrun shortcut shortcutName with input promptTextend tellendrunAPPLESCRIPT

Der Modus prüft beim Start:

  • dass das System auf macOS läuft
  • dass die shortcuts-CLI verfügbar ist
  • dass der konfigurierte Shortcut tatsächlich existiert

Shortcut-Link für auto-commit-chatgpt:

3. Skript als ausführbare Datei einrichten (optional)

cd~/dev/auto-commit
./scripts/install.sh

Das Skript führt uv sync aus, testet den CLI-Start und installiert bzw. aktualisiert ~/.local/bin/autocommit. Der installierte Wrapper nutzt dieses Repository nur als Tool-Quelle; ausgeführt wird autocommit immer im aktuellen Arbeitsverzeichnis.

Falls ~/.local/bin nicht im PATH ist:

echo'export PATH="$HOME/.local/bin:$PATH"'>>~/.zshrc # oder ~/.bashrcsource~/.zshrc

Provider-spezifische Hinweise

  • Google Gemini: Nutzt die google-genai API. Modell per .env (GEMINI_MODEL) oder CLI --model.
  • Z.AI GLM Coding Plan: OpenAI-kompatibel. Verwende die Coding-Endpoint https://api.z.ai/api/coding/paas/v4 und setze das Modell (GLM-4.7, GLM-4.6, GLM-4.5, GLM-4.5-air).
  • OpenAI: Nutzt die openai Python SDK (chat.completions). Standardmodell ist gpt-5.4-mini (per .envOPENAI_MODEL oder via --model). Eine aktuelle Modell-Liste (Model-IDs für --model/OPENAI_MODEL) findest du hier: https://platform.openai.com/docs/models

Verwendung

autocommit

Ohne installierten Wrapper geht es direkt aus dem Repo heraus:

uv run autocommit

CLI-Optionen:

  • --lang: Sprache der Commit-Nachricht
  • --mode: provider oder shortcuts
  • --provider: gemini, zai oder openai (überschreibt .env)
  • --model: Modellname für den gewählten Provider
  • --shortcut-name: Name des macOS-Shortcuts für --mode shortcuts
  • --zai-base-url: eigenes Base-URL für die Z.AI Coding API (Standard ist bereits gesetzt)
  • --openai-base-url: optional eigenes Base-URL für OpenAI
  • --style: Commit-Stil: sarcastic, humorous oder standard (default)
  • --no-push: Überspringt den git push nach dem Commit (kann auch via .env mit NO_PUSH=true gesetzt werden)

Beispiele:

  • Gemini nutzen (Standard):

    autocommit --lang Englisch --model gemini-2.5-flash
  • Z.AI GLM Coding Plan:

    autocommit --provider zai --model GLM-4.7 --zai-base-url https://api.z.ai/api/coding/paas/v4
  • OpenAI:

    autocommit --provider openai --model gpt-5.4-mini
  • macOS Shortcuts:

    autocommit --mode shortcuts --shortcut-name auto-commit-chatgpt
  • Sarcastic Commit-Style:

    autocommit --style sarcastic

Beispielausgabe

Untracked Files gefunden:
- new_script.py
- config.json
Möchtest du alle untracked Dateien hinzufügen? (y/n): y
Untracked Files wurden hinzugefügt.
Modifizierte, aber nicht gestagte Dateien gefunden:
- main.py
- utils.py
Möchtest du alle unstaged Dateien hinzufügen? (y/n): y
Unstaged Files wurden hinzugefügt.
Commit-Nachricht:
feat: Automatische Erkennung und AI-generierte Commit-Messages hinzugefügt
Dieses Commit fügt ein Skript hinzu, das geänderte und neue Dateien erkennt und eine AI-generierte Commit-Nachricht vorschlägt.
Öffne Editor für die Commit-Nachricht...
Commit abgeschlossen.
Kein 'origin' Remote gefunden. Überspringe 'git push'.

Fehlerbehebung

  • hash -r falls das Skript nach Installation nicht gefunden wird.
  • ./scripts/install.sh nach Updates oder bei Import-Problemen.
  • Normales Update: git pull, danach uv sync.
  • Neueste auflösbare Dependency-Versionen prüfen/übernehmen: uv lock --upgrade, danach uv sync und uv run python -m unittest discover -s tests.
  • --mode shortcuts funktioniert nur auf macOS und bricht sauber ab, wenn der konfigurierte Shortcut fehlt.
  • PATH prüfen: export PATH="$HOME/.local/bin:$PATH".

Lizenz

MIT License – Open Source & für eigene Zwecke anpassbar. 🚀

About

Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - uwe-schwarz/auto-commit: Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch · GitHub
Skip to content

Repository files navigation

AutoCommit

Beschreibung

autocommit ist ein Python-Skript, das geänderte Dateien in einem Git-Repository erkennt, ihre Diffs einsammelt und automatisch eine Commit-Nachricht erzeugt. Du kannst entweder den eingebauten Provider-Modus mit Google Gemini (über google-genai), Z.AI GLM Coding Plan (OpenAI-kompatibel, z. B. GLM-4.6) und OpenAI verwenden oder auf macOS einen Shortcuts-Modus nutzen. Danach öffnet sich dein Editor zur Feinjustierung, und auf Wunsch wird automatisch gepusht.

Das Skript unterstützt:

  • Erkennung von untracked und modifizierten, aber nicht gestagten Dateien
  • Manuelle Bestätigung zum Hinzufügen neuer oder geänderter Dateien
  • Automatische Commit-Generierung über Gemini, Z.AI GLM (Coding API), OpenAI oder macOS Shortcuts
  • Bearbeitung der Commit-Nachricht im bevorzugten Editor ($EDITOR oder vim)
  • Automatisches Committen und Pushen, falls ein origin-Remote vorhanden ist

Installation

Voraussetzungen

  • Python 3.11+
  • git
  • uv
  • API-Key für Google Gemini, Z.AI GLM Coding Plan oder OpenAI; alternativ macOS mit installiertem Shortcut

1. Repository klonen und Abhängigkeiten installieren

git clone https://github.com/dein-user/autocommit.git ~/dev/auto-commit
cd~/dev/auto-commit
uv sync

uv legt die lokale .venv selbst an und hält sie anhand von pyproject.toml und uv.lock konsistent.

2. .env anlegen und Provider konfigurieren

Beispiel siehe env.example. Kopiere die Datei und trage deine Keys ein:

cp env.example .env

Wichtige Variablen:

  • COMMIT_MODE: provider (Standard) oder shortcuts
  • AI_PROVIDER: gemini (Standard), zai oder openai
  • Gemini: GEMINI_API_KEY, optional GEMINI_MODEL
  • Z.AI: ZAI_API_KEY, optional ZAI_MODEL, ZAI_BASE_URL (Standard: https://api.z.ai/api/coding/paas/v4Coding API, nicht die General API)
  • OpenAI: OPENAI_API_KEY, optional OPENAI_MODEL, optional OPENAI_BASE_URL
  • macOS Shortcuts: MACOS_SHORTCUT_NAME (Standard: auto-commit-chatgpt)
  • COMMIT_LANGUAGE: Sprache der Commit-Nachricht
  • NO_PUSH: true oder false (Standard: false) – Überspringt den git push nach dem Commit

macOS Shortcuts-Modus

Wenn du lieber die lokale macOS-Shortcuts-Integration verwenden willst, setze:

COMMIT_MODE=shortcuts
MACOS_SHORTCUT_NAME=auto-commit-chatgpt

Der Shortcut bekommt exakt denselben Prompt wie der eingebaute Modellpfad. Die Übergabe erfolgt als echter Texteingang über AppleScript und Shortcuts Events, nicht als Datei-Upload:

osascript - auto-commit-chatgpt /tmp/prompt.txt <<'APPLESCRIPT'onrun argvsetshortcutNametoitem1of argvsetinputPathtoitem2of argvsetpromptTexttoreadPOSIX file inputPathtellapplication"Shortcuts Events"returnrun shortcut shortcutName with input promptTextend tellendrunAPPLESCRIPT

Der Modus prüft beim Start:

  • dass das System auf macOS läuft
  • dass die shortcuts-CLI verfügbar ist
  • dass der konfigurierte Shortcut tatsächlich existiert

Shortcut-Link für auto-commit-chatgpt:

3. Skript als ausführbare Datei einrichten (optional)

cd~/dev/auto-commit
./scripts/install.sh

Das Skript führt uv sync aus, testet den CLI-Start und installiert bzw. aktualisiert ~/.local/bin/autocommit. Der installierte Wrapper nutzt dieses Repository nur als Tool-Quelle; ausgeführt wird autocommit immer im aktuellen Arbeitsverzeichnis.

Falls ~/.local/bin nicht im PATH ist:

echo'export PATH="$HOME/.local/bin:$PATH"'>>~/.zshrc # oder ~/.bashrcsource~/.zshrc

Provider-spezifische Hinweise

  • Google Gemini: Nutzt die google-genai API. Modell per .env (GEMINI_MODEL) oder CLI --model.
  • Z.AI GLM Coding Plan: OpenAI-kompatibel. Verwende die Coding-Endpoint https://api.z.ai/api/coding/paas/v4 und setze das Modell (GLM-4.7, GLM-4.6, GLM-4.5, GLM-4.5-air).
  • OpenAI: Nutzt die openai Python SDK (chat.completions). Standardmodell ist gpt-5.4-mini (per .envOPENAI_MODEL oder via --model). Eine aktuelle Modell-Liste (Model-IDs für --model/OPENAI_MODEL) findest du hier: https://platform.openai.com/docs/models

Verwendung

autocommit

Ohne installierten Wrapper geht es direkt aus dem Repo heraus:

uv run autocommit

CLI-Optionen:

  • --lang: Sprache der Commit-Nachricht
  • --mode: provider oder shortcuts
  • --provider: gemini, zai oder openai (überschreibt .env)
  • --model: Modellname für den gewählten Provider
  • --shortcut-name: Name des macOS-Shortcuts für --mode shortcuts
  • --zai-base-url: eigenes Base-URL für die Z.AI Coding API (Standard ist bereits gesetzt)
  • --openai-base-url: optional eigenes Base-URL für OpenAI
  • --style: Commit-Stil: sarcastic, humorous oder standard (default)
  • --no-push: Überspringt den git push nach dem Commit (kann auch via .env mit NO_PUSH=true gesetzt werden)

Beispiele:

  • Gemini nutzen (Standard):

    autocommit --lang Englisch --model gemini-2.5-flash
  • Z.AI GLM Coding Plan:

    autocommit --provider zai --model GLM-4.7 --zai-base-url https://api.z.ai/api/coding/paas/v4
  • OpenAI:

    autocommit --provider openai --model gpt-5.4-mini
  • macOS Shortcuts:

    autocommit --mode shortcuts --shortcut-name auto-commit-chatgpt
  • Sarcastic Commit-Style:

    autocommit --style sarcastic

Beispielausgabe

Untracked Files gefunden:
- new_script.py
- config.json
Möchtest du alle untracked Dateien hinzufügen? (y/n): y
Untracked Files wurden hinzugefügt.
Modifizierte, aber nicht gestagte Dateien gefunden:
- main.py
- utils.py
Möchtest du alle unstaged Dateien hinzufügen? (y/n): y
Unstaged Files wurden hinzugefügt.
Commit-Nachricht:
feat: Automatische Erkennung und AI-generierte Commit-Messages hinzugefügt
Dieses Commit fügt ein Skript hinzu, das geänderte und neue Dateien erkennt und eine AI-generierte Commit-Nachricht vorschlägt.
Öffne Editor für die Commit-Nachricht...
Commit abgeschlossen.
Kein 'origin' Remote gefunden. Überspringe 'git push'.

Fehlerbehebung

  • hash -r falls das Skript nach Installation nicht gefunden wird.
  • ./scripts/install.sh nach Updates oder bei Import-Problemen.
  • Normales Update: git pull, danach uv sync.
  • Neueste auflösbare Dependency-Versionen prüfen/übernehmen: uv lock --upgrade, danach uv sync und uv run python -m unittest discover -s tests.
  • --mode shortcuts funktioniert nur auf macOS und bricht sauber ab, wenn der konfigurierte Shortcut fehlt.
  • PATH prüfen: export PATH="$HOME/.local/bin:$PATH".

Lizenz

MIT License – Open Source & für eigene Zwecke anpassbar. 🚀

About

Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - uwe-schwarz/auto-commit: Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch · GitHub
Skip to content

Repository files navigation

AutoCommit

Beschreibung

autocommit ist ein Python-Skript, das geänderte Dateien in einem Git-Repository erkennt, ihre Diffs einsammelt und automatisch eine Commit-Nachricht erzeugt. Du kannst entweder den eingebauten Provider-Modus mit Google Gemini (über google-genai), Z.AI GLM Coding Plan (OpenAI-kompatibel, z. B. GLM-4.6) und OpenAI verwenden oder auf macOS einen Shortcuts-Modus nutzen. Danach öffnet sich dein Editor zur Feinjustierung, und auf Wunsch wird automatisch gepusht.

Das Skript unterstützt:

  • Erkennung von untracked und modifizierten, aber nicht gestagten Dateien
  • Manuelle Bestätigung zum Hinzufügen neuer oder geänderter Dateien
  • Automatische Commit-Generierung über Gemini, Z.AI GLM (Coding API), OpenAI oder macOS Shortcuts
  • Bearbeitung der Commit-Nachricht im bevorzugten Editor ($EDITOR oder vim)
  • Automatisches Committen und Pushen, falls ein origin-Remote vorhanden ist

Installation

Voraussetzungen

  • Python 3.11+
  • git
  • uv
  • API-Key für Google Gemini, Z.AI GLM Coding Plan oder OpenAI; alternativ macOS mit installiertem Shortcut

1. Repository klonen und Abhängigkeiten installieren

git clone https://github.com/dein-user/autocommit.git ~/dev/auto-commit
cd~/dev/auto-commit
uv sync

uv legt die lokale .venv selbst an und hält sie anhand von pyproject.toml und uv.lock konsistent.

2. .env anlegen und Provider konfigurieren

Beispiel siehe env.example. Kopiere die Datei und trage deine Keys ein:

cp env.example .env

Wichtige Variablen:

  • COMMIT_MODE: provider (Standard) oder shortcuts
  • AI_PROVIDER: gemini (Standard), zai oder openai
  • Gemini: GEMINI_API_KEY, optional GEMINI_MODEL
  • Z.AI: ZAI_API_KEY, optional ZAI_MODEL, ZAI_BASE_URL (Standard: https://api.z.ai/api/coding/paas/v4Coding API, nicht die General API)
  • OpenAI: OPENAI_API_KEY, optional OPENAI_MODEL, optional OPENAI_BASE_URL
  • macOS Shortcuts: MACOS_SHORTCUT_NAME (Standard: auto-commit-chatgpt)
  • COMMIT_LANGUAGE: Sprache der Commit-Nachricht
  • NO_PUSH: true oder false (Standard: false) – Überspringt den git push nach dem Commit

macOS Shortcuts-Modus

Wenn du lieber die lokale macOS-Shortcuts-Integration verwenden willst, setze:

COMMIT_MODE=shortcuts
MACOS_SHORTCUT_NAME=auto-commit-chatgpt

Der Shortcut bekommt exakt denselben Prompt wie der eingebaute Modellpfad. Die Übergabe erfolgt als echter Texteingang über AppleScript und Shortcuts Events, nicht als Datei-Upload:

osascript - auto-commit-chatgpt /tmp/prompt.txt <<'APPLESCRIPT'onrun argvsetshortcutNametoitem1of argvsetinputPathtoitem2of argvsetpromptTexttoreadPOSIX file inputPathtellapplication"Shortcuts Events"returnrun shortcut shortcutName with input promptTextend tellendrunAPPLESCRIPT

Der Modus prüft beim Start:

  • dass das System auf macOS läuft
  • dass die shortcuts-CLI verfügbar ist
  • dass der konfigurierte Shortcut tatsächlich existiert

Shortcut-Link für auto-commit-chatgpt:

3. Skript als ausführbare Datei einrichten (optional)

cd~/dev/auto-commit
./scripts/install.sh

Das Skript führt uv sync aus, testet den CLI-Start und installiert bzw. aktualisiert ~/.local/bin/autocommit. Der installierte Wrapper nutzt dieses Repository nur als Tool-Quelle; ausgeführt wird autocommit immer im aktuellen Arbeitsverzeichnis.

Falls ~/.local/bin nicht im PATH ist:

echo'export PATH="$HOME/.local/bin:$PATH"'>>~/.zshrc # oder ~/.bashrcsource~/.zshrc

Provider-spezifische Hinweise

  • Google Gemini: Nutzt die google-genai API. Modell per .env (GEMINI_MODEL) oder CLI --model.
  • Z.AI GLM Coding Plan: OpenAI-kompatibel. Verwende die Coding-Endpoint https://api.z.ai/api/coding/paas/v4 und setze das Modell (GLM-4.7, GLM-4.6, GLM-4.5, GLM-4.5-air).
  • OpenAI: Nutzt die openai Python SDK (chat.completions). Standardmodell ist gpt-5.4-mini (per .envOPENAI_MODEL oder via --model). Eine aktuelle Modell-Liste (Model-IDs für --model/OPENAI_MODEL) findest du hier: https://platform.openai.com/docs/models

Verwendung

autocommit

Ohne installierten Wrapper geht es direkt aus dem Repo heraus:

uv run autocommit

CLI-Optionen:

  • --lang: Sprache der Commit-Nachricht
  • --mode: provider oder shortcuts
  • --provider: gemini, zai oder openai (überschreibt .env)
  • --model: Modellname für den gewählten Provider
  • --shortcut-name: Name des macOS-Shortcuts für --mode shortcuts
  • --zai-base-url: eigenes Base-URL für die Z.AI Coding API (Standard ist bereits gesetzt)
  • --openai-base-url: optional eigenes Base-URL für OpenAI
  • --style: Commit-Stil: sarcastic, humorous oder standard (default)
  • --no-push: Überspringt den git push nach dem Commit (kann auch via .env mit NO_PUSH=true gesetzt werden)

Beispiele:

  • Gemini nutzen (Standard):

    autocommit --lang Englisch --model gemini-2.5-flash
  • Z.AI GLM Coding Plan:

    autocommit --provider zai --model GLM-4.7 --zai-base-url https://api.z.ai/api/coding/paas/v4
  • OpenAI:

    autocommit --provider openai --model gpt-5.4-mini
  • macOS Shortcuts:

    autocommit --mode shortcuts --shortcut-name auto-commit-chatgpt
  • Sarcastic Commit-Style:

    autocommit --style sarcastic

Beispielausgabe

Untracked Files gefunden:
- new_script.py
- config.json
Möchtest du alle untracked Dateien hinzufügen? (y/n): y
Untracked Files wurden hinzugefügt.
Modifizierte, aber nicht gestagte Dateien gefunden:
- main.py
- utils.py
Möchtest du alle unstaged Dateien hinzufügen? (y/n): y
Unstaged Files wurden hinzugefügt.
Commit-Nachricht:
feat: Automatische Erkennung und AI-generierte Commit-Messages hinzugefügt
Dieses Commit fügt ein Skript hinzu, das geänderte und neue Dateien erkennt und eine AI-generierte Commit-Nachricht vorschlägt.
Öffne Editor für die Commit-Nachricht...
Commit abgeschlossen.
Kein 'origin' Remote gefunden. Überspringe 'git push'.

Fehlerbehebung

  • hash -r falls das Skript nach Installation nicht gefunden wird.
  • ./scripts/install.sh nach Updates oder bei Import-Problemen.
  • Normales Update: git pull, danach uv sync.
  • Neueste auflösbare Dependency-Versionen prüfen/übernehmen: uv lock --upgrade, danach uv sync und uv run python -m unittest discover -s tests.
  • --mode shortcuts funktioniert nur auf macOS und bricht sauber ab, wenn der konfigurierte Shortcut fehlt.
  • PATH prüfen: export PATH="$HOME/.local/bin:$PATH".

Lizenz

MIT License – Open Source & für eigene Zwecke anpassbar. 🚀

About

Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - uwe-schwarz/auto-commit: Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch · GitHub
Skip to content

Repository files navigation

AutoCommit

Beschreibung

autocommit ist ein Python-Skript, das geänderte Dateien in einem Git-Repository erkennt, ihre Diffs einsammelt und automatisch eine Commit-Nachricht erzeugt. Du kannst entweder den eingebauten Provider-Modus mit Google Gemini (über google-genai), Z.AI GLM Coding Plan (OpenAI-kompatibel, z. B. GLM-4.6) und OpenAI verwenden oder auf macOS einen Shortcuts-Modus nutzen. Danach öffnet sich dein Editor zur Feinjustierung, und auf Wunsch wird automatisch gepusht.

Das Skript unterstützt:

  • Erkennung von untracked und modifizierten, aber nicht gestagten Dateien
  • Manuelle Bestätigung zum Hinzufügen neuer oder geänderter Dateien
  • Automatische Commit-Generierung über Gemini, Z.AI GLM (Coding API), OpenAI oder macOS Shortcuts
  • Bearbeitung der Commit-Nachricht im bevorzugten Editor ($EDITOR oder vim)
  • Automatisches Committen und Pushen, falls ein origin-Remote vorhanden ist

Installation

Voraussetzungen

  • Python 3.11+
  • git
  • uv
  • API-Key für Google Gemini, Z.AI GLM Coding Plan oder OpenAI; alternativ macOS mit installiertem Shortcut

1. Repository klonen und Abhängigkeiten installieren

git clone https://github.com/dein-user/autocommit.git ~/dev/auto-commit
cd~/dev/auto-commit
uv sync

uv legt die lokale .venv selbst an und hält sie anhand von pyproject.toml und uv.lock konsistent.

2. .env anlegen und Provider konfigurieren

Beispiel siehe env.example. Kopiere die Datei und trage deine Keys ein:

cp env.example .env

Wichtige Variablen:

  • COMMIT_MODE: provider (Standard) oder shortcuts
  • AI_PROVIDER: gemini (Standard), zai oder openai
  • Gemini: GEMINI_API_KEY, optional GEMINI_MODEL
  • Z.AI: ZAI_API_KEY, optional ZAI_MODEL, ZAI_BASE_URL (Standard: https://api.z.ai/api/coding/paas/v4Coding API, nicht die General API)
  • OpenAI: OPENAI_API_KEY, optional OPENAI_MODEL, optional OPENAI_BASE_URL
  • macOS Shortcuts: MACOS_SHORTCUT_NAME (Standard: auto-commit-chatgpt)
  • COMMIT_LANGUAGE: Sprache der Commit-Nachricht
  • NO_PUSH: true oder false (Standard: false) – Überspringt den git push nach dem Commit

macOS Shortcuts-Modus

Wenn du lieber die lokale macOS-Shortcuts-Integration verwenden willst, setze:

COMMIT_MODE=shortcuts
MACOS_SHORTCUT_NAME=auto-commit-chatgpt

Der Shortcut bekommt exakt denselben Prompt wie der eingebaute Modellpfad. Die Übergabe erfolgt als echter Texteingang über AppleScript und Shortcuts Events, nicht als Datei-Upload:

osascript - auto-commit-chatgpt /tmp/prompt.txt <<'APPLESCRIPT'onrun argvsetshortcutNametoitem1of argvsetinputPathtoitem2of argvsetpromptTexttoreadPOSIX file inputPathtellapplication"Shortcuts Events"returnrun shortcut shortcutName with input promptTextend tellendrunAPPLESCRIPT

Der Modus prüft beim Start:

  • dass das System auf macOS läuft
  • dass die shortcuts-CLI verfügbar ist
  • dass der konfigurierte Shortcut tatsächlich existiert

Shortcut-Link für auto-commit-chatgpt:

3. Skript als ausführbare Datei einrichten (optional)

cd~/dev/auto-commit
./scripts/install.sh

Das Skript führt uv sync aus, testet den CLI-Start und installiert bzw. aktualisiert ~/.local/bin/autocommit. Der installierte Wrapper nutzt dieses Repository nur als Tool-Quelle; ausgeführt wird autocommit immer im aktuellen Arbeitsverzeichnis.

Falls ~/.local/bin nicht im PATH ist:

echo'export PATH="$HOME/.local/bin:$PATH"'>>~/.zshrc # oder ~/.bashrcsource~/.zshrc

Provider-spezifische Hinweise

  • Google Gemini: Nutzt die google-genai API. Modell per .env (GEMINI_MODEL) oder CLI --model.
  • Z.AI GLM Coding Plan: OpenAI-kompatibel. Verwende die Coding-Endpoint https://api.z.ai/api/coding/paas/v4 und setze das Modell (GLM-4.7, GLM-4.6, GLM-4.5, GLM-4.5-air).
  • OpenAI: Nutzt die openai Python SDK (chat.completions). Standardmodell ist gpt-5.4-mini (per .envOPENAI_MODEL oder via --model). Eine aktuelle Modell-Liste (Model-IDs für --model/OPENAI_MODEL) findest du hier: https://platform.openai.com/docs/models

Verwendung

autocommit

Ohne installierten Wrapper geht es direkt aus dem Repo heraus:

uv run autocommit

CLI-Optionen:

  • --lang: Sprache der Commit-Nachricht
  • --mode: provider oder shortcuts
  • --provider: gemini, zai oder openai (überschreibt .env)
  • --model: Modellname für den gewählten Provider
  • --shortcut-name: Name des macOS-Shortcuts für --mode shortcuts
  • --zai-base-url: eigenes Base-URL für die Z.AI Coding API (Standard ist bereits gesetzt)
  • --openai-base-url: optional eigenes Base-URL für OpenAI
  • --style: Commit-Stil: sarcastic, humorous oder standard (default)
  • --no-push: Überspringt den git push nach dem Commit (kann auch via .env mit NO_PUSH=true gesetzt werden)

Beispiele:

  • Gemini nutzen (Standard):

    autocommit --lang Englisch --model gemini-2.5-flash
  • Z.AI GLM Coding Plan:

    autocommit --provider zai --model GLM-4.7 --zai-base-url https://api.z.ai/api/coding/paas/v4
  • OpenAI:

    autocommit --provider openai --model gpt-5.4-mini
  • macOS Shortcuts:

    autocommit --mode shortcuts --shortcut-name auto-commit-chatgpt
  • Sarcastic Commit-Style:

    autocommit --style sarcastic

Beispielausgabe

Untracked Files gefunden:
- new_script.py
- config.json
Möchtest du alle untracked Dateien hinzufügen? (y/n): y
Untracked Files wurden hinzugefügt.
Modifizierte, aber nicht gestagte Dateien gefunden:
- main.py
- utils.py
Möchtest du alle unstaged Dateien hinzufügen? (y/n): y
Unstaged Files wurden hinzugefügt.
Commit-Nachricht:
feat: Automatische Erkennung und AI-generierte Commit-Messages hinzugefügt
Dieses Commit fügt ein Skript hinzu, das geänderte und neue Dateien erkennt und eine AI-generierte Commit-Nachricht vorschlägt.
Öffne Editor für die Commit-Nachricht...
Commit abgeschlossen.
Kein 'origin' Remote gefunden. Überspringe 'git push'.

Fehlerbehebung

  • hash -r falls das Skript nach Installation nicht gefunden wird.
  • ./scripts/install.sh nach Updates oder bei Import-Problemen.
  • Normales Update: git pull, danach uv sync.
  • Neueste auflösbare Dependency-Versionen prüfen/übernehmen: uv lock --upgrade, danach uv sync und uv run python -m unittest discover -s tests.
  • --mode shortcuts funktioniert nur auf macOS und bricht sauber ab, wenn der konfigurierte Shortcut fehlt.
  • PATH prüfen: export PATH="$HOME/.local/bin:$PATH".

Lizenz

MIT License – Open Source & für eigene Zwecke anpassbar. 🚀

About

Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - uwe-schwarz/auto-commit: Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch · GitHub
Skip to content

Repository files navigation

AutoCommit

Beschreibung

autocommit ist ein Python-Skript, das geänderte Dateien in einem Git-Repository erkennt, ihre Diffs einsammelt und automatisch eine Commit-Nachricht erzeugt. Du kannst entweder den eingebauten Provider-Modus mit Google Gemini (über google-genai), Z.AI GLM Coding Plan (OpenAI-kompatibel, z. B. GLM-4.6) und OpenAI verwenden oder auf macOS einen Shortcuts-Modus nutzen. Danach öffnet sich dein Editor zur Feinjustierung, und auf Wunsch wird automatisch gepusht.

Das Skript unterstützt:

  • Erkennung von untracked und modifizierten, aber nicht gestagten Dateien
  • Manuelle Bestätigung zum Hinzufügen neuer oder geänderter Dateien
  • Automatische Commit-Generierung über Gemini, Z.AI GLM (Coding API), OpenAI oder macOS Shortcuts
  • Bearbeitung der Commit-Nachricht im bevorzugten Editor ($EDITOR oder vim)
  • Automatisches Committen und Pushen, falls ein origin-Remote vorhanden ist

Installation

Voraussetzungen

  • Python 3.11+
  • git
  • uv
  • API-Key für Google Gemini, Z.AI GLM Coding Plan oder OpenAI; alternativ macOS mit installiertem Shortcut

1. Repository klonen und Abhängigkeiten installieren

git clone https://github.com/dein-user/autocommit.git ~/dev/auto-commit
cd~/dev/auto-commit
uv sync

uv legt die lokale .venv selbst an und hält sie anhand von pyproject.toml und uv.lock konsistent.

2. .env anlegen und Provider konfigurieren

Beispiel siehe env.example. Kopiere die Datei und trage deine Keys ein:

cp env.example .env

Wichtige Variablen:

  • COMMIT_MODE: provider (Standard) oder shortcuts
  • AI_PROVIDER: gemini (Standard), zai oder openai
  • Gemini: GEMINI_API_KEY, optional GEMINI_MODEL
  • Z.AI: ZAI_API_KEY, optional ZAI_MODEL, ZAI_BASE_URL (Standard: https://api.z.ai/api/coding/paas/v4Coding API, nicht die General API)
  • OpenAI: OPENAI_API_KEY, optional OPENAI_MODEL, optional OPENAI_BASE_URL
  • macOS Shortcuts: MACOS_SHORTCUT_NAME (Standard: auto-commit-chatgpt)
  • COMMIT_LANGUAGE: Sprache der Commit-Nachricht
  • NO_PUSH: true oder false (Standard: false) – Überspringt den git push nach dem Commit

macOS Shortcuts-Modus

Wenn du lieber die lokale macOS-Shortcuts-Integration verwenden willst, setze:

COMMIT_MODE=shortcuts
MACOS_SHORTCUT_NAME=auto-commit-chatgpt

Der Shortcut bekommt exakt denselben Prompt wie der eingebaute Modellpfad. Die Übergabe erfolgt als echter Texteingang über AppleScript und Shortcuts Events, nicht als Datei-Upload:

osascript - auto-commit-chatgpt /tmp/prompt.txt <<'APPLESCRIPT'onrun argvsetshortcutNametoitem1of argvsetinputPathtoitem2of argvsetpromptTexttoreadPOSIX file inputPathtellapplication"Shortcuts Events"returnrun shortcut shortcutName with input promptTextend tellendrunAPPLESCRIPT

Der Modus prüft beim Start:

  • dass das System auf macOS läuft
  • dass die shortcuts-CLI verfügbar ist
  • dass der konfigurierte Shortcut tatsächlich existiert

Shortcut-Link für auto-commit-chatgpt:

3. Skript als ausführbare Datei einrichten (optional)

cd~/dev/auto-commit
./scripts/install.sh

Das Skript führt uv sync aus, testet den CLI-Start und installiert bzw. aktualisiert ~/.local/bin/autocommit. Der installierte Wrapper nutzt dieses Repository nur als Tool-Quelle; ausgeführt wird autocommit immer im aktuellen Arbeitsverzeichnis.

Falls ~/.local/bin nicht im PATH ist:

echo'export PATH="$HOME/.local/bin:$PATH"'>>~/.zshrc # oder ~/.bashrcsource~/.zshrc

Provider-spezifische Hinweise

  • Google Gemini: Nutzt die google-genai API. Modell per .env (GEMINI_MODEL) oder CLI --model.
  • Z.AI GLM Coding Plan: OpenAI-kompatibel. Verwende die Coding-Endpoint https://api.z.ai/api/coding/paas/v4 und setze das Modell (GLM-4.7, GLM-4.6, GLM-4.5, GLM-4.5-air).
  • OpenAI: Nutzt die openai Python SDK (chat.completions). Standardmodell ist gpt-5.4-mini (per .envOPENAI_MODEL oder via --model). Eine aktuelle Modell-Liste (Model-IDs für --model/OPENAI_MODEL) findest du hier: https://platform.openai.com/docs/models

Verwendung

autocommit

Ohne installierten Wrapper geht es direkt aus dem Repo heraus:

uv run autocommit

CLI-Optionen:

  • --lang: Sprache der Commit-Nachricht
  • --mode: provider oder shortcuts
  • --provider: gemini, zai oder openai (überschreibt .env)
  • --model: Modellname für den gewählten Provider
  • --shortcut-name: Name des macOS-Shortcuts für --mode shortcuts
  • --zai-base-url: eigenes Base-URL für die Z.AI Coding API (Standard ist bereits gesetzt)
  • --openai-base-url: optional eigenes Base-URL für OpenAI
  • --style: Commit-Stil: sarcastic, humorous oder standard (default)
  • --no-push: Überspringt den git push nach dem Commit (kann auch via .env mit NO_PUSH=true gesetzt werden)

Beispiele:

  • Gemini nutzen (Standard):

    autocommit --lang Englisch --model gemini-2.5-flash
  • Z.AI GLM Coding Plan:

    autocommit --provider zai --model GLM-4.7 --zai-base-url https://api.z.ai/api/coding/paas/v4
  • OpenAI:

    autocommit --provider openai --model gpt-5.4-mini
  • macOS Shortcuts:

    autocommit --mode shortcuts --shortcut-name auto-commit-chatgpt
  • Sarcastic Commit-Style:

    autocommit --style sarcastic

Beispielausgabe

Untracked Files gefunden:
- new_script.py
- config.json
Möchtest du alle untracked Dateien hinzufügen? (y/n): y
Untracked Files wurden hinzugefügt.
Modifizierte, aber nicht gestagte Dateien gefunden:
- main.py
- utils.py
Möchtest du alle unstaged Dateien hinzufügen? (y/n): y
Unstaged Files wurden hinzugefügt.
Commit-Nachricht:
feat: Automatische Erkennung und AI-generierte Commit-Messages hinzugefügt
Dieses Commit fügt ein Skript hinzu, das geänderte und neue Dateien erkennt und eine AI-generierte Commit-Nachricht vorschlägt.
Öffne Editor für die Commit-Nachricht...
Commit abgeschlossen.
Kein 'origin' Remote gefunden. Überspringe 'git push'.

Fehlerbehebung

  • hash -r falls das Skript nach Installation nicht gefunden wird.
  • ./scripts/install.sh nach Updates oder bei Import-Problemen.
  • Normales Update: git pull, danach uv sync.
  • Neueste auflösbare Dependency-Versionen prüfen/übernehmen: uv lock --upgrade, danach uv sync und uv run python -m unittest discover -s tests.
  • --mode shortcuts funktioniert nur auf macOS und bricht sauber ab, wenn der konfigurierte Shortcut fehlt.
  • PATH prüfen: export PATH="$HOME/.local/bin:$PATH".

Lizenz

MIT License – Open Source & für eigene Zwecke anpassbar. 🚀

About

Generiere automatisch mittels Gemini AI Commit-Meldungen in deutsch

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages