Skip to content

Releases: folke/sidekick.nvim

v2.3.0

20 Mar 10:10
53a2d3a

Choose a tag to compare

2.3.0 (2026-03-20)

Features

  • config: ctrl+x now blurs instead of another hide (122c1ca)

Bug Fixes

  • cli: incorrect range when on same row. Closes #186. Fixes #184 (ff8ef47)
  • docs: update Claude installation instructions (#255) (43c7a11)

v2.2.0

20 Mar 09:24
1fbd882

Choose a tag to compare

2.2.0 (2026-03-20)

Features

  • agents: add pi agent (#247) (7e9da9b)
  • nes: set nes.diff.show = "cursor" to only show nes diffs at the cursor. Closes #266 (b1568d3)
  • terminal: add files/buffers inline with spaces from picker. Closes #133 (e743ac7)
  • terminal: make re-entering terminal/normal mode more sensible (9eb6530)

Bug Fixes

  • codex: update deprecated search option (#166) (88cb6dd)
  • config: remove web search option from codex command (#257) (f8b4f58)
  • config: update codex search option (#167) (c302dba)
  • nes: correct inline diff artifact when appending to end of line (#250) (f95ba54)
  • nes: never process cancelled (or out of order) requests (f8eac10)
  • opencode: Use alt+p instead of ctrl+p. Fixes #175 (a6fe80f)
  • terminal: ready check should not fail if cli window is closed. Fixes #252 (6b69c42)
  • treesitter: dont use treesitter stringbuffers (317ada1)

v2.1.0

23 Oct 19:47
dc2710a

Choose a tag to compare

2.1.0 (2025-10-23)

Features

  • cli: added snacks picker action to send files with sidekick. Closes #134 (96b84ff)
  • cli: added snacks/telescope/fzf-lua pickers for selecting files/buffers to send (0da0e16)
  • cli: added terminal keymaps <c-f> to select files and <c-b> to select buffers to send. (c827ad2)
  • diagnostics: diagnostics will now use the visual selection if needed. Closes #146 (fb0cbaa)
  • snacks: make vim.ui.select snacks options configurable. Closes #149 (7568825)
  • status: added cli status to be used in statuslines. Closes #143 (e291b6b)
  • terminal: smarter way to determine that the cli tool is ready to accept input. Closes #150 (04265f7)

Bug Fixes

  • cli.loc: allow row/col to be nil (bb87f41)
  • cli.picker: do the stop/start insert dance to keep pickers / terminals happy (9941a1c)
  • cli.status: schedule detach event to prevent loop. Closes #144 (9390cb7)
  • cli: use filter options for send. Closes #138 (d0ee1ef)
  • nes.edit: add buffer validation before accessing position (#147) (2cb7359)
  • nes: ModeChanged: *:n -> i:n, so only when leaving insert to normal mode. Closes #151 (9e29145)
  • opencode: opencode implements scrolling natively, so don't use scrollback there. See #152 (d9e1fa2)
  • scrollback: focus issues with other terminals entering/leaving like fzf-lua (ff55eb3)
  • status: show correct signin command when lsp is from copilot.lua (09ebeb4)
  • terminal: better tracking of terminal mode when entering/leaving the sidekick window (22a6326)
  • terminal: enbable/disable cursorline when in normal/terminal mode in the sidekick window (83b6815)
  • terminal: fckup with scrollback (cbbf53b)
  • terminal: handle closing the last window. Closes #124 (99824c2)
  • terminal: increase initial send delay when opening the terminal. Closes #150 (e98008f)
  • terminal: only use scrollback buffer when needed (9d9d8cc)

v2.0.0

17 Oct 13:11
4cab264

Choose a tag to compare

2.0.0 (2025-10-17)

⚠ BREAKING CHANGES

  • config: changed the default keymaps. Please check the updated documentation and example mappings

Features

  • cli.claude: transform line ranges to a format Claude can understand. Closes #59 (4a492da)
  • cli.select: better distinction between attaching to terminal/external (48d0bf6)
  • cli: close() on an external session, now detaches from that session. Closes #98 (d2e6c64)
  • cli: added <c-q> to hide in normal mode, so from terminal double <c-q> will hide (358804c)
  • cli: added health checks and optional reqs to the docs for lsof and ps. Fixes #89 (d403ec3)
  • cli: added some config option validation (c236b38)
  • cli: added terminal navigation with <c-hjkl>. Only mapped when not a float and a window in the dir exists. See #51 (b48e177)
  • cli: deduplicate cli tool sessions. Closes #92 (e5bcf17)
  • cli: handle special filenames for Claude, Gemini, Qwen. Fixes #130 (19b5985)
  • config: changed the default keymaps. Please check the updated documentation and example mappings (6608705)
  • context: you can now use context fallbacks like {function|line} (076147a)
  • copilot: allow configuring minimum level for copilot LSP messages (4b6750b)
  • opencode: add pid to external opencode sessions (3d9d519)
  • terminal: much better scrollback buffer. no flickering and should work in all modes (3aa2fe5)
  • terminal: restore normal/terminal mode when entering the sidekick window (50c40d5)
  • terminal: switch to scrollback when doing mouse scroll (0dd3c3b)
  • tmux: entering normal mode in a tmux terminal, now loads the whole tmux scrollback (a453f76)
  • tmux: some tools won't process input if they don't have focus, so tools can now set mux_focus = true (41dec4d)
  • tool: tools can now further format text before it's sent. See #130, see #59 (28f8a07)
  • util: weak ref util method (8036aea)

Bug Fixes

  • cli.prompt: proper way of rendering templates with highlights (30b7b9e)
  • cli.select: sort terminal sessions before external sessions (c487d53)
  • cli.state: allow creating new sessions for tools that have only external sessions (c588efb)
  • cli: allow sending a newlline msg="\n" (fc0067a)
  • cli: don't send empty messages (63f626c)
  • location: different format that should work for most cli tools. Closes #59 (d570e1f)
  • nes: added triggerKind. Maybe that's needed for nes? (e535808)
  • nes: better didFocus tracking (3669eae)
  • nes: don't clear NES on TextChanged or BufWritePre. Closes #91 (32fa55c)
  • nes: don't process unloaded buffers. Closes #86 (620adf0)
  • nes: exec nes commands AFTER edits have been applied (80d1604)
  • nes: skip old edits early (8395007)
  • nes: textDocument/didFocus (b7085d7)
  • nes: trigger on ModeChanged *:n instead of InsertLeave. See #125 (abbd051)
  • opencode: check that open server is actually from an opencode process. Closes #87 (cb8485a)
  • procs: handle case where USER is not set. Closes #82 (01f89b7)
  • q: filer procs on qchat instead of q, which seems to be the actual binary. Closes #80 (4b65b8a)
  • qwen: set mux_focus = true since qwen doesnt process input if unfocused. Fixes #104 (c262b25)
  • sessions: load tools during session setup, since thet may register session backends (like opencode) (c7761eb)
  • status: always return nil when copilot status is disabled in config (f908fec)
  • terminal: allow auto split width/height (#111) (03cf9fb)
  • terminal: better handling of crlf for send. See #119 (7185e08)
  • terminal: blur on hide (81b2a85)
  • terminal: cleanup scrollback buffer (9ef38db)
  • terminal: don't error when it's the last window and hiding. Closes #124 (cab3ec4)
  • terminal: keymap rhs fallback to rhs string (2b644f0)
  • terminal: no need to check for mouse scroll when we're not in terminal mode (b52c3be)
  • terminal: only show scrollback when entering normal mode and the terminal window is current. Closes #106 (1e03666)
  • terminal: remove padding since it causes issues with terminal reflow (Neovim bug) (cc32068)
  • terminal: safer way of entering terminal mode from scrollback buffer (#129) (2195213)
  • terminal: safer way of entering terminal mode from scrollback buffer....
Read more

v1.3.0

08 Oct 12:27
9dee4da

Choose a tag to compare

1.3.0 (2025-10-08)

Features

  • context: added quickfix context provider in CLI prompts (#61) (6c24d47)
  • context: added treesitter context class, function. You can add more in your config. (8fb70e0)
  • mux: default to tmux, unless running inside a zellij session (2110966)
  • session: attach to running tools in other tmux sessions (#74) (1de752c)
  • tmux: notify when starting a cli tool in a new window. (c3d7572)
  • util: Util.emit (b0f3762)

Bug Fixes

  • cli: fix insert mode for prompt action. Closes #50 (8ebbd75)
  • cli: open cli window when started. Closes #78 (b3560df)
  • cli: properly propagate tool filter for show/toggle/focus. Closes #57 (bc44db0)
  • copilot-cli: exclude copilot-language-server procs. Closes #75 (ce85284)
  • mux: shorter session names. Fixes #56 (a4e62ce)
  • opencode: onlny attach to existing opencode sessions on non-windows. Closes #76 (063457e)
  • opencode: set back to system theme, since it is still not working for some (b2818ec)
  • session: add optional detach() for session backends (3aa531e)
  • session: added detach (7e88fa5)
  • sessions: better attached session tracking (eaa7592)
  • state: metatable to always get latest state through getters (e0b32f5)
  • terminal: use exepath() on windows. See #53 (c307316)
  • terminal: use shell on windows for jobstart when cmd is not an exe. See #53 (3f1ccba)
  • test: treesitter woes in tests (af931db)
  • tmux: add detach-on-destroy option to tmux sessions (#67) (c525b13)
  • tmux: set tool env vars. Closes #62 (e869205)
  • tmux: use load-buffer instead of set-buffer to prevent issues with non-escaped text (de62ed1)

v1.2.0

02 Oct 17:19
373b9f7

Choose a tag to compare

1.2.0 (2025-10-02)

Features

  • added :Sidekick command (2f17d6b)
  • cli.prompts: when viewing the prompt select with snacks, you can copy with <c-y> and y in insert/normal mode (f2098d9)
  • cli: added Amazon Q (e84c5d0)
  • cli: added proper multi-session management. you can now also resume mux sessions from other directories (605c26b)
  • cli: allow dynamic terminal configuration. Closes #25 (6b265fa)
  • cli: allow overriding/adding keymaps per tool (6def9f4)
  • cli: lots of prompt/context improvements (8a1f761)
  • cli: rework prompts/context and sending (75b1897)
  • config: added aider (5144187)
  • context: lots of improvements to context including visual selection and proper previews (7877322)
  • health: added extra checks for duplicate Copilot LSP servers (0b89f04)
  • nes: added enable/disable/toggle for NES (2d280e9)
  • nes: disable nes fully when enabled=false (11428c1)
  • nes: trigger SidekickNesShow and SidekickNesHide after update. Closes #19 (302cec7)
  • terminal: added full support for split / float layouts (c93c0cb)
  • terminal: set ft=sidekick_terminal (03366cc)
  • tmux: disable status bar in sidekick window (#42) (832165b)
  • tmux: pass custom config file including user's config with a disabled status bar. Closes #36 (6f06163)
  • tools: added crush (d6e25f3)

Bug Fixes

  • cli.context: don't add a location for non-file buffers (d72c611)
  • cli.context: get the correct buffer for providing context (754ee76)
  • cli.context: lastused sorting (c448bb2)
  • cli.crush: use <a-p> for prompt instead of <c-p> for crush, since it's needed for its own functionality. Fixes #17 (efbce7a)
  • cli.prompts: don't show empty rendered prompts in select (d930586)
  • cli: fup (094080d)
  • cli: prompt action (8d9b06c)
  • cli: removed some default keymaps since they clash with cli tools. Closes #30 (8519d3b)
  • cli: set proper TERM for cli tools. Fixes #37 (7608be2)
  • health: special checks for LSP server bundled with copilot.lua and copilot.vim. Fixes #15 (d11ee7f)
  • mux: M:_sessions -> M._sessions (c73cc39)
  • mux: better commands to get existing sessions (feea2b2)
  • nes: allow any lsp server name containing copilot (#9) (74acbde)
  • nes: delete at end of file triggered error (7b8769f)
  • opencode: remove hack since it's no longer needed. See #16 (f2dcd16)
  • opencode: work-around for opencode rendering artifacts by forcing system theme. See #16 (d29fbc9)
  • terminal: change initial delay from 2 seconds to 500 ms (c7948f1)
  • terminal: check for exit code ~= 0 (5bd2d01)
  • terminal: don't automatically close the terminal window when the command exited too quickly (52a6ed4)
  • terminal: don't close when cli tool exits too quickly (63ec164)
  • terminal: set winfixwidth and winfixheight when needed (09dbae1)
  • terminal: startinsert on focus and stopinsert on blur (5e9f9da)
  • terminal: use vim environ instead of uv (0d99706)
  • zellij: disable session serialization for AI tools (71d17b9)

v1.1.0

29 Sep 21:57
55603ca

Choose a tag to compare

1.1.0 (2025-09-29)

Features

  • cli: added ai tool urls (51431b1)
  • cli: added blur/is_focused (614c08c)
  • cli: added cli.blur to defocus the terminal window (4e465c0)
  • cli: added custom snacks options for vim.ui.select (8e8677c)
  • cli: added support for starting AI cli tools in a zellij or tmux session (0385dbf)
  • cli: added toggle focus (c83ebd5)
  • cli: added watcher to let Neovim know when an AI tool updated any buffers (c1083fa)
  • cli: AI cli tools integration (ab5da08)
  • cli: cli tool keymaps (ac353d4)
  • config: enabled option that defaults to checking vim.g|b.copilot.nes == false (9ab4458)
  • config: added opencode and cursor to tools (c11c1b9)
  • health: add multiplexer checks (a903fb1)
  • util: debug logging (6315c92)
  • util: debug notify (9454ee7)
  • watch: added config flag to enable/disable watch (8a8c1ae)

Bug Fixes

  • cli: tag buffer for context (08e67b8)
  • cli: toggle with focus by default (c8e60d7)
  • context: border cases (ee09859)
  • diff: added support for Neovim < 0.12 (9166a6b)
  • diff: better diff rendering to let extmarks behave (90f693b)
  • diff: fixed some edge cases for insertions before after first/last line of the buffer (a3ec994)
  • diff: hunk position for inline diff was sometimes wrong. Fixes #4 (f421518)
  • diff: line insert before first line (2cc5374)
  • nes: only execute edit command when available (49e79a6)
  • nes: properly clear render flag and make it different from the disable flag (3271eea)
  • snacks: load module instead of using global (77bf35f)
  • terminal: open window before running cli tool. Fixes #5 (4e4928c)
  • treesitter: one-off with getting text before first highlight (5e79172)
  • ui: show only one sign (f4545fa)
  • watch: disable debug (cd69b41)

v1.0.0

27 Sep 16:41
bf62030

Choose a tag to compare

1.0.0 (2025-09-27)

Features

  • added trigger/clear configs (55beb96)
  • config: configure copilot through Lsp events. Not needed to use vim.lsp.config for this (3fe1f3d)
  • diff: better inline diffing (23ca2c6)
  • diff: diff config options (ac5f9b8)
  • diff: diff options (d606531)
  • diff: diff refactoring (ef2884e)
  • health: added health check (1f72350)
  • initial commit (9464193)
  • nes: jump to end of text edit after apply (77ab4b2)
  • treesitter.slice: allow to to be nil (0bb097e)
  • treesitter: update leading/trailing/eol whitespace hl_group (6cf8067)
  • ui: optional signs (59abe52)
  • util: split_words / split_chars (5335ad9)

Bug Fixes

  • config: move result_type to diff (489834c)
  • diff: diff fixes (c816758)
  • offset encoding (11b38ae)
  • status: notify on copilot errors/warnings (765c8e3)
  • ui: one sign per hunk (5a16ea8)