https://github.com/zitrocode/spot.nvim
Prefix-driven command palette for Neovim inspired by the VS Code command palette.
https://github.com/zitrocode/spot.nvim
neovim neovim-lua-plugin neovim-plugin neovim-ui
Last synced: 2 months ago
JSON representation
Prefix-driven command palette for Neovim inspired by the VS Code command palette.
- Host: GitHub
- URL: https://github.com/zitrocode/spot.nvim
- Owner: zitrocode
- Created: 2026-04-22T21:54:45.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2026-04-29T19:41:06.000Z (2 months ago)
- Last Synced: 2026-04-29T20:29:27.242Z (2 months ago)
- Topics: neovim, neovim-lua-plugin, neovim-plugin, neovim-ui
- Language: Lua
- Homepage:
- Size: 477 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# ð spot.nvim
Prefix-driven command palette for Neovim inspired by the VS Code command palette.
Spot provides a single place to search and execute actions.
Start typing to search files, or add a prefix to switch context instantly â
all within the same input.

## âĻ Features
- ð Prefix-based source switching
- ð Fast file search powered by `fd`
- ⥠Single input workflow
- ðŠķ Lightweight floating picker UI
- ðŊ Active mode always visible in the title bar
## ðĨ Status
**spot.nvim** is still under active development and should be considered experimental.
Things may change, and bugs are expected.
If you encounter any issues, please open an issue and include
as much detail as possible â it helps a lot when tracking down problems.
## ⥠Requirements
- Neovim âĨ 0.10
- [`fd`](https://github.com/sharkdp/fd)
## ðĶ Installation
Install using your preferred plugin manager.
### lazy.nvim
```lua
{
"zitrocode/spot.nvim",
config = function()
require("spot").setup()
end,
}
```
### packer.nvim
```lua
use {
"zitrocode/spot.nvim",
config = function()
require("spot").setup()
end,
}
```
## ð Usage
### Commands
Spot provides the following user commands:
| Command | Description |
| ------------- | ------------------------------- |
| `:Spot` | Open the picker |
| `:SpotFocus` | Focus the picker input |
| `:SpotClose` | Close the picker |
| `:SpotToggle` | Toggle the picker open / closed |
### Recommended keymap
```lua
vim.keymap.set(
"n",
"",
"SpotToggle",
{ desc = "Toggle Spot" }
)
```
### Basic workflow
Typical usage:
```
â type â confirm
```
Once the picker is open:
- Start typing to search files
- Press `` to confirm selection
- Press `` to normal mode
- Press `q` to close
Picker keymaps:
| Key | Action |
| ------- | ----------------- |
| typing | Filter results |
| `j` | Move down |
| `k` | Move up |
| `` | Confirm selection |
| `` | Normal mode |
| `q` | Close picker |
## ð Prefixes
Spot switches sources using simple prefixes.
Typing a prefix immediately changes the active source.
| Prefix | Source | Status |
| ------ | ---------- | ---------- |
| (none) | `files` | â
working |
| `>` | `keymaps` | ð§ planned |
| `:` | `commands` | ð§ planned |
| `#` | `buffers` | ð§ planned |
| `$` | `shell` | ð§ planned |
The active source is always visible in the title bar.
## âïļ Configuration
**spot.nvim** works out of the box with sensible defaults.
Call `setup()` once:
```lua
require("spot").setup({
windows = {
width = 80,
max_height = 16,
},
sources = { "files" },
default_source = "files",
})
```
## ðĪ Contributing
Spot is under active development, and contributions are welcome.
If you'd like to get involved, please check the
[CONTRIBUTING.md](./CONTRIBUTING.md) guide for details.
Ideas for new sources, bug reports, and small improvements
are always appreciated.
## ð License
MIT