Skip to content

Sidekick Extra

ai.sidekick installs folke/sidekick.nvim for AI CLI terminals inside Blak. It is never enabled by default. The extra keeps Copilot Next Edit Suggestions off unless you opt into them in user.lua.

-- ~/.config/blak/lua/blak/user.lua
return {
extras = {
enabled = {
"ai.sidekick",
},
},
}

Because this extra adds a plugin, run:

:BlakExtras sync
Surface Contribution
Plugin folke/sidekick.nvim
Defaults nes.enabled = false, cli.picker = "snacks"
Snacks Picker action named sidekick_send
Keymap <C-.> focuses the Sidekick CLI
Keymap <leader>aa toggles the CLI
Keymap <leader>as selects an AI CLI
Keymap <leader>ad detaches the current CLI session
Keymap <leader>af sends the current file
Keymap <leader>at sends current context
Keymap <leader>av sends the visual selection
Keymap <leader>ap opens Sidekick prompts

The keymaps appear in :BlakKeys.

Sidekick options are passed through ai.sidekick:

return {
extras = {
enabled = { "ai.sidekick" },
},
ai = {
sidekick = {
nes = { enabled = false },
cli = {
picker = "snacks",
},
},
},
}

Enable a CLI multiplexer if you want Sidekick sessions to run through tmux:

return {
extras = {
enabled = { "ai.sidekick" },
},
ai = {
sidekick = {
cli = {
mux = {
enabled = true,
backend = "tmux",
},
},
},
},
}

Blak defaults nes.enabled to false so the extra stays a terminal-based AI workflow until you ask for inline edit suggestions:

return {
extras = {
enabled = { "ai.sidekick" },
},
ai = {
sidekick = {
nes = {
enabled = true,
},
},
},
}

The extra registers the Snacks picker action sidekick_send, but it does not bind a picker-local key for you. Add one in user.lua if you want to send picker items to Sidekick:

return {
extras = {
enabled = { "ai.sidekick" },
},
snacks = {
picker = {
win = {
input = {
keys = {
["<a-a>"] = { "sidekick_send", mode = { "n", "i" } },
},
},
},
},
},
}

Install at least one Sidekick-supported AI CLI, then run:

:checkhealth sidekick
:BlakDoctor

Use <leader>as to select a CLI and <leader>aa to open it.