aicommits

by Nutlope (community) · git, bash, zsh, любая ОС

Tool Dev Tools Open Source v3.4.0 · 18.05.2026 активный

CLI-инструмент, который генерирует git commit message по diff. Запускаешь `aicommits` после `git add` — получаешь готовое сообщение по conventional commits. Возможности: - Анализирует `git diff --staged` и генерирует сообщение - Формат conventional commits (feat, fix, chore, refactor) - Несколько вариантов на выбор (--generate N) - Поддержка OpenAI, Anthropic, Ollama, Groq - Настраиваемый locale (сообщения на любом языке) - git hook — автоматически при каждом commit - Проверка на staged изменения перед запуском

v3.4.0
18.05.2026 current
Добавлен 18.06.2026 · Обновлён 18.06.2026 · Dev Tools
Установка
# npm:
npm install -g aicommits

# Настройка:
aicommits config set OPENAI_KEY=sk-...

# Anthropic:
aicommits config set type=anthropic
aicommits config set ANTHROPIC_KEY=sk-ant-...

# Использование:
git add .
aicommits

# Несколько вариантов:
aicommits --generate 3

# Установить как git hook:
aicommits hook install
переведено ИИ
AI Commits AI Commits

AI Commits

CLI-утилита, которая пишет сообщения коммитов в git за вас с помощью ИИ. Больше никогда не пишите сообщения коммитов вручную.

Current version Downloads


Установка

Минимальная поддерживаемая версия Node.js — v22. Проверьте вашу версию Node.js командой node --version.

  1. Установите aicommits:

sh npm install -g aicommits

  1. Запустите команду настройки, чтобы выбрать вашего ИИ-провайдера:

sh aicommits setup

Это направит вас через:

  • Выбор вашего ИИ-провайдера (устанавливает конфигурацию provider)
  • Настройку вашего API-ключа
  • Автоматическое получение и выбор из доступных моделей (когда это поддерживается)
  • Выбор предпочтительного формата сообщения коммита (простой, conventional, conventional+body, gitmoji или subject+body)

Поддерживаемые провайдеры включают:

  • TogetherAI (рекомендуется) - Получите свой API-ключ от TogetherAI
  • OpenAI - Получите свой API-ключ со страницы OpenAI API Keys
  • Groq - Получите свой API-ключ из Groq Console
  • xAI - Получите свой API-ключ из xAI Console
  • OpenRouter - Получите свой API-ключ от OpenRouter
  • Ollama (локальный) - Запускайте модели ИИ локально с Ollama
  • LM Studio (локальный) - API-ключ не требуется. Работает на вашем компьютере через LM Studio
  • Пользовательская конечная точка, совместимая с OpenAI - Используйте любой сервис, реализующий API OpenAI

Для сред CI/CD вы также можете настроить конфигурацию через файл конфигурации:

bash aicommits config set OPENAI_API_KEY="your_api_key_here" aicommits config set OPENAI_BASE_URL="your_api_endpoint" # Опционально, для пользовательских конечных точек aicommits config set OPENAI_MODEL="your_model_choice" # Опционально, по умолчанию используется модель провайдера

Примечание: При использовании переменных окружения убедитесь, что все связанные переменные (например, OPENAI_API_KEY и OPENAI_BASE_URL) установлены последовательно, чтобы избежать несоответствия конфигурации с файлом конфигурации.

Это создаст файл .aicommits в вашей домашней директории.

Обновление

Проверьте установленную версию с помощью:

aicommits --version

Чтобы обновиться до последней версии, выполните:

aicommits update

Это автоматически определит ваш пакетный менеджер (npm, pnpm, yarn или bun) и обновит с помощью правильной команды.

В качестве альтернативы вы можете обновить вручную:

npm install -g aicommits

Использование

Режим CLI

Вы можете вызвать aicommits напрямую, чтобы сгенерировать сообщение коммита для ваших индексированных изменений:

git add <files...>
aicommits

aicommits передает неизвестные флаги в git commit, поэтому вы можете передавать флаги коммита.

Например, вы можете проиндексировать все изменения в отслеживаемых файлах во время коммита:

aicommits --all # или -a

👉 Совет: Используйте псевдоним aic, если aicommits слишком длинное для вас.

