osfeed.dev
Projects/folke / snacks.nvim

snacks.nvim

A collection of Neovim editing and navigation tools

Get it on GitHub
Unclaimed

Written by @iluxav from the project's code and releases, not by its maintainers. Last updated for v2.31.0 (2026-03-20), so it may lag behind newer releases.

Are you @folke?Claim it, and your coding agent keeps it current with each release
v2.31.0 · 33 things you can do 20 changes to know before upgrading
Follow GitHub

Find files and code, manage buffers and terminals, view images, and review GitHub pull requests from Neovim.

What you can do with snacks.nvim

Find files, buffers, projects, and editor history with fuzzy search.

2 other tools for: Find files
Present at v2.22.0
Good to know

File search needs fd, fdfind, ripgrep, or a supported find command.

Search project text and open buffers and jump to matching lines.

Present at v2.22.0
Good to know

Project grep uses ripgrep.

Browse Git branches, commits, status, stashes, and diff hunks from Neovim.

Present at v2.22.0
Good to know

Requires Git and a Git repository.

Jump to definitions, references, implementations, and symbols using language servers.

1 other tool for: Jump to definitions
Present at v2.22.0
Good to know

Requires an attached language server supporting the requested operation.

Create custom selection lists with configurable matching, previews, and layouts.

Present at v2.22.0
Good to know

Requires Lua configuration.

Browse and manage project files in a tree inside Neovim.

Present at v2.22.0
Good to know

Requires the Snacks picker. Trash needs trash, gio, a supported KDE client, or Windows PowerShell; deletion falls back to permanent removal if no supported command is found.

View image files and render images and math inside supported documents.

Present at v2.22.0
Good to know

Requires a Kitty Graphics Protocol terminal; WezTerm lacks inline rendering and Zellij is unsupported. Non-PNG conversion needs ImageMagick; document rendering needs Tree-sitter parsers.

Open large files while disabling LSP and Tree-sitter attachment to those buffers.

Present at v2.22.0
Good to know

The default threshold is 1.5 MB or an average line length of 1,000 characters.

Show all 33

Delete buffers while keeping the window layout and prompting for unsaved changes.

Present at v2.22.0

Open recent files, projects, and sessions from a configurable startup dashboard.

Present at v2.22.0
Good to know

Session restoration requires a supported session manager; automatic session-manager support uses lazy.nvim.

Focus on the active code scope by dimming surrounding code.

Present at v2.22.0

Open a file, branch, commit, or repository in its hosting website.

Present at v2.22.0
Good to know

Requires a Git remote; available URL types depend on the host. The default browser opener on Neovim 0.9 uses lazy.nvim.

See indentation guides and the current code scope while editing.

Present at v2.22.0

Enter text in floating input prompts that replace Neovim input dialogs.

Present at v2.22.0

Use LazyGit in a floating terminal with Neovim colors and editor integration.

Present at v2.22.0
Good to know

Requires LazyGit.

Read, dismiss, and revisit editor notifications in a notification history.

Present at v2.22.0
Good to know

Enable the notifier to replace vim.notify.

Profile Lua functions, autocmds, and loaded modules to locate time spent in Neovim.

Present at v2.22.0
Good to know

Profiles Lua code through instrumentation.

See a file supplied on the command line before other plugins finish loading.

Present at v2.22.0
Good to know

Requires early setup of the quickfile module.

Rename files with language-server notifications and file-explorer integrations.

Present at v2.22.0
Good to know

Language-server updates depend on server support; external explorers need the documented integration.

Select and jump between code scopes using Tree-sitter or indentation.

Present at v2.22.0
Good to know

Falls back to indentation when Tree-sitter scope detection is unavailable.

Keep persistent scratch notes and run Lua snippets with inline output.

Present at v2.22.0
Good to know

Lua execution applies to Lua scratch buffers; scratch files are organized by directory, Git branch, and count.

Scroll editor windows with animation, including mouse scrolling.

Present at v2.22.0
Good to know

Terminal buffers are excluded by the default filter.

Display line numbers, marks, signs, and fold controls in the editor margin.

Present at v2.22.0
Good to know

Git indicators depend on sign-producing integrations.

Open and toggle shell terminals in floating windows or splits.

Present at v2.22.0
Good to know

Requires an available shell or command.

Toggle editor settings with keymaps and optional which-key state indicators.

Present at v2.22.0
Good to know

which-key integration is optional.

Highlight and jump between language-server references to the current word.

Present at v2.22.0
Good to know

Requires an attached language server with document highlighting support.

Hide distracting editor elements or zoom the current window while editing.

Present at v2.22.0
Good to know

Showing the statusline requires a global statusline.

Display content in configurable floating windows, splits, and window layouts.

Present at v2.22.0
Good to know

Requires Lua configuration.

Inspect Lua values and backtraces in Neovim notifications.

Present at v2.22.0

Apply keymaps only to matching filetypes or language-server capabilities.

Since v2.30.0
Good to know

Requires Lua configuration; LSP-aware maps need a matching attached client.

Browse GitHub issues and pull requests, manage them, and write inline review comments from Neovim.

Since v2.30.0
Good to know

Requires installed, authenticated GitHub CLI and the Snacks picker. PR diff review comments require the fancy renderer, which is forced for that view.

Jump to project symbols using a ctags file.

Since v2.30.0
Good to know

Requires a tags file.

Highlight another language inside Lua strings with a Tree-sitter injection comment.

Since v2.31.0
Good to know

Requires Tree-sitter highlighting and the relevant language parser.

Before you upgrade snacks.nvim

Newest first
Show 17 older
v2.30.0

Diff previews default to the `fancy` renderer and show renames; stage, unstage, and restore are disabled for merge-base comparisons.

Behavior changed
Read the evidence
snacks.nvim release history 5
v2.31.0

Suggest code changes while commenting on selected lines in a GitHub pull-request diff.

Details

GitHub review comments can include code suggestions, and the action menu can start a review. LSP configuration previews show server commands and code actions, including dynamically registered actions.

Also: Adds starting a review and LSP command/action inspection; fixes input completion and disables completion in large-file buffers.

Install tag v2.31.0 with Neovim >= 0.9.4; GitHub tools need authenticated GitHub CLI and the Snacks picker.

Improved: Browse GitHub issues and pull requests, manage them…Behavior changed: Browse GitHub issues and pull requests, manage them…Now works: Browse GitHub issues and pull requests, manage them…Improved: Jump to definitions, references, implementations, a…Now works: Jump to definitions, references, implementations, a…Now works: Enter text in floating input prompts that replace N…Behavior changed: Open large files while disabling LSP and Tree-sitte…Now works: Keep persistent scratch notes and run Lua snippets…Now works: Browse Git branches, commits, status, stashes, and…Behavior changed: Browse Git branches, commits, status, stashes, and…Now works / inferred: Search project text and open buffers and jump to ma…Improved: Display content in configurable floating windows, s…Added / inferred: Highlight another language inside Lua strings with…

Seeded by @iluxav with Codex

Read the evidence
v2.30.0
with v2.24.0, v2.25.0, v2.26.0, v2.27.0, v2.28.0, v2.29.0

Review GitHub pull requests and add or reply to inline comments without leaving Neovim.

Details

The closely spaced v2.24.0–v2.30.0 releases add GitHub issue/PR views and inline reviews, plus stage/unstage/restore actions for Git hunks. Picker diff settings, path truncation, custom finder arguments, scratch storage, and several defaults change.

Also: Adds contextual keymaps and ctags navigation; extends Git hunks, scratch management, images, and file operations, with configuration migrations and changed defaults.

Install tag v2.30.0 with Neovim >= 0.9.4; GitHub operations require authenticated GitHub CLI and the Snacks picker.

Improved: Search project text and open buffers and jump to ma…Behavior changed: Search project text and open buffers and jump to ma…Behavior changed: Find files, buffers, projects, and editor history w…Behavior changed: Find files, buffers, projects, and editor history w…Action required / inferred: Find files, buffers, projects, and editor history w…Improved: Find files, buffers, projects, and editor history w…Improved: Find files, buffers, projects, and editor history w…Behavior changed: Find files, buffers, projects, and editor history w…Improved: Browse Git branches, commits, status, stashes, and…Improved: Browse Git branches, commits, status, stashes, and…Behavior changed: Browse Git branches, commits, status, stashes, and…Action required / inferred: Browse Git branches, commits, status, stashes, and…Improved: Jump to definitions, references, implementations, a…Now works: Jump to definitions, references, implementations, a…Improved: Jump to definitions, references, implementations, a…Improved: Create custom selection lists with configurable mat…Action required / inferred: Create custom selection lists with configurable mat…Now works: Browse and manage project files in a tree inside Ne…Behavior changed / inferred: Browse and manage project files in a tree inside Ne…Now works: Browse and manage project files in a tree inside Ne…Improved: View image files and render images and math inside…Now works: View image files and render images and math inside…Behavior changed: View image files and render images and math inside…Now works: View image files and render images and math inside…Now works: Open large files while disabling LSP and Tree-sitte…Behavior changed: Open large files while disabling LSP and Tree-sitte…Improved: Open recent files, projects, and sessions from a co…Now works: Open recent files, projects, and sessions from a co…Behavior changed: Delete buffers while keeping the window layout and…Now works: Open a file, branch, commit, or repository in its h…Improved: Read, dismiss, and revisit editor notifications in…Improved: Keep persistent scratch notes and run Lua snippets…Behavior changed / inferred: Keep persistent scratch notes and run Lua snippets…Now works: Rename files with language-server notifications and…Behavior changed: Scroll editor windows with animation, including mou…Now works: Open and toggle shell terminals in floating windows…Behavior changed: Open and toggle shell terminals in floating windows…Improved: Toggle editor settings with keymaps and optional wh…Now works: Hide distracting editor elements or zoom the curren…Behavior changed: Hide distracting editor elements or zoom the curren…Behavior changed: Display content in configurable floating windows, s…Improved: Display content in configurable floating windows, s…Improved: Enter text in floating input prompts that replace N…Improved: Select and jump between code scopes using Tree-sitt…Now works: Select and jump between code scopes using Tree-sitt…Improved: Inspect Lua values and backtraces in Neovim notific…Added: Apply keymaps only to matching filetypes or languag…Added: Browse GitHub issues and pull requests, manage them…Added / inferred: Jump to project symbols using a ctags file.Improved: Open recent files, projects, and sessions from a co…

Seeded by @iluxav with Codex

Read the evidence
v2.23.0

Read rendered inline math expressions in Neorg documents.

Details

Inline math rendering is updated and extended to Neorg. The explorer selects No first in confirmation prompts, while image concealment now targets math by default.

Also: Remote Git branches can be listed, scope detection can be disabled per buffer, and explorer confirmation defaults to No.

Install tag v2.23.0; Neovim >= 0.9.4. Inline math needs a compatible graphics terminal, a document parser, and math conversion tools.

Improved: View image files and render images and math inside…Behavior changed / inferred: View image files and render images and math inside…Improved: Browse Git branches, commits, status, stashes, and…Improved: Select and jump between code scopes using Tree-sitt…Behavior changed: Browse and manage project files in a tree inside Ne…Now works: Enter text in floating input prompts that replace N…Now works: Open recent files, projects, and sessions from a co…Behavior changed: Browse Git branches, commits, status, stashes, and…

Seeded by @iluxav with Codex

Read the evidence
v2.22.0

Customize or disable rendered math expressions in documents.

Details

Image math configuration gains `math.enabled` and LaTeX/Typst templates. Org rendering moves to the Org mode plugin, and existing LaTeX font/package overrides need their new configuration path.

Also: Picker input gains register-style insert shortcuts, and scrolling works on Neovim 0.9.4.

Install tag v2.22.0 with Neovim >= 0.9.4; image rendering needs a compatible terminal and the relevant conversion tools.

Improved: View image files and render images and math inside…Action required / inferred: View image files and render images and math inside…Action required: View image files and render images and math inside…Improved: Find files, buffers, projects, and editor history w…Behavior changed: Search project text and open buffers and jump to ma…Now works: Scroll editor windows with animation, including mou…Behavior changed: Display line numbers, marks, signs, and fold contro…Now works: Hide distracting editor elements or zoom the curren…

Seeded by @iluxav with Codex

Read the evidence
v2.22.0
Starting point
with v1.0.0, v1.1.0, v1.2.0, v2.0.0, v2.1.0, v2.2.0, v2.3.0, v2.4.0, v2.5.0, v2.6.0, v2.7.0, v2.8.0, v2.9.0, v2.10.0, v2.11.0, v2.12.0, v2.13.0, v2.14.0, v2.15.0, v2.16.0, v2.17.0, v2.18.0, v2.19.0, v2.20.0, v2.21.0

Find files and jump through a Neovim project with fuzzy selection lists.

Details

This baseline records capabilities already present at the start of the release window, using the v2.22.0 documentation. Modules are selected through Snacks configuration and exposed through `Snacks` functions.

Also: Existing tools cover file browsing, images, scratch notes, terminals, notifications, code scopes, and focused editing.

Install snacks.nvim through a Neovim package manager; requires Neovim >= 0.9.4. Enable the desired modules and initialize startup modules early.

Added / inferred: Find files, buffers, projects, and editor history w…Added: Search project text and open buffers and jump to ma…Added: Browse Git branches, commits, status, stashes, and…Added: Jump to definitions, references, implementations, a…Added: Create custom selection lists with configurable mat…Added: Browse and manage project files in a tree inside Ne…Added: View image files and render images and math inside…Added: Open large files while disabling LSP and Tree-sitte…Added: Delete buffers while keeping the window layout and…Added: Open recent files, projects, and sessions from a co…Added: Focus on the active code scope by dimming surroundi…Added: Open a file, branch, commit, or repository in its h…Added: See indentation guides and the current code scope w…Added: Enter text in floating input prompts that replace N…Added: Use LazyGit in a floating terminal with Neovim colo…Added: Read, dismiss, and revisit editor notifications in…Added: Profile Lua functions, autocmds, and loaded modules…Added: See a file supplied on the command line before othe…Added: Rename files with language-server notifications and…Added: Select and jump between code scopes using Tree-sitt…Added: Keep persistent scratch notes and run Lua snippets…Added: Scroll editor windows with animation, including mou…Added: Display line numbers, marks, signs, and fold contro…Added: Open and toggle shell terminals in floating windows…Added: Toggle editor settings with keymaps and optional wh…Added: Highlight and jump between language-server referenc…Added: Hide distracting editor elements or zoom the curren…Added: Display content in configurable floating windows, s…Added: Inspect Lua values and backtraces in Neovim notific…

Seeded by @iluxav with Codex

Read the evidence