You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: add fork features section and recommended configuration
- Add "Fork Features" section highlighting multi-session support and
visual tab bar features unique to this fork
- Add "Recommended Configuration" with practical floating window setup
- Update all repo references from coder/claudecode.nvim to snirt/claudecode.nvim
- Add multi-session keymaps to installation example
- Update CHANGELOG with new features and bug fixes
@@ -199,6 +291,13 @@ Configure the plugin with the detected path:
199
291
-`:ClaudeCodeDiffAccept` - Accept diff changes
200
292
-`:ClaudeCodeDiffDeny` - Reject diff changes
201
293
294
+
**Multi-Session Commands:**
295
+
296
+
-`:ClaudeCodeNew` - Create a new Claude terminal session
297
+
-`:ClaudeCodeSessions` - Show session picker (fzf-lua if available)
298
+
-`:ClaudeCodeSwitch <number>` - Switch to session by number
299
+
-`:ClaudeCodeCloseSession [number]` - Close a session (active session if no number)
300
+
202
301
## Working with Diffs
203
302
204
303
When Claude proposes changes, the plugin opens a native Neovim diff view:
@@ -208,6 +307,41 @@ When Claude proposes changes, the plugin opens a native Neovim diff view:
208
307
209
308
You can edit Claude's suggestions before accepting them.
210
309
310
+
## Multi-Session Support
311
+
312
+
Run multiple Claude Code sessions simultaneously:
313
+
314
+
-**Create sessions**: `:ClaudeCodeNew` opens a new terminal session
315
+
-**Switch sessions**: Use `:ClaudeCodeSessions` to pick from a list, or `:ClaudeCodeSwitch 2` to switch directly
316
+
-**Close sessions**: `:ClaudeCodeCloseSession` closes the active session, or `:ClaudeCodeCloseSession 2` to close a specific one
317
+
318
+
Each session has isolated:
319
+
320
+
- Terminal buffer and process
321
+
- WebSocket client connection
322
+
- Selection tracking context
323
+
- @ mention queue
324
+
325
+
### Tab Bar for Sessions
326
+
327
+
Enable a visual tab bar for managing multiple sessions:
328
+
329
+
```lua
330
+
terminal= {
331
+
tabs= {
332
+
enabled=true,
333
+
mouse_enabled=true, -- Click tabs to switch, middle-click to close
334
+
},
335
+
}
336
+
```
337
+
338
+
The tab bar shows:
339
+
340
+
- Numbered tabs for each session (active marked with `*`)
341
+
- Close button (x) on each tab
342
+
- New session button (+)
343
+
- Supports keyboard navigation (Alt+Tab, Alt+Shift+Tab) and mouse interactions
344
+
211
345
## How It Works
212
346
213
347
This plugin creates a WebSocket server that Claude Code CLI connects to, implementing the same protocol as the official VS Code extension. When you launch Claude, it automatically detects Neovim and gains full access to your editor.
@@ -238,7 +372,7 @@ For deep technical details, see [ARCHITECTURE.md](./ARCHITECTURE.md).
238
372
239
373
```lua
240
374
{
241
-
"coder/claudecode.nvim",
375
+
"snirt/claudecode.nvim",
242
376
dependencies= { "folke/snacks.nvim" },
243
377
opts= {
244
378
-- Server Configuration
@@ -265,6 +399,31 @@ For deep technical details, see [ARCHITECTURE.md](./ARCHITECTURE.md).
265
399
auto_close=true,
266
400
snacks_win_opts= {}, -- Opts to pass to `Snacks.terminal.open()` - see Floating Window section below
267
401
402
+
-- Smart ESC handling: double-tap ESC to exit terminal mode
403
+
esc_timeout=200, -- Timeout in ms (0 or nil to disable smart ESC)
404
+
405
+
-- Terminal keymaps
406
+
keymaps= {
407
+
exit_terminal="<Esc><Esc>", -- Key to exit terminal mode (set to false to disable)
408
+
},
409
+
410
+
-- Tab bar for multi-session management
411
+
tabs= {
412
+
enabled=false, -- Enable tab bar (default: false)
413
+
height=1, -- Height in lines
414
+
show_close_button=true, -- Show [x] close button on tabs
415
+
show_new_button=true, -- Show [+] button for new session
416
+
separator=" | ", -- Separator between tabs
417
+
active_indicator="*", -- Indicator for active tab
418
+
mouse_enabled=false, -- Enable mouse clicks on tabs
419
+
keymaps= {
420
+
next_tab="<A-Tab>", -- Switch to next session
421
+
prev_tab="<A-S-Tab>", -- Switch to previous session
422
+
close_tab="<A-w>", -- Close current session
423
+
new_tab="<A-+>", -- Create new session
424
+
},
425
+
},
426
+
268
427
-- Provider-specific options
269
428
provider_opts= {
270
429
-- Command for external terminal provider. Can be:
@@ -332,7 +491,7 @@ The `snacks_win_opts` configuration allows you to create floating Claude Code te
0 commit comments