English | 中文 | 日本語 | Français | Español | العربية | 한국어 | Português | Русский | Deutsch
Die KI schreibt Ihre Commit-Nachrichten. Sie müssen nur prüfen und bestätigen.
Keine API-Schlüssel. Keine Cloud-Dienste. Keine Abonnements. Reine On-Device-Intelligenz, die Ihre staged Änderungen analysiert und sofort Conventional Commits generiert.
Haben Sie schon einmal auf git commit gestarrt und gewusst, was Sie schreiben sollen? aic beendet das für immer.
$ git add .
$ aic
🤖 aic — AI Commit Message Generator
─────────────────────────────────────
✓ Found 4 staged file(s)
╭──────────────────────────────────────────────────╮
│ │
│ 🤖 aic │
│ │
│ 📝 Suggested Commit Message │
│ ──────────────────────────────────── │
│ │
│ feat(auth): add OAuth2 login flow │
│ │
│ 📁 Files Changed (4) │
│ ──────────────────────────────────── │
│ 📄 src/auth/oauth.ts │
│ 📄 src/auth/callback.ts │
│ 📄 src/routes/auth.ts │
│ 📦 package.json │
│ │
│ ──────────────────────────────────── │
│ [Enter] Commit [E] Edit [C] Cancel │
│ │
╰──────────────────────────────────────────────────╯Das ist alles. aic hat den Diff analysiert, neue Dateien erkannt, die Sprache identifiziert und einen perfekten Conventional Commit generiert — alles in Millisekunden, komplett offline.
npx ai-commitnpm install -g ai-commitDann überall verwenden:
git add .
aicDer Kurzalias aic funktioniert überall — es ist derselbe Befehl wie ai-commit.
# Änderungen stagen, dann:
aic
# Oder den vollständigen Namen verwenden:
ai-commit# Bestimmten Commit-Typ erzwingen
aic --type feat
# Bereich hinzufügen
aic --scope auth
# Vorschau ohne Commit
aic --dry-run
# Benutzerdefinierte Nachricht (umgeht KI)
aic -m "Ihre benutzerdefinierte Nachricht"
# Git-Hooks überspringen
aic --no-verify
# Auto-Commit ohne Bestätigung
aic --yes
# Als JSON ausgeben (für CI-Pipelines)
aic --json| Option | Kurz | Beschreibung | Standard |
|---|---|---|---|
--type <type> |
-t |
Commit-Typ erzwingen | Auto-erkannt |
--scope <scope> |
-s |
Commit-Bereich setzen | Auto-erkannt |
--message <msg> |
-m |
Benutzerdefinierte Nachricht (umgeht KI) | — |
--dry-run |
-d |
Nur Vorschau, kein Commit | false |
--no-verify |
— | Git-Hooks überspringen | false |
--yes |
-y |
Bestätigungs-Prompt überspringen | false |
--json |
— | Ergebnis als JSON ausgeben | false |
--version |
-V |
Version anzeigen | — |
--help |
-h |
Hilfe anzeigen | — |
aic verwendet regelbasierte Diff-Analyse — keine API-Schlüssel, keine Netzwerkaufrufe, keine LLMs. Hier passiert beim Ausführen:
┌─────────────────────────────────────────────────────┐
│ 1. Read staged changes (git diff --cached) │
│ 2. Parse diff → detect new/deleted/modified files │
│ 3. Detect languages from file extensions │
│ 4. Classify change type from file patterns: │
│ • New .ts/.tsx/.js/.jsx files → feat │
│ • Test files (*.test.*, __tests__/) → test │
│ • Markdown files → docs │
│ • package.json → chore │
│ • .github/ → ci │
│ • Bug-related patterns → fix │
│ • Default → refactor │
│ 5. Detect scope from common directory │
│ 6. Generate natural language description │
│ 7. Format as Conventional Commit │
│ 8. Display in beautiful terminal UI │
└─────────────────────────────────────────────────────┘
| Muster | Erkannter Typ |
|---|---|
Neue .ts, .tsx, .js, .jsx, .py, .go, .rs Dateien |
feat |
*.test.*, *.spec.*, __tests__/, test/, tests/ |
test |
*.md, *.mdx, docs/, CHANGELOG, LICENSE |
docs |
package.json, yarn.lock, pnpm-lock.yaml |
chore |
.github/, .gitlab-ci, .circleci/ |
ci |
*.css, *.scss, *.sass, *.less |
style |
webpack, rollup, vite, tsconfig |
build |
Dateien mit fix, bug, hotfix im Namen |
fix |
| Alles andere | refactor |
aic generiert Nachrichten gemäß der Conventional Commits-Spezifikation:
<type>[optional scope]: <description>
[optional body]
| Typ | Wann verwenden |
|---|---|
feat |
Eine neue Funktion |
fix |
Ein Bugfix |
docs |
Nur Dokumentation |
style |
Formatierung, fehlende Semikolons usw. |
refactor |
Code-Änderung, die weder Bugfix noch Feature ist |
perf |
Performance-Verbesserung |
test |
Tests hinzufügen oder reparieren |
chore |
Build-Prozess oder Hilfstools |
ci |
CI-Konfiguration |
build |
Änderungen am Build-System |
feat(auth): add OAuth2 login flow
fix(api): handle null response from user endpoint
docs: update installation guide
refactor(utils): simplify date formatting functions
test(auth): add integration tests for login flow
chore: update dependencies to latest versions
ci: add Node 20 to test matrix
Verwenden Sie aic in Ihrer CI-Pipeline, um Commit-Nachrichten automatisch zu generieren:
# .github/workflows/auto-commit.yml
name: Auto Commit
on:
push:
branches: [main]
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install aic
run: npm install -g ai-commit
- name: Run formatter
run: npm run format
- name: Commit changes
run: |
git add .
aic --yes --json
env:
GIT_AUTHOR_NAME: CI Bot
GIT_COMMITTER_NAME: CI Bot$ aic --json
{
"message": "feat(auth): add OAuth2 login flow",
"files": ["src/auth/oauth.ts", "src/auth/callback.ts"],
"dryRun": false
}# Repository klonen
git clone https://github.com/liangzhengtao/ai-commit.git
cd ai-commit
# Abhängigkeiten installieren
npm install
# Tests ausführen
npm test
# Lokal ausprobieren
node bin/cli.js| Projekt | Beschreibung |
|---|---|
| awesome-ai-rules | 20 KI-Programmierregeln für die Produktion |
| vibe-check | npx vibe-check — Bewerten Sie die KI-Bereitschaft Ihres Projekts |
| awesome-mcp-servers | MCP-Server für Cursor, Claude Code und Kimi Code |
Beiträge sind willkommen! Siehe CONTRIBUTING.md für Richtlinien.
# Fork & Klonen, dann:
git checkout -b feat/my-feature
# Änderungen vornehmen...
npm test
git add .
aic # Dogfooding! 🐕MIT © liangzhengtao
Nein. aic ist zu 100% offline. Die gesamte Analyse erfolgt lokal mittels regelbasierter Mustererkennung. Keine API-Schlüssel, keine Netzwerkanfragen, keine Telemetrie.
Drei Gründe:
- Geschwindigkeit — Ergebnisse in Millisekunden, nicht Sekunden
- Datenschutz — Ihr Code verlässt niemals Ihren Computer
- Zuverlässigkeit — Keine Rate-Limits, keine API-Kosten, keine Ausfälle
Zukünftige Versionen können optionale LLM-Integration als Verbesserung bieten, aber die regelbasierte Engine wird immer der Standard sein.
Noch nicht, aber es ist auf der Roadmap. Siehe CHANGELOG.md für geplante Funktionen.
Ja! Standardmäßig führt aic git commit aus, das Ihre Hooks normal auslöst. Verwenden Sie --no-verify, um sie zu überspringen.
Das ist das Standardverhalten! Nachdem aic eine Nachricht vorschlägt, können Sie:
- Enter drücken, um wie vorgeschlagen zu committen
- E drücken, um die Nachricht interaktiv zu bearbeiten
- C drücken, um abzubrechen
Ja. aic erkennt automatisch den Bereich aus Ihren Dateipfaden. Wenn alle geänderten Dateien in packages/auth/ liegen, wird es (auth) als Bereich vorschlagen.
Node.js 16 oder höher.