A Neovim plugin for browsing and discovering awesome Neovim plugins through an intuitive UI modal interface.
- Interactive Modal Interface: Clean UI with header, list, and preview panes
- Live README Preview: Real-time markdown rendering with syntax highlighting
- Smart Filtering: Filter plugins by name with instant search
- Intelligent Caching: 24-hour 2-layer cache with automatic staleness detection and manual refresh
{
"alex-popov-tech/store.nvim",
dependencies = {
"OXY2DEV/markview.nvim", -- optional, for pretty readme preview / help window
},
cmd = "Store",
keys = {
{ "<leader>s", "<cmd>Store<cr>", desc = "Open Plugin Store" },
},
opts = {
-- optional configuration here
},
}
Open the plugin browser:
- Command:
:Store
- Lua API:
require("store").open()
-- Custom keybinding
vim.keymap.set("n", "<leader>s", require("store").open, { desc = "Open Plugin Store" })
require("store").setup({
-- Window dimensions (percentages or absolute)
width = 0.8,
height = 0.8,
-- Layout proportions (must sum to 1.0)
proportions = {
list = 0.3, -- 30% for repository list
preview = 0.7, -- 70% for preview pane
},
-- Modal appearance
modal = {
border = "rounded", -- Border style
zindex = 50, -- Z-index for modal windows
},
-- Keybindings
keybindings = {
help = "?", -- Show help
close = "q", -- Close modal
filter = "f", -- Open filter input
refresh = "r", -- Refresh data
open = "<cr>", -- Open selected repository
switch_focus = "<tab>", -- Switch focus between panes
},
-- Behavior
preview_debounce = 150, -- ms delay for preview updates
cache_duration = 24 * 60 * 60, -- 24 hours in seconds
logging = "off", -- Levels: off, error, warn, log, debug
})
Key | Action | Description |
---|---|---|
? |
Help | Show help modal |
q |
Close | Close the store modal |
f |
Filter | Open filter input |
r |
Refresh | Hard reset caches and refresh all data from network |
<CR> |
Open | Open repository in browser |
<Tab> |
Switch Focus | Switch between panes |
Key | Action |
---|---|
<CR> |
Apply filter |
<Esc> |
Cancel filter |