A Neovim plugin for organizing, managing, and executing shell commands with ease — streamline your command workflows
- Tabbed Workflow: Organize and run commands per tab.
- Command Management: Create, edit, and execute reusable command lists.
- Session Persistence: Save and restore tabs, commands, and working directories.
- UI Layer: Built on top of
nvzone/volt.
Important
I celebrated my birthday by building the first iteration of this plugin! It’s still in its early stages, so I’d love to hear any feedbacks, issues, and contributions if you have any.
Requirements:
- Neovim >= 0.9.0
nvzone/volt(UI framework dependency)- A Nerd Font (for icons)
{
"aikhe/cake.nvim",
dependencies = "nvzone/volt",
cmd = { "CakeToggle", "CakeFloat", "CakeSplitV", "CakeSplitH", "CakeRun" },
opts = {},
}vim.keymap.set('n', '<leader>ef', function()
require('cake').open({ mode = "float" })
end, { desc = 'Cake Float' })
vim.keymap.set('n', '<leader>ev', function()
require('cake').open({ mode = "splitv" })
end, { desc = 'Cake Split Vertical' })
vim.keymap.set('n', '<leader>eh', function()
require('cake').open({ mode = "splith" })
end, { desc = 'Cake Split Horizontal' })
vim.keymap.set('n', '<leader>et', function()
require('cake').toggle()
end, { desc = 'Cake Toggle' })
vim.keymap.set('n', '<leader>er', function()
require('cake').run()
end, { desc = 'Cake Run' })require("cake").setup({
terminal = "", -- Terminal defaults to bash & cmd
title = " cake.nvim", -- Can be empty
border = false,
use_file_dir = false, -- Use file path as new tab default path
mode = "float", -- "float", "splitv" (vertical), "splith" (horizontal)
size = { h = 60, w = 50 }, -- Default float size
split = { w = 50, h = 25 }, -- Default split sizes w: horizontal, h: vertical
-- Override default mappings
mappings = {
new_tab = "n",
edit_commands = "m",
edit_cwd = ";",
rerun = "r",
kill_tab = "x",
next_tab = "<C-n>",
prev_tab = "<C-p>",
},
-- split term navigation keys
split_nav = {
h = { "<C-h>" },
j = { "<C-j>" },
k = { "<C-k>" },
l = { "<C-l>" },
},
})These are the default mappings that are available when cake is open:
| Key | Action |
|---|---|
m |
Edit commands |
; |
Edit commands cwd |
r |
Rerun commands |
n |
New tab |
x |
Close tab |
<C-n> |
Next tab |
<C-p> |
Previous tab |
1–9 |
Switch tabs |
? |
Help |
Note
Cake isn’t a terminal replacement. It’s designed for fast, seamless command execution rather than full terminal workflows like those provided by toggleterm.nvim, floaterm or tmux. It behaves more like yeet.nvim, sending commands quickly to an existing terminal target.

