di-sukharev/opencommit

top #1 and most feature rich GPT wrapper for git — generate commit messages with an LLM in 1 sec — works with Claude, GPT and every other provider, supports local Ollama models too

OpenCommit – AI 기반 커밋 메시지 생성기

무엇인가요 – Git 커밋에 스테이징한 파일을 읽고, 차이점(diff) 또는 전체 파일 내용을 대규모 언어 모델(Large Language Model)에 전송하여 간결하고 전통적인 스타일의 커밋 메시지를 반환하는 Node.js 명령줄 도구(oco)입니다. 메시지는 GitMoji 이모지, 간단한 설명, 그리고 선택적인 "왜" 설명을 포함할 수 있습니다.

작동 방식

  1. 패키지를 전역으로 설치합니다 (npm i -g opencommit).
  2. 지원되는 LLM 제공자(OpenAI, Anthropic, Azure, Ollama, llama.cpp, Gemini, Flowise, DeepSeek, OpenRouter, OrcaRouter 등)의 API 키를 제공합니다.
  3. oco (또는 git add … && oco)를 실행하면 스테이징된 변경 사항이 제공자의 REST 엔드포인트를 통해 선택된 모델로 전송됩니다.
  4. 모델은 커밋 메시지를 반환하고, 도구는 git commit -m "..."에 전달합니다. 선택적 플래그를 사용해 확인 프롬프트를 건너뛰거나, 이모지를 추가하거나, 단일 줄 메시지를 강제할 수 있습니다.

주요 기능 (README에 설명됨)

  • 다중 제공자 지원 – 클라우드 API(OpenAI, Anthropic, Azure 등)와 Ollama 또는 llama.cpp 서버를 통해 로컬 모델을 지원합니다.
  • 모델 및 언어 설정 가능 – 기본값은 gpt-4o-mini이며, 제공자가 제공하는 모델 이름으로 변경 가능하고, 출력 언어(예: de, fr)도 설정할 수 있습니다.
  • GitMoji 통합--fgm을 사용해 10개의 짧은 이모지 또는 전체 GitMoji 사양을 활성화할 수 있습니다.
  • 커밋 훅 및 GitHub Actionoco hook set으로 prepare-commit-msg 훅을 설치할 수 있으며, 베타 버전의 GitHub Action은 푸시 시 새 커밋을 자동으로 재작성합니다.
  • 리포지토리별 및 전역 설정~/.opencommit 또는 리포지토리 내 .env 파일에 저장되며, 많은 설정 옵션(OCO_EMOJI, OCO_DESCRIPTION, OCO_WHY, 토큰 제한, 프록시 등)을 제공합니다.
  • 파일 무시 기능.opencommitignore (로컬) 및 ~/.opencommitignore (전역)를 사용해 LLM에 전송되지 않도록 큰 자산이나 비밀 정보를 제외할 수 있습니다.
  • 모델 관리oco models로 캐시된 제공자 모델 목록을 확인할 수 있으며, --refresh로 강제 갱신할 수 있습니다.
  • 템플릿 플레이스홀더 – 큰 템플릿 내에 사용자 정의 문자열($msg)을 포함할 수 있습니다. 예: oco '#205: $msg'.

일반적인 워크플로우

# 한 번만 설치
global npm i -g opencommit

# API 키 설정 (기계 또는 리포지토리당 한 번)
oco config set OCO_API_KEY=sk-…

# 변경 사항 스테이징 (또는 oco가 처리)하고 커밋 생성
git add .
oco            # 확인 프롬프트가 표시됨
# 또는 확인 건너뛰기
oco --yes

로컬 모델 사용하기 (Ollama 예시):

ollama run mistral   # 모델 한 번 다운로드
oco config set OCO_AI_PROVIDER=ollama OCO_MODEL=llama3:8b
oco

GitHub Action 사용법 – README에 나와 있는 대로 .github/workflows/opencommit.yml을 추가하면, 설정된 모델과 옵션을 사용해 푸시 시 각 새 커밋을 재작성합니다.

왜 중요한가요 – 명확하고 전통적인 커밋 메시지를 작성하는 것은 번거롭습니다. OpenCommit은 이 과정을 자동화하여 일관성 있는 변경 기록, 더 나은 변경 로그, 그리고 원활한 협업을 보장하면서도 개발자가 스타일, 언어, 비용을 제어할 수 있도록 합니다.


설치npm install -g opencommit 문서 – 리포지토리의 README (명령어: oco, oco config, oco hook, oco models 등) 라이선스 – 요약에는 명시되지 않음; 실제 라이선스는 리포지토리에서 확인하세요.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트