Skip to content

Commit 71a083a

Browse files
author
Venkata Subramani Renduchintala
committed
feat(ai): integrate Claude Code into Neovim via claudecode.nvim
Add coder/claudecode.nvim with native terminal split (right, 38%): - <leader>ac toggle Claude Code panel - <leader>af focus panel - <leader>as send visual selection to Claude - <leader>ab add current buffer to context - <leader>aa accept diff / <leader>aD deny diff - <leader>am switch model - <leader>as add file from neo-tree/NvimTree Also add kezhenxu94/nvim-claude-lsp for LSP completions inside Claude's Ctrl+G compose buffers (slash commands, @file, skills).
1 parent f919002 commit 71a083a

2 files changed

Lines changed: 63 additions & 0 deletions

File tree

lua/plugins/configs/claudecode.lua

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
return {
2+
-- Claude Code integration via the same WebSocket/MCP protocol as the VS Code extension.
3+
-- Opens claude CLI in a native terminal split; tracks your active buffer and selection
4+
-- so Claude has context without you having to paste anything.
5+
{
6+
"coder/claudecode.nvim",
7+
cmd = {
8+
"ClaudeCode",
9+
"ClaudeCodeFocus",
10+
"ClaudeCodeSend",
11+
"ClaudeCodeAdd",
12+
"ClaudeCodeTreeAdd",
13+
"ClaudeCodeDiffAccept",
14+
"ClaudeCodeDiffDeny",
15+
"ClaudeCodeSelectModel",
16+
"ClaudeCodeStatus",
17+
},
18+
keys = {
19+
{ "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "[AI] Toggle Claude Code" },
20+
{ "<leader>af", "<cmd>ClaudeCodeFocus<cr>", desc = "[AI] Focus Claude Code" },
21+
{ "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "[AI] Send selection" },
22+
{ "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "[AI] Add buffer to context" },
23+
{ "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "[AI] Accept diff" },
24+
{ "<leader>aD", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "[AI] Deny diff" },
25+
{ "<leader>am", "<cmd>ClaudeCodeSelectModel<cr>", desc = "[AI] Select model" },
26+
-- Add file to Claude context from file explorers
27+
{ "<leader>as", "<cmd>ClaudeCodeTreeAdd<cr>",
28+
ft = { "neo-tree", "NvimTree", "oil", "netrw" },
29+
desc = "[AI] Add file to context" },
30+
},
31+
opts = {
32+
terminal = {
33+
provider = "native",
34+
split_side = "right",
35+
split_width_percentage = 0.38,
36+
auto_close = true,
37+
auto_insert = true,
38+
},
39+
track_selection = true,
40+
diff_opts = {
41+
layout = "vertical",
42+
auto_resize_terminal = true,
43+
},
44+
},
45+
config = function(_, opts)
46+
require("claudecode").setup(opts)
47+
require("which-key").add({
48+
{ "<leader>a", group = "AI / Claude Code" },
49+
})
50+
end,
51+
},
52+
53+
-- LSP completions inside Claude Code's Ctrl+G compose buffers:
54+
-- slash commands (/compact, /clear …), @file references, and installed skills.
55+
{
56+
"kezhenxu94/nvim-claude-lsp",
57+
ft = { "markdown", "text" },
58+
opts = {},
59+
},
60+
}

lua/plugins/init.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ local plugins = {
116116

117117
-- Latex based on VimTex
118118
require("plugins.configs.latex"),
119+
120+
---- AI
121+
require("plugins.configs.claudecode"),
119122
}
120123

121124
-- vim.api.nvim_echo({ { 'Active theme: ' .. theme.theme_name, "Normal" } }, true, {});

0 commit comments

Comments
 (0)