dlants/magenta.nvim
A tool-use-focused LLM plugin for neovim.
magenta.nvim – Neovim 내에서의 AI 강화 코딩
무엇인가요 – Neovim 플러그인으로, 직접 에디터에서 Anthropic LLM(Claude)과 대화할 수 있게 해줍니다. 이 모델을 에이전트 로 간주하여 명령을 주고, 전체 프롬프트를 확인하고, 출력을 편집하며, 플러그인이 그 편집 내용을 다시 모델에 피드백할 수 있습니다. 목표는 익숙한 Vim 워크플로우 내에서 "개발자 ↔ AI"의 원활한 루프를 유지하는 것입니다.
핵심 아이디어
- 투명한 에이전트 상호작용 – 모든 프롬프트, 도구 호출, 토큰 사용량이 시각화됩니다. 적용하기 전에 모델의 제안된 변경 사항을 편집할 수 있습니다.
- 편집 설명 언어(EDL) – 삽입, 대체, 삭제를 설명하는 작은 DSL로, 원시 텍스트 차이보다 훨씬 토큰 효율이 높습니다.
- OS 수준의 사전 환경 – Anthropic의
sandbox-runtime(macOS는 Seatbelt, Linux는 bubblewrap)를 사용하여 파일 시스템 및 네트워크 권한을 설정 가능한 상태에서 도구 명령을 실행하여 실수로 자격 증명이 유출되는 것을 줄입니다. - Docker 하위 에이전트 – Docker 컨테이너에서 격리된 에이전트를 생성하여 병렬로 자율적인 작업(예: 별도 브랜치에서 무거운 린팅 또는 코드 생성)을 수행할 수 있습니다.
- 스레드별 버퍼 – 각 대화 스레드가 고유의 Neovim 버퍼에 유지되어, 일반 파일처럼 탐색, 점프 리스트, 스레드 선택이 가능합니다.
- 선언형 UI – React와 유사한 VDOM 시스템이 버퍼 내부에 풍부한 UI(접을 수 있는 섹션, 승인 대화상자, 종소리 등)를 렌더링합니다.
- 사용자 정의 에이전트 – 시스템 프롬프트는
~/.magenta/agents/(또는.magenta/agents/) 아래의 일반 마크다운 파일로 관리되므로, Lua/TS 코드를 수정하지 않고도 새로운 성격을 만들 수 있습니다. - 스마트 캐싱 및 자동 압축 – 증분 요약을 통해 토큰 수를 정확히 계산하고 필요 시 기록을 압축하여 긴 스레드도 비용을 낮게 유지합니다.
사용 방법
- 플러그인을 설치(‘lazy.nvim’ 또는 Neovim 내장 패키지 매니저)하고
npm run build를 실행하여dist/magenta.mjs를 생성합니다. - Anthropic 모델(예:
claude-opus-4-8)을 가리키는 프로필을 구성합니다. README에는 최소한의 Luasetup호출 예시가 나와 있습니다. - 채팅 사이드바(
<leader>mt)를 열고@로 시작하는 명령어를 입력합니다(예:@file: src/main.rs로 파일을 컨텍스트에 추가,@fork로 스레드 분기,@fast로 저렴한 모델 사용). - 모델의 응답이 버퍼에 표시됩니다. 제안된 변경 사항을 편집할 수 있으며, 편집한 내용의 diff는 다음 턴에 다시 모델에 전송됩니다.
- 선택적 도구: Docker 하위 에이전트, 사전 환경 제어된 쉘 명령어, PDF 읽기, 웹 검색 등은
@명령어 또는 내장 도구 메뉴를 통해 호출됩니다.
설치 스크립트
-- lazy.nvim 예시
return {
"dlants/magenta.nvim",
lazy = false,
build = "npm run build",
opts = {},
}
또는 README에 설명된 대로 Neovim의 내장 pack 매니저를 사용합니다.
설정 요약
- 프로필 – 모델, 제공자, API 키 환경 변수, 선택적 빠른/사고용 모델을 정의합니다.
- 프로젝트 설정 – 리포지토리별로
.magenta/options.json을 설정하여 프로필 오버라이드, 컨텍스트 파일 자동 추가, 기술 디렉터리 설정이 가능합니다. - 스킬 – 프로젝트 고유의 지식을 에이전트에 주입하는 마크다운 파일입니다.
- 사전 환경 정책 – 에이전트가 접근할 수 있는 파일 시스템 경로나 네트워크 호스트를 세밀하게 조정하며, 정규 표현식 패턴은 승인 프롬프트를 트리거합니다(기본적으로
git push를 차단). - MCP 서버 – 추가 기능을 제공하는 선택적 원격 도구 서버입니다.
왜 중요한가요
- AI 지원 워크플로우 전체를 Neovim 내부에 유지하여 외부 CLI나 웹 UI로의 전환을 피합니다.
- 에디터 내 AI 플러그인 중에서는 드물게 모델이 할 수 있는 행동에 대해 세밀한 제어를 제공합니다.
- EDL DSL은 토큰 사용량을 줄여 고가의 Claude 모델을 대규모 수정에 더 저렴하게 사용할 수 있게 합니다.
- 투명한 UI와 테스트 기반 아키텍처로 기여자에게 접근하기 쉬운 플러그인입니다.
상태 – 활발히 유지 관리 중 (2026년 4월까지 업데이트 목록 있음). 주로 Anthropic을 지원하며, 다른 제공자는 현재는 제거되었습니다.
추가 읽기 – Neovim 내에서 :help magenta.nvim, 리포지토리의 doc/ 파일, README 상단에 링크된 저자의 블로그 글.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트