Опции CLI

  • --all или -a: Автоматически индексировать изменения в отслеживаемых файлах для коммита (по умолчанию: false)
  • --clipboard или -c: Копировать выбранное сообщение в буфер обмена вместо коммита (по умолчанию: false)
  • --generate или -g: Количество сообщений для генерации (по умолчанию: 1)
  • --exclude или -x: Файлы для исключения из анализа ИИ
  • --type или -t: Формат сообщения коммита git (по умолчанию: plain). Поддерживает plain, conventional, conventional+body, gitmoji и subject+body
  • --prompt или -p: Пользовательский промпт для направления поведения LLM (например, конкретный язык, инструкции по стилю)
  • --no-verify или -n: Обход хуков перед коммитом (pre-commit hooks) во время коммита (по умолчанию: false)
  • --yes или -y: Пропуск подтверждения после генерации сообщения перед коммитом (по умолчанию: false)

Генерация нескольких рекомендаций

Иногда рекомендуемое сообщение коммита не является лучшим, и вы хотите, чтобы было сгенерировано несколько вариантов для выбора. Вы можете сгенерировать несколько сообщений коммита одновременно, передав флаг --generate <i>, где 'i' — количество генерируемых сообщений:

aicommits --generate <i> # или -g <i>

Предупреждение: это использует больше токенов, что стоит дороже.

Форматы сообщений коммитов

Вы можете выбрать из пяти различных форматов сообщений коммитов:

  • plain (по умолчанию): Простые, неструктурированные сообщения коммитов
  • conventional: Формат Conventional Commits с типом и областью
  • conventional+body: Тема conventional коммита плюс тело, сгенерированное из диффа
  • gitmoji: Сообщения коммитов на основе эмодзи
  • subject+body: Строка темы в стиле git плюс тело (описание), сгенерированное из диффа

Используйте флаг --type для указания формата:

aicommits --type conventional      # или -t conventional
aicommits --type conventional+body # или -t conventional+body (conventional тема + тело)
aicommits --type gitmoji           # или -t gitmoji
aicommits --type plain             # или -t plain (по умолчанию)
aicommits --type subject+body      # или -t subject+body (тема + тело)

Эта функция полезна, если ваш проект следует определенному стандарту сообщений коммитов или если вы используете инструменты, которые полагаются на эти форматы коммитов.

Пользовательские промпты

Вы можете настроить поведение LLM с помощью флага --prompt, чтобы направлять генерацию сообщений коммитов:

# Писать сообщения коммитов на определенном языке
aicommits -p "Write commit messages in Italian"

# Сфокусироваться на определенных аспектах изменений
aicommits -p "Focus on performance implications of changes"

# Использовать определенный стиль или тон
aicommits -p "Use technical jargon suitable for senior developers"

# Включить определенные детали в сообщение
aicommits -p "Always mention the specific function names and file paths changed"

Git hook

Вы также можете интегрировать aicommits с Git через хук prepare-commit-msg. Это позволяет вам использовать Git как обычно и редактировать сообщение коммита перед коммитом.

Установка

В репозитории Git, куда вы хотите установить хук:

aicommits hook install

Удаление

В репозитории Git, откуда вы хотите удалить хук:

aicommits hook uninstall

Использование

  1. Проиндексируйте файлы и сделайте коммит:

sh git add <files...> git commit # Генерирует сообщение только когда оно не передано явно

Если вы когда-нибудь захотите написать свое собственное сообщение вместо генерации, вы можете просто передать его: git commit -m "Мое сообщение"

  1. Aicommits сгенерирует сообщение коммита и передаст его обратно в Git. Git откроет его в настроенном редакторе для вашего просмотра/редактирования.

  2. Сохраните и закройте редактор для выполнения коммита!

Переменные окружения

Вы также можете настроить aicommits с помощью переменных окружения вместо файла конфигурации.

Пример:

export OPENAI_API_KEY="sk-..."
export OPENAI_BASE_URL="https://api.example.com"
export OPENAI_MODEL="gpt-4"
aicommits  # Использует переменные окружения

Настройки конфигурации разрешаются в следующем порядке приоритета:

  1. Аргументы командной строки
  2. Переменные окружения
  3. Файл конфигурации
  4. Значения по умолчанию

Конфигурация

Просмотр текущей конфигурации

Чтобы просмотреть все текущие параметры конфигурации, которые отличаются от значений по умолчанию, выполните:

aicommits config

Это покажет только нестандартные значения конфигурации, при этом API-ключи будут скрыты для безопасности. Если пользовательская конфигурация не установлена, будет показано "(using all default values)".

Изменение вашей модели

Чтобы интерактивно выбрать или изменить вашу модель ИИ, выполните:

aicommits model

Это:

  • Покажет вашего текущего провайдера и модель
  • Получит доступные модели из API вашего провайдера
  • Позволит выбрать из доступных моделей или ввести пользовательское имя модели
  • Автоматически обновит вашу конфигурацию

Обновление aicommits

Чтобы обновиться до последней версии, выполните:

aicommits update

Это:

  • Проверит наличие последней версии в npm
  • Определит ваш пакетный менеджер (npm, pnpm, yarn или bun)
  • Обновит с помощью соответствующей команды
  • Покажет прогресс и подтвердит завершение

Чтение значения конфигурации

Чтобы получить параметр конфигурации, используйте команду:

aicommits config get <ключ>

Например, чтобы получить API-ключ, можно использовать:

aicommits config get OPENAI_API_KEY

Вы также можете получить несколько параметров конфигурации одновременно, разделяя их пробелами:

aicommits config get OPENAI_API_KEY generate

Установка значения конфигурации

Чтобы установить параметр конфигурации, используйте команду:

aicommits config set <ключ>=<значение>

Например, чтобы установить API-ключ, можно использовать:

aicommits config set OPENAI_API_KEY=<ваш-апи-ключ>

Вы также можете установить несколько параметров конфигурации одновременно, разделяя их пробелами, например

aicommits config set OPENAI_API_KEY=<ваш-апи-ключ> generate=3 locale=en

Параметры конфигурации

OPENAI_API_KEY

Ваш API-ключ OpenAI или API-ключ пользовательского провайдера.

OPENAI_BASE_URL

Пользовательский URL конечной точки API, совместимой с OpenAI.

OPENAI_MODEL

Модель для использования у провайдеров, совместимых с OpenAI.

provider

Выбранный провайдер ИИ. Устанавливается автоматически во время aicommits setup. Допустимые значения: openai, togetherai, groq, xai, openrouter, ollama, lmstudio, custom.

locale

По умолчанию: en

Язык (локаль) для использования в генерируемых сообщениях коммитов. Консультируйтесь со списком кодов в: https://wikipedia.org/wiki/List_of_ISO_639-1_codes.

generate

По умолчанию: 1

Количество сообщений коммитов для генерации для выбора.

Обратите внимание, что это будет использовать больше токенов, так как генерирует больше результатов.

timeout

Тайм-аут для сетевых запросов к API OpenAI в миллисекундах.

По умолчанию: 10000 (10 секунд)

aicommits config set timeout=20000 # 20s

max-length

Максимальная длина в символах для генерируемого сообщения коммита.

По умолчанию: 72

aicommits config set max-length=100

type

По умолчанию: plain

Тип сообщения коммита для генерации. Доступные варианты:

  • plain: Простые, неструктурированные сообщения коммитов
  • conventional: Формат Conventional Commits с типом и областью
  • conventional+body: Тема conventional коммита плюс тело, сгенерированное из диффа
  • gitmoji: Сообщения коммитов на основе эмодзи
  • subject+body: Строка темы в стиле git плюс тело, сгенерированное из диффа

Примеры:

aicommits config set type=conventional
aicommits config set type=conventional+body
aicommits config set type=gitmoji
aicommits config set type=plain
aicommits config set type=subject+body

Как это работает

Эта CLI-утилита запускает git diff, чтобы собрать все ваши последние изменения кода, отправляет их настроенному провайдеру ИИ (по умолчанию TogetherAI), а затем возвращает сгенерированное ИИ сообщение коммита.

Скоро выйдет видео, где я пересоберу его с нуля, чтобы показать вам, как легко создавать собственные CLI-утилиты на основе ИИ.

Кураторы

Участие в разработке

Если вы хотите помочь исправить ошибку или реализовать функцию в разделе Issues, ознакомьтесь с Руководством по участию, чтобы узнать, как настроить и протестировать проект.

Комментарии
Войдите, чтобы оставить комментарий