avante-corp/avante.nvim
Use your Neovim like using Cursor AI IDE!
avante.nvim – Neovim 내 AI 기반 코드 보조
무엇인가요
- Cursor AI IDE의 경험을 직접 에디터에 가져오는 Neovim 플러그인입니다. LLM과 대화하고, 코드 개선을 요청한 후 단일 명령어로 제안된 변경사항을 적용할 수 있습니다.
작동 방식
- Anthropic의 Claude, OpenAI, Gemini, Moonshot 등 하나 이상의 LLM 제공자와 통신합니다. 제공자, 모델, 엔드포인트 및 요청 파라미터는
setup()호출에서 구성할 수 있습니다. - 채팅 창 을 열면 현재 버퍼(또는 선택된 영역)와 함께 리포지토리 루트에 위치한
avante.md파일에 정의된 프로젝트 전용 지침이 함께 전송됩니다. 모델은 코드 블록을 반환하며, Avante는 이를 다음과 같이 처리할 수 있습니다:- Neovim 내에서 마크다운으로 표시하고,
- 파일에 자동으로 적용(차이 기반, 변경되지 않은 줄을 최소화하는 옵션 있음).
- 특수한 Zen 모드 는 Avante를 독립형 CLI(
avante)로 실행할 수 있게 하며, 여전히 백그라운드에서 Neovim의 전체 기능을 사용합니다.
주요 기능
- AI 기반 코드 보조 – 편집 중인 파일에 대해 질문하고 구체적인 제안을 받을 수 있습니다.
- 한 번의 클릭 적용 – 제안을 수락하고 Avante가 버퍼를 자동으로 재작성합니다.
- 프로젝트 전용 지침 파일 (
avante.md) – AI의 성격, 미션, 스택, 코딩 표준 등을 정의하여 모델이 코드베이스에 맞는 조언을 제공할 수 있도록 합니다. - 다중 제공자 및 듀얼 부스트 모드 – 여러 백엔드를 구성할 수 있으며, 실험적 모드에서는 두 제공자에게 요청하고 출력을 결합할 수 있습니다.
- 자동 제안(선택 사항) – 입력 중 백그라운드에서 제안을 자동 요청할 수 있습니다.
- ACP(AI-Code-Planner) 지원 – 도구가 파일을 자동으로 편집하고, 위치를 따라가며, 권한을 승인할 수 있습니다.
- 프롬프트 로깅 – 모든 요청/응답을 디스크에 저장하여 재생 또는 디버깅에 사용할 수 있습니다.
- 확장 가능한 UI –
Avante파일 유형을 인식하는 모든 마크다운 렌더러와 호환되며, 선택적 UI 헬퍼(snacks.nvim,nui.nvim,render-markdown.nvim등)도 지원됩니다.
설치 방법
- 추천은 lazy.nvim (또는 다른 플러그인 매니저).
make단계에서 작은 Rust 바이너리를 빌드(또는 사전 빌드된 버전 다운로드). README의 예시 lazy.nvim 스크립트:{ "yetone/avante.nvim", build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" or "make", event = "VeryLazy", version = false, opts = { instructions_file = "avante.md", provider = "claude", providers = { claude = { endpoint = "https://api.anthropic.com", model = "claude-sonnet-4-20250514", timeout = 30000, extra_request_body = { temperature = 0.75, max_tokens = 20480 }, }, }, }, dependencies = { "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim", ... }, } - 다른 매니저(Pack, rocks.nvim, vim-plug, mini.deps, Home Manager, Nixvim)도 문서화되어 있습니다.
기본 사용법
require('avante').setup{ … }– 선택적으로 설정을 전달합니다.:Avante(또는mappings.suggestion에서 정의된 키맵)로 채팅을 엽니다.- 질문이나 요청을 입력합니다 (예: "이 함수를 async/await로 리팩터링해 주세요"). Avante는 모델의 응답을 스트리밍합니다.
<M-l>(기본값)으로 제안을 수락하거나<C-]>로 거부합니다.- 변경사항은 차이로 적용되며,
]x/[x로 차이를 탐색할 수 있습니다. - Zen 모드를 활성화하려면
./contrib/avante에서 헬퍼 스크립트를 설치하고 터미널에서avante를 실행합니다. Neovim을 렌더링에 사용하는 CLI를 얻게 됩니다.
사용자 정의 포인트
- 제공자 구성 – 지원되는 모델 중 하나를 선택하고, 온도, 최대 토큰 수, 타임아웃 등을 설정할 수 있습니다.
- 행동 플래그 – 자동 제안, 자동 차이 적용, 토큰 수 계산, 자동 파일 추가 등을 전환할 수 있습니다.
- 키 매핑 – 주요 작업(수락, 다음/이전 제안, 차이 탐색, 제출, 취소)은 모두 재정의 가능합니다.
- 프롬프트 로거 – 활성화/비활성화, 로그 디렉터리 변경, 이전/다음 로그 탐색 키 바인딩 설정.
- 듀얼 부스트 – 두 제공자의 출력을 결합하는 실험적 모드.
에코시스템 및 종속성
- 핵심 Lua 코드(
plenary.nvim,nui.nvim). - 선택적 UI 헬퍼:
render-markdown.nvim,nvim-cmp,img-clip.nvim,copilot.lua,snacks.nvim,mini.pick,telescope.nvim,fzf-lua. - 작은 Rust 바이너리(Cargo로 빌드)가 LLM API와의 통신을 담당합니다.
성숙도
- 활발히 유지 관리 중 (Lua 및 Rust 테스트용 CI 배지, README에 빠른 반복 기록).
- Neovim 0.11+ 필요 (전체 기능은 0.12+ 권장).
- 일부 기능은 실험적 (자동 제안, 듀얼 부스트, ACP 자동 승인).
누구에게 도움이 되나요
- 대부분의 시간을 Neovim에서 보내며, 에디터를 떠나지 않고도 인라인 AI 보조를 원하는 개발자.
avante.md를 통해 LLM이 프로젝트 전용 코딩 가이드라인을 강제하고 싶은 팀.- Cursor AI IDE 경험을 좋아하지만, 완전히 오픈소스이고 자체 호스팅 가능한 워크플로우를 선호하는 사용자.
위 정보는 리포지토리의 README에서 직접 가져왔습니다.
이 프로젝트를 다룬 글
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트