claude-commit
v1.0.1
Published
AI-powered git commit message generator using Claude AI (API or Claude Code CLI)
Maintainers
Readme
AI Генератор Commit Messages
🇺🇦 Українська | 🇬🇧 English version
AI-генератор commit messages для git використовуючи Claude AI. Підтримує як Anthropic API, так і Claude Code CLI (для власників підписки Claude Pro).
Можливості
- ✅ Два методи генерації: Anthropic API або Claude Code CLI
- ✅ Автоматичний fallback: Переключається на CLI якщо API недоступний
- ✅ Підтримка мов: English (за замовчуванням) або Українська
- ✅ AI-редагування: Опишіть що виправити, AI застосує зміни автоматично
- ✅ Conventional Commits формат: Минулий час, макс 50 символів
- ✅ Інтерактивне підтвердження: Enter = згода, Esc = скасувати, e = редагувати
- ✅ Швидкий і ефективний: Оптимізовані промпти, ліміт 6000 символів
Встановлення
Варіант A: Глобальне встановлення (NPM пакет)
# Встановити глобально
npm install -g claude-commit
# Або використовувати з npx (без встановлення)
npx claude-commitВаріант B: Локальне встановлення (для проєкту)
Клонуйте або завантажте репозиторій
git clone https://github.com/uaoa/claude-commit.git cd claude-commitВстановіть залежності
npm installЗробіть скрипт виконуваним (Unix/Mac)
chmod +x generate-commit.mjsДодайте в package.json вашого проєкту
{ "scripts": { "commit": "node шлях/до/generate-commit.mjs" } }
Варіант C: Тільки з Claude Code CLI
Якщо у вас є підписка Claude Pro і ви хочете використовувати CLI без API ключа:
Встановіть Claude Code CLI (якщо ще не встановлено)
# Інструкції: https://docs.claude.com/claude-codeПеревірте встановлення
claude --versionКлонуйте репо і встановіть залежності
git clone https://github.com/uaoa/claude-commit.git cd claude-commit npm install
Налаштування
Метод 1: З API ключем
Отримайте API ключ на Anthropic Console
Створіть файл
.envв корені проєкту:ANTHROPIC_API_KEY=sk-ant-your-key-here COMMIT_LANG=EN # Опціонально: EN або UA (за замовчуванням: EN)
Метод 2: З Claude Code CLI
Налаштування не потрібні! Просто переконайтесь, що Claude Code CLI встановлено та авторизовано.
Використання
Базове використання
Додайте зміни до staging area
git add . # або git add конкретний-файл.jsЗапустіть генератор
# Якщо встановлено глобально claude-commit # Якщо використовуєте npm script npm run commit # Якщо використовуєте npx npx claude-commit # З вибором мови npm run commit -- --lang=en # English npm run commit -- --lang=ua # УкраїнськаПерегляньте згенерований message
- Натисніть
Enterабоyдля підтвердження та створення коміту - Натисніть
eдля редагування з допомогою AI (опишіть що виправити) - Натисніть
nабоEscдля скасування
- Натисніть
AI-Редагування
Коли натискаєте e, можете описати що потрібно виправити - AI застосує зміни автоматично!
Приклади:
# Додати scope
Що треба виправити? додати scope "auth"
# feat: додано OAuth → feat(auth): додано OAuth
# Змінити type
Що треба виправити? це має бути fix, а не feat
# feat: додано валідацію → fix: додано валідацію
# Скоротити (до 50 символів)
Що треба виправити? скоротити до 50 символів
# feat: додано нову функціональність для автентифікації користувачів через OAuth провайдери
# → feat: додано OAuth автентифікацію
# Виправити на минулий час
Що треба виправити? має бути в минулому часі
# feat: додати функцію → feat: додано функцію
# Перекласти на English
Що треба виправити? перекласти на англійську
# feat: додано функцію → feat: added featureAI зберігає Conventional Commits формат та застосовує правки інтелектуально!
Клавіші керування
| Клавіша | Дія |
|---------|-----|
| Enter | Підтвердити та створити commit |
| y | Підтвердити та створити commit |
| e | Відкрити AI-редагування |
| n | Скасувати commit |
| Esc | Скасувати commit |
| Ctrl+C | Вийти з програми |
Формат Commit Messages
Скрипт генерує messages у форматі Conventional Commits:
<type>(<scope>): <subject>Суворі правила:
- Subject: макс 50 символів, без крапки
- Час: ТІЛЬКИ минулий час (що ЗРОБЛЕНО)
- Дієслова UA: додано, виправлено, оновлено, видалено, рефакторено
- Дієслова EN: added, fixed, updated, removed, refactored
Types:
feat- нова функціональністьfix- виправлення багаrefactor- рефакторинг кодуdocs- зміни в документаціїstyle- форматування, стиліtest- додавання/оновлення тестівchore- інші зміни (build, CI, etc.)perf- покращення продуктивності
✅ Правильні приклади:
Українською:
feat(auth): додано Google OAuth провайдер
fix(api): виправлено помилку валідації
refactor(store): оптимізовано управління станом
docs(readme): оновлено інструкції встановлення
style(button): відформатовано компоненти кнопокАнглійською:
feat(auth): added Google OAuth provider
fix(api): fixed validation error
refactor(store): optimized state management
docs(readme): updated installation instructions❌ Неправильно (наказова форма):
feat: add feature # НЕПРАВИЛЬНО
fix: fix bug # НЕПРАВИЛЬНО
feat: додати функцію # НЕПРАВИЛЬНО✅ Правильно (минулий час):
feat: added feature # ПРАВИЛЬНО
fix: fixed bug # ПРАВИЛЬНО
feat: додано функцію # ПРАВИЛЬНОПріоритет методів генерації
Скрипт обирає метод у такому порядку:
- Спочатку: Спроба використати API (якщо є
ANTHROPIC_API_KEY) - Fallback: Якщо API недоступний → Claude Code CLI
- Помилка: Якщо обидва методи недоступні → повідомлення про помилку
Налаштування мови
Варіант 1: Через CLI аргумент (одноразово)
npm run commit -- --lang=en # English
npm run commit -- --lang=ua # УкраїнськаВаріант 2: Через ENV змінну (.env файл)
# Додайте в .env для постійного використання
COMMIT_LANG=EN # або UA (за замовчуванням: EN)Пріоритет:
- CLI аргумент
--lang= - ENV змінна
COMMIT_LANG - За замовчуванням: EN
Приклади використання
Приклад 1: Нова функція
$ git add src/auth/oauth.js
$ npm run commit
🚀 Git Commit Generator
📝 Мова: Українська
🤖 Генерую commit message через API...
Згенерований commit message:
feat(auth): додано Google OAuth провайдер
Підтвердити та виконати commit?
Enter/y - так
e - редагувати
n/Esc - скасувати
[Натискаємо Enter]
✅ Commit успішно створено!Приклад 2: Виправлення бага з редагуванням
$ git add src/api/users.js
$ npm run commit
🚀 Git Commit Generator
📝 Мова: Українська
🤖 Генерую commit message через Claude Code CLI...
Згенерований commit message:
feat(api): додано валідацію для user endpoint
Підтвердити та виконати commit?
Enter/y - так
e - редагувати
n/Esc - скасувати
[Натискаємо e]
Поточний message: feat(api): додано валідацію для user endpoint
Що треба виправити? це має бути fix, а не feat
🤖 Редагую commit message...
Згенерований commit message:
fix(api): додано валідацію для user endpoint
Підтвердити та виконати commit?
Enter/y - так
e - редагувати
n/Esc - скасувати
[Натискаємо Enter]
✅ Commit успішно створено!Приклад 3: Fallback на CLI
$ npm run commit
🚀 Git Commit Generator
📝 Мова: Українська
🤖 Генерую commit message через API...
⚠️ API недоступний: Невалідний API ключ
Переключаюсь на Claude Code CLI...
🤖 Генерую commit message через Claude Code CLI...
Згенерований commit message:
refactor(store): оптимізовано управління корзиною
✅ Commit успішно створено!Вирішення проблем
Помилка: "Немає staged changes"
# Перевірте статус
git status
# Додайте файли
git add .Помилка: "Не знайдено способу генерації commit message"
Рішення 1 - Використовуйте API:
# Додайте ключ в .env файл
echo "ANTHROPIC_API_KEY=sk-ant-..." >> .envРішення 2 - Використовуйте Claude Code CLI:
# Встановіть Claude Code
# https://docs.claude.com/claude-code
# Перевірте встановлення
which claude
claude --versionПомилка: "API недоступний"
Скрипт автоматично переключиться на Claude Code CLI, якщо він встановлений.
Якщо CLI також недоступний:
- Перевірте валідність API ключа
- Перевірте баланс акаунту на https://console.anthropic.com
- Перевірте інтернет-з'єднання
Помилка: "Claude Code CLI недоступний"
# Перевірте, чи встановлено Claude Code
which claude
# Якщо не встановлено, встановіть за інструкцією
# https://docs.claude.com/claude-codeПорівняння методів
| Критерій | Claude API | Claude Code CLI | |----------|-----------|-----------------| | Вартість | ~$0.01-0.02 за commit | Входить у підписку | | Швидкість | Швидше | Повільніше | | Надійність | Висока | Залежить від CLI | | Налаштування | Потребує API ключ | Потребує CLI | | Offline | ❌ Ні | ❌ Ні |
Технічні деталі
Модель:
- API: Claude Sonnet 4.5 (
claude-sonnet-4-5-20250929) - CLI: Використовує модель з підписки
Токени:
- Max tokens для відповіді: 500 (генерація), 300 (редагування)
- Обмеження diff: 6000 символів
- Temperature: 0.3 (для стабільності)
Залежності:
@anthropic-ai/sdk(опціонально, для API методу)- Node.js 18+ (для ES modules)
- Git (обов'язково)
Публікація на NPM
Хочете зробити форк і опублікувати власну версію? Дивіться Гайд з Публікації для детальних інструкцій.
Внесок
Вітаються внески! Будь ласка, створюйте Pull Request.
Ліцензія
MIT License - детальніше в файлі LICENSE
Підтримка
- Issues: GitHub Issues
- Документація: Anthropic Docs
- Claude Code: Claude Code Docs
Автор
Захарій Мельник (Zakharii Melnyk), український full-stack розробник із Києва і засновник AOA. Створює вебпродукти, iOS-застосунки та інструменти для розробників.
- Сайт: uaoa.github.io
- GitHub: @uaoa
- LinkedIn: undef-zakhar
- YouTube: @undefzakhar
- Telegram: @undefZakhar
Інші проєкти:
- Claude Commit для VS Code: той самий генератор як розширення VS Code
- whatsmyera.com: скільки подій відбулося за твоє життя
- wherethefuckismy.money: калькулятор реальної купівельної спроможності доходів в Україні
- AOA: мета якої спонукати людей частіше виходити на вулицю
Зроблено з ❤️ використовуючи Claude AI
