MIT 라이선스로 공개…Node.js 22 이상·Git·Ollama 필요
핵심 요약
- RepoSeance는 소스 코드와 Git 이력을 검색해 저장소에 관한 질문에 답하는 오픈소스 AI 도구다. 로컬에서 분석·추론을 수행하고 답변에 파일과 줄 번호 근거를 제시한다.
낯선 코드 저장소의 구조와 구현 배경을 파악하도록 돕는 오픈소스 AI 도구 RepoSeance가 공개됐다. 개발자가 데브 커뮤니티(Dev Community)에 소개한 이 도구는 소스 코드 분석과 Git 이력 조사, 검색 증강 생성(RAG)을 결합해 코드와 변경 이력에 근거한 답변을 만든다.
RepoSeance는 TypeScript·JavaScript 프로젝트에서 구조를 파악하고 심벌과 가져오기·내보내기 정보를 추출한다. 커밋 이력과 코드 줄별 변경 이력인 blame 정보도 살펴 구현이 어떻게 달라졌는지 추적한다. 사용자는 인증 처리 방식, 데이터베이스 작업을 담당하는 모듈, 특정 기능의 변경 과정 등을 자연어로 질문할 수 있다. 답변에는 소스 파일과 줄 번호가 붙으며, 터미널에서 대화형으로 저장소를 탐색하는 기능도 갖췄다.
분석 과정에서 저장소 전체를 곧바로 대규모 언어 모델(LLM)에 보내지는 않는다. Git 저장소와 관련 소스 파일을 찾고 코드 구조와 과거 구현 맥락을 수집한 뒤, MiniSearch로 검색 가능한 정보를 로컬에 색인한다. 질문과 관련된 코드와 이력 근거를 검색해 선택한 맥락만 Ollama를 통해 로컬 모델에 전달한다. 생성된 답변의 소스 참조는 사용자에게 제시하기 전에 색인된 저장소와 대조해 검증한다.
개발자는 비공개 저장소나 내부 프로젝트를 다룰 때 코드를 외부 AI 서비스에 올려야 하는 부담을 줄이고자 로컬 중심 구조를 택했다고 설명했다. Ollama로 추론을 수행하고 가중치 공개 모델 계열인 Gemma를 활용해 호스팅형 AI API에 의존하지 않고 저장소를 조사하도록 했다. 사용자는 보유 하드웨어에 맞는 호환 모델을 선택·설정할 수 있으며, 저장소 분석과 AI 추론을 로컬에서 수행하므로 외부 AI 제공업체에 코드를 업로드하거나 독점 AI API 및 API 키를 사용할 필요가 없다.
이 도구는 MIT 라이선스로 공개됐으며 npm 패키지로 이용할 수 있다. 실행에는 Node.js 22 이상과 Git이 필요하고 Ollama를 설치해 실행해 둬야 한다. npm install -g reposeance로 설치하거나 npx reposeance로 실행할 수 있다. 기존 프로젝트 디렉터리에서 reposeance init으로 초기화하고 reposeance index로 색인을 만든 뒤 reposeance ask 명령으로 질문한다. reposeance history src/features/auth로 특정 모듈의 이력을 살펴보거나 reposeance chat으로 대화를 시작하는 방식도 지원한다. 코드는 GitHub의 CodesWithSubham/reposeance 저장소에 공개돼 있다.
구현에는 TypeScript와 Node.js를 사용했으며, 저장소 분석을 AI 계층과 독립적으로 유지하는 모듈형 구조를 적용했다. Commander.js는 명령줄 인터페이스를, TypeScript Compiler API는 소스 코드 분석을 맡는다. Git 이력 조사에는 simple-git, 실행 시 검증에는 Zod, 테스트에는 Vitest를 사용했다. 웹 대시보드나 클라우드 AI 서비스 없이 터미널에서 조사를 진행하도록 설계했다.
RepoSeance는 해크토버페스트 오픈소스 AI 챌린지 4주 차 ‘Ghost in the Machine’ 출품작이다. 개발자는 프로젝트가 커지고 담당자가 떠나면서 사라지는 구현 결정의 배경을 커밋 메시지, 변경 파일, 소스 코드에서 다시 찾아내고자 도구를 만들었다고 소개했다. 향후 살펴보고 싶은 과제로는 로컬 임베딩 모델을 활용한 의미 기반 검색, 아키텍처 관계 이해 개선, 과거 의사결정 재구성 고도화, 조사 작업 흐름 개선, IDE 연동을 꼽았다.
