codecompanion.nvim
무엇인가
CodeCompanion은 Neovim 편집기 안에서 LLM과 대화하며 코드를 생성·수정하는 Lua 플러그인이다. 별도 GUI나 터미널 클라이언트를 두지 않고 편집기 버퍼 자체를 채팅 창으로 쓰는 편집기 내장형 코딩 어시스턴트 계열에 속한다.
어떻게 동작하나
핵심 구성은 채팅 버퍼, 어댑터, 도구다. 채팅 버퍼는 Neovim 버퍼 하나를 대화 기록으로 쓰고, 어댑터가 Anthropic·OpenAI·Gemini·GitHub Copilot·Ollama 등 프로바이더별 요청 형식을 맞춘다. Agent Client Protocol(ACP)로 Claude Code, Codex, Gemini CLI 같은 외부 CLI 에이전트를 연결하고, Model Context Protocol(MCP)로 외부 도구 서버를 붙인다. Slash Command, Editor Context, Workflow가 프롬프트에 들어갈 편집기 상태와 도구 호출을 정의하며, 실행은 비동기로 처리된다.
무엇과 다른가
CopilotChat.nvim이나 Zed AI와 겹치는 자리에 있지만, 프로바이더를 어댑터 계층으로 분리해 사용자가 직접 어댑터를 추가할 수 있다는 점이 다르다. 또 CLI 에이전트를 감싸는 래퍼가 아니라 ACP 클라이언트로 붙기 때문에, 에이전트가 만든 코드 변경을 편집기 안에서 검토하고 승인하거나 거부할 수 있다.
어떻게 쓰나
설치와 설정은 공식 문서를 따른다. 플러그인 매니저로 저장소를 추가한 뒤 사용할 어댑터와 API 키를 설정한다. :checkhealth codecompanion으로 의존성과 로그 파일 위치를 확인하고, 문제가 재현되면 저장소의 minimal.lua를 nvim --clean -u minimal.lua로 실행해 사용자 설정을 배제한 상태에서 시험한다. 문서 검색은 채팅에서 @{search_help} 도구로 LLM에 요청할 수 있다.
전제와 한계
Neovim에서만 동작하는 Lua 플러그인이다. LLM 호출에는 프로바이더 API 키나 Ollama 같은 로컬 서버가 필요하고, ACP로 연결하는 CLI 에이전트는 각각 별도로 설치해야 한다. 이미지와 PDF를 입력으로 넣을 수 있고 여러 채팅을 동시에 열 수 있지만, 설치·설정·사용법은 README가 아니라 공식 문서에 있다.
관련 논문 2
유사 도구
- claude-code.nvimNeovim 안에서 Claude Code 터미널 창을 토글하고, 외부에서 수정된 파일을 자동 감지해 버퍼를 갱신하며, git 루트를 작업 디렉터리로 고정하는 플러그인이다.
- atlas에이전트 실행 세션을 로컬에 기록하고 커밋을 그 세션에 연결해, 프롬프트·도구 호출·추론을 체크포인트로 남기고 여러 에이전트가 같은 메모리를 공유하게 하는 Claude Code용 스킬 팩이다.
- ogpt.nvimNeovim에서 선택 영역을 여러 LLM 제공자에 보내 문법 교정·번역·요약·테스트 추가 액션을 실행하도록 액션 정의와 제공자 설정을 주입하는 플러그인이다.
- OpenHands여러 코딩 에이전트를 로컬·원격·클라우드 백엔드에 연결해 한 화면에서 실행하고 자동화하는 셀프호스팅 제어 센터다.
- obsidian-copilotObsidian 볼트 안에서 opencode·Claude Code·Codex 에이전트를 실행하는 TypeScript 플러그인이다. 노트를 읽고 파일을 만들며 여러 턴에 걸쳐 작업을 이어간다.