A Neovim plugin for integrating with Claude Code, Anthropic's CLI for Claude.
- 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)
- Neovim 0.8.0+
- Claude Code CLI installed and in PATH
{
'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' },
},
}use {
'mrcloudchase/claude-code.nvim',
config = function()
require('claude-code').setup()
end,
}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)
},
})| 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 |
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)- Open your project in Neovim
- Press
<leader>ccto open Claude Code in a floating terminal - Select code and press
<leader>csto copy it with context - Paste into Claude Code and describe what you want
- After Claude makes changes, press
<leader>cdto review diffs - Accept or reject changes using git
This plugin works well with:
- diffview.nvim - Enhanced diff viewing
- vim-fugitive - Git integration
If these plugins are installed, :ClaudeCodeDiff will use them automatically.
MIT