Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (smart-msg) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
smart-msg
AI 기반 Git 커밋 메시지 자동 생성 도구
staged 된 git diff 를 분석하여 Conventional Commit 형식의 메시지를 자동으로 생성합니다.
OpenAI 와 Anthropic Claude 를 지원하며, 한국어와 영어 출력을 모두 제공합니다.
git add .
sm c위 두 명령으로 staged 변경분에 대한 커밋 메시지가 추천되며, 확인 후 커밋이 진행됩니다.
$ sm c
생성된 커밋 메시지:
feat(auth): add OAuth login flow
? 이 메시지로 커밋을 진행하시겠습니까? › (Y/n)목차
설치
npm 글로벌 설치 (권장)
npm install -g smart-msg설치 시 prepare 스크립트가 자동으로 빌드를 수행하므로, 별도의 후속 절차는 필요하지 않습니다.
GitHub repository 직접 설치
npm registry 에 게시되지 않은 환경 또는 사내 환경에서는 GitHub repository 에서 직접 설치할 수 있습니다.
npm install -g git+https://github.com/black-astro/smart-msg.git특정 태그를 고정하려면 #v1.0.0 과 같이 지정합니다.
npm install -g git+https://github.com/black-astro/smart-msg.git#v1.0.0동작 환경
- Node.js 18 이상
- git 2.x 이상
- Windows / macOS / Linux 모두 지원
설치가 완료되면 다음 명령으로 동작을 확인할 수 있습니다.
sm --version[!NOTE] 설치 직후 최초 설정 단계로 진행하시기 바랍니다.
sm login의 마지막 단계에서 현재 프로젝트가 git 저장소인 경우 자동으로 hook 설치 여부를 묻습니다. 이 흐름을 따르면 IDE 커밋 창 통합까지 한 번에 완료됩니다.
최초 설정
sm login다음 네 가지 항목을 차례로 선택합니다.
| 단계 | 항목 | 선택지 |
|---|---|---|
| 1 | AI provider | OpenAI / Anthropic Claude |
| 2 | 모델 | provider 별 권장 모델 목록 |
| 3 | 출력 언어 | 한국어 / 영어 |
| 4 | 메시지 강도 | simple / middle / hard |
선택이 완료되면 브라우저에서 API 키 발급 페이지가 자동으로 열립니다. 키 발급 후 입력란에 입력하여 등록을 마칩니다.
[!NOTE] 설정은
~/.smart-msg/config.json에 저장되며, 모든 프로젝트에서 동일하게 사용됩니다. 최초 1회만 수행하면 됩니다.
기본 사용법
1. 변경사항 스테이징
git add .2. 커밋 실행
sm c생성된 메시지가 출력되며, 확인 입력 후 자동으로 커밋이 진행됩니다.
명령어
| 명령 | 설명 |
|---|---|
sm login |
provider, 모델, 언어, 강도, API 키를 처음 설정합니다 |
sm c (= sm commit) |
staged diff 를 기반으로 메시지를 생성하고 커밋합니다 |
sm config |
언어, 강도, 모델 설정을 변경합니다 |
sm status |
현재 저장된 설정을 출력합니다 |
sm install-hook |
현재 프로젝트에 git prepare-commit-msg hook 을 설치합니다 |
sm logout |
저장된 API 키를 제거합니다 |
sm uninstall |
모든 설정 및 hook 을 제거합니다 |
옵션
Language
| 값 | 출력 언어 |
|---|---|
ko |
한국어 (feat, fix 등 type 키워드는 영어 유지) |
en |
영어 |
Strength
메시지의 길이와 상세도를 결정합니다.
simple — 한 줄 (Conventional Commit 형식)
feat(auth): add OAuth login flowmiddle — 첫 줄 + 본문 2~5줄
feat(auth): add OAuth login flow
- PKCE 기반 OAuth 콜백 처리 추가
- 로컬 콜백 서버를 임시로 생성
- 발급된 토큰을 ~/.smart-msg/config.json 에 저장hard — 첫 줄 + README 수준 본문
feat(auth): add OAuth login flow
기존 API 키 입력 방식은 매번 발급 페이지로 이동하여 복사 및 붙여넣기를
수행하는 부담이 있었습니다. 표준 OAuth 흐름을 도입하여 이를 해소합니다.
- PKCE flow 로 토큰을 안전하게 획득
- 로컬 8765 포트에 임시 콜백 서버 운영
- 토큰은 OS keychain 에 보관
- 토큰 만료 시 자동 갱신
영향: 기존 API 키 사용자의 동작은 변경되지 않습니다.설정 변경
sm config메뉴에서 언어, 강도, 모델 중 하나를 선택하여 변경합니다.
Git Hook
기본 사용 방식은 sm c 명령이지만, IntelliJ 의 커밋 창이나 VS Code 의 commit 창과 같이 IDE 내부에서 git commit 을 호출하는 환경에서는 hook 을 설치해야 자동 메시지 생성이 동작합니다.
cd /path/to/project
sm install-hook| 상황 | 동작 |
|---|---|
git commit (메시지 미지정) |
AI 가 메시지를 자동 생성합니다 |
| IntelliJ 커밋 창 | AI 가 메시지를 자동 생성합니다 |
git commit -m "..." |
hook 이 비켜서며 사용자 메시지를 우선합니다 |
git commit --amend |
기존 메시지를 보호합니다 |
| merge / squash 커밋 | 보호합니다 |
| AI 호출 실패 | 커밋 자체는 정상 진행됩니다 |
| staged 변경 없음 | AI 를 호출하지 않습니다 |
[!TIP] hook 은 프로젝트당 1회만 설치하면 됩니다. 설치된 hook 은
sm uninstall실행 시 한꺼번에 제거됩니다.
제거
sm uninstall설정 디렉토리(~/.smart-msg/)와 설치된 hook 을 모두 제거합니다.
License
ISC