Neovim은 많은 개발자들에게 사랑받는 텍스트 편집기이지만, AI 코드 보조 도구와의 통합은 항상 아쉬운 부분으로 남아 있었습니다. 최근 Anthropic이 출시한 Claude Code는 VS Code와 JetBrains에서의 지원으로 큰 주목을 받았지만, Neovim 사용자들은 그 혜택을 누릴 수 없었습니다. 하지만 이제는 아닙니다! claudecode.nvim 플러그인이 Neovim 사용자들에게도 Claude Code의 뛰어난 기능을 제공합니다. 이 블로그 글에서는 claudecode.nvim의 설치 및 사용법을 상세히 설명하겠습니다.

claudecode.nvim 프로젝트 소개

claudecode.nvim은 Anthropic의 AI 코딩 보조 도구인 Claude Code를 Neovim에 통합하는 첫 번째 IDE 확장 플러그인입니다. 이 플러그인은 완전히 순수한 Lua로 작성되었으며, WebSocket 기반의 MCP 프로토콜을 구현하여 Neovim 사용자들에게 AI 지원 코딩 경험을 제공합니다. 이 프로젝트는 2,547개의 스타를 기록하며 활발히 사용되고 있습니다.

주요 특징

  • 순수 Lua 구현: vim.loop와 Neovim 내장 기능을 사용하여 만들어졌으며, 외부 의존성이 없습니다.
  • 100% 프로토콜 호환성: 기존의 Claude Code 확장과 동일한 WebSocket MCP 프로토콜을 구현합니다.
  • 완전한 문서화: PROTOCOL.md에서 통합 방법을 배울 수 있습니다.
  • 최초 출시: 기존의 경쟁자보다 빠르게 Neovim 지원을 출시했습니다.
  • AI로 개발: Claude를 사용하여 Claude의 프로토콜을 역설계했습니다.
  • 설치 가이드

    claudecode.nvim의 설치는 매우 간단합니다. Neovim에서 플러그인 관리 도구를 사용하여 설치할 수 있습니다. 여기서는 packer.nvim을 사용한 예제를 보여드리겠습니다.
    require('packer').startup(function()
      use {
        "coder/claudecode.nvim",
        requires = { "folke/snacks.nvim" },
        config = true,
        keys = {
          { "<leader>a", nil, desc = "AI/Claude Code" },
          { "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },
          { "<leader>af", "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" },
          { "<leader>ar", "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" },
          { "<leader>aC", "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" },
          { "<leader>am", "<cmd>ClaudeCodeSelectModel<cr>", desc = "Select Claude model" },
          { "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer" },
          { "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send to Claude" },
          {
            "<leader>as",
            "<cmd>ClaudeCodeTreeAdd<cr>",
            desc = "Add file",
            ft = { "NvimTree", "neo-tree", "oil", "minifiles", "netrw" },
          },
          { "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },
          { "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
        },
      }
    end)

    이렇게 설정하면 플러그인이 자동으로 필요한 설정을 구성해줍니다.

    필수 요구 사항

  • Neovim 버전 0.8.0 이상
  • Claude Code CLI 설치
  • folke/snacks.nvim 설치
  • 로컬 설치 구성

    Claude Code를 로컬로 설치한 경우, 플러그인이 로컬 경로를 사용하도록 구성해야 합니다. claude migrate-installer 명령어를 사용하여 글로벌 설치를 로컬로 이동할 수 있습니다.

    which claude

    설치 유형을 확인한 후, 로컬 설치인 경우 다음과 같이 구성합니다.

    require('packer').startup(function()
      use {
        "coder/claudecode.nvim",
        requires = { "folke/snacks.nvim" },
        config = function()
          require('claudecode').setup({
            terminal_cmd = "~/.claude/local/claude", -- 로컬 설치 경로 지정
          })
        end,
        keys = {
          -- 키맵핑
        },
      }
    end)

    기본 사용법

    플러그인이 설치되고 설정이 완료되면, 다음과 같은 명령어로 Claude Code와 상호작용할 수 있습니다:

  • <leader>ac: Claude를 토글합니다.
  • <leader>af: Claude에 포커스를 맞춥니다.
  • <leader>ar: Claude를 재개합니다.
  • <leader>as: 선택한 코드를 Claude에게 전송합니다.

이러한 명령어들은 AI 코딩 보조 도구를 사용하여 코드 완성, 오류 수정, 기능 추가 등을 지원합니다. 예를 들어, 특정 함수의 구현을 요청하거나 주석을 추가하는 등의 작업을 쉽게 수행할 수 있습니다.

활용 시나리오

  1. 코드 리뷰: 작성한 코드를 Claude에게 보내고, 피드백을 받을 수 있습니다.
  2. 코드 완성: 코드를 작성하는 동안 필요한 기능이나 메서드를 자동으로 제안받아 빠르게 작업할 수 있습니다.
  3. 버그 수정: 특정 오류를 설명하고 수정 방법을 요청하여 빠르게 문제를 해결할 수 있습니다.

유사 도구와 비교

AI 코딩 보조 도구로는 TabNine, GitHub Copilot 등이 있습니다. 하지만 claudecode.nvim은 Neovim 사용자에게 최적화된 환경을 제공하며, 코드 작성 시 AI의 도움이 필요한 순간에 즉각적으로 반응합니다. TabNine과 GitHub Copilot은 유료 모델이 필요한 경우가 많지만, claudecode.nvim은 MIT 라이선스 하에 무료로 제공됩니다.

마무리

Neovim 사용자이시라면 claudecode.nvim은 꼭 시도해볼 만한 플러그인입니다. AI 코딩 보조 도구의 도움으로 개발 생산성을 극대화할 수 있습니다. GitHub에서 이 프로젝트를 확인하고 설치해보세요!

GitHub 바로가기