Skip to content

mrcloudchase/claude-code.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

claude-code.nvim

A Neovim plugin for integrating with Claude Code, Anthropic's CLI for Claude.

Features

  • Floating terminal - Launch Claude Code in a centered floating window
  • Context sending - Send selected code, current file path, or entire buffer to Claude
  • Diff integration - Review changes made by Claude with git diff (supports diffview.nvim and fugitive)

Requirements

Installation

lazy.nvim

{
  'mrcloudchase/claude-code.nvim',
  config = function()
    require('claude-code').setup()
  end,
  keys = {
    { '<leader>cc', '<cmd>ClaudeCode toggle<cr>', desc = 'Toggle Claude Code' },
    { '<leader>cs', '<cmd>ClaudeCodeSend selection<cr>', mode = 'v', desc = 'Send selection to Claude' },
    { '<leader>cf', '<cmd>ClaudeCodeSend file<cr>', desc = 'Send file path to Claude' },
    { '<leader>cd', '<cmd>ClaudeCodeDiff<cr>', desc = 'Show git diff' },
  },
}

packer.nvim

use {
  'mrcloudchase/claude-code.nvim',
  config = function()
    require('claude-code').setup()
  end,
}

Configuration

require('claude-code').setup({
  window = {
    width = 0.8,      -- 80% of editor width
    height = 0.8,     -- 80% of editor height
    border = 'rounded', -- Border style: 'none', 'single', 'double', 'rounded', 'solid', 'shadow'
  },
  command = 'claude', -- CLI command to run
  mappings = {
    close = '<Esc>',  -- Key to close the floating window (in terminal mode)
  },
})

Commands

Command Description
:ClaudeCode Toggle the Claude Code terminal
:ClaudeCode toggle Toggle the Claude Code terminal
:ClaudeCode open Open Claude Code terminal
:ClaudeCode close Close Claude Code terminal
:ClaudeCodeSend file Send current file path to clipboard
:ClaudeCodeSend selection Send visual selection to clipboard
:ClaudeCodeSend buffer Send entire buffer to clipboard
:ClaudeCodeDiff Show git diff of changes

Recommended Keybindings

local opts = { noremap = true, silent = true }

-- Toggle Claude Code
vim.keymap.set('n', '<leader>cc', '<cmd>ClaudeCode toggle<cr>', opts)

-- Send context
vim.keymap.set('v', '<leader>cs', '<cmd>ClaudeCodeSend selection<cr>', opts)
vim.keymap.set('n', '<leader>cf', '<cmd>ClaudeCodeSend file<cr>', opts)
vim.keymap.set('n', '<leader>cb', '<cmd>ClaudeCodeSend buffer<cr>', opts)

-- Diff management
vim.keymap.set('n', '<leader>cd', '<cmd>ClaudeCodeDiff<cr>', opts)

Workflow

  1. Open your project in Neovim
  2. Press <leader>cc to open Claude Code in a floating terminal
  3. Select code and press <leader>cs to copy it with context
  4. Paste into Claude Code and describe what you want
  5. After Claude makes changes, press <leader>cd to review diffs
  6. Accept or reject changes using git

Integration with Other Plugins

This plugin works well with:

If these plugins are installed, :ClaudeCodeDiff will use them automatically.

License

MIT

About

A Neovim plugin for integrating with Claude Code CLI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages