Native LSP, not a wrapper
Built on Neovim 0.12 — vim.lsp.config() and vim.lsp.enable() drive servers. Mason handles tools.
vim.lsp.config('lua_ls', {
settings = { Lua = {
diagnostics = { globals = { 'vim' } },
} },
}) Blak is a Neovim distribution built around a single product contract:
Everything useful. Nothing escapes.
The name is the promise. A black hole pulls in everything useful for editing code — pickers, LSP, completion, formatting, git, treesitter — and lets nothing escape back out as noise, mystery, or unstable churn.
vim.lsp.config() and vim.lsp.enable() for LSP. No wrapper plugin where a one-line native API exists.NVIM_APPNAME=blak. Your existing ~/.config/nvim is untouched.lua/blak/config/defaults.lua, fork it, own it.:BlakUpdate snapshots lazy-lock.json, user.lua, extras state, migration state, and update state first. :BlakRollback restores the last known-good set in one step.Defaults you can read in an afternoon. Extras you can roll back in one command. Update without losing muscle memory.
Built on Neovim 0.12 — vim.lsp.config() and vim.lsp.enable() drive servers. Mason handles tools.
vim.lsp.config('lua_ls', {
settings = { Lua = {
diagnostics = { globals = { 'vim' } },
} },
}) Languages, AI, alt explorers — opt-in. Disable, restart, sync, and Blak stops wiring them in.
:BlakExtras enable lang.rust
:BlakExtras enable git.lazygit
:BlakExtras disable ai.copilot :BlakUpdate snapshots the lockfile and config state before any change. :BlakRollback restores them in one step.
:BlakUpdate
:BlakRollback " undo the last update
:BlakUpgrade " migrations + bigger moves Every keymap has a description and shows in :BlakKeys. The leader is <Space>.
<Space><Space> find files
<Space>ff files
<Space>fg grep
<Space>e explorer Snappier than telescope for the common path. Swap providers in one line.
return {
picker = { provider = 'fff' },
} Installer uses NVIM_APPNAME=blak. Your ~/.config/nvim is untouched.
curl -fsSL getblak.dev/install.sh | sh
# clones to ~/.config/blak
# launcher at ~/.local/bin/blak Twelve core decisions, wired up and reversible. Anything beyond this set lives in an opt-in extra.
lazy.nvim
rollback snapshots included
fff.nvim
fast, native
blink.cmp
vim.lsp.config()
native, no wrapper
conform.nvim
nvim-lint
nvim-treesitter
oil.nvim
neo-tree / snacks via extras
gitsigns.nvim
which-key.nvim
every mapping described
Snacks
black-hole splash
blak
monochrome with ember red
You’ll like Blak if:
:BlakExtras enable lang.rust than learn a config DSL.user.lua and :BlakExtras.