A robust, high-contrast, semantic theme; as a crossover between Poimandres and Kanagawa aesthetics.
While I love the Poimandres theme family for its renowned sleek aesthetics, I found that many existing ports for Neovim too minimal or lacked the semantic depth required for heavy development workflows. Combined with the robust architecture, excellent handling of semantic highlights, and dimming logics of Kanagawa.nvim, I created this theme as a balanced approach between readability and aesthetics. Hence the name: KAIMANDRES.
- Enhanced Palette: I have cherry-picked and tuned specific shades; introducing new colors while strictly maintaining the original "soul" of the Poimandres theme and its iconic palette; to ensure that syntax elements pop without causing eye strain.
- Ecosystem Consistency: This palette has been tested across my entire workflow, including iTerm2, Ghostty, Lazygit, Neovim, and Superfile. This ensures a smooth visual transition between the shell, file manager, and editor.
Install via your favorite package manager. For me, I've always been using lazy.nvim:
-- plugins/kaimandres.nvim
return {
"MartelleV/kaimandres.nvim",
lazy = false,
priority = 1000,
config = function()
require('kaimandres').setup({
-- leave empty to use default setup!
})
-- Some tweaks
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "kaimandres",
callback = function()
-- Remove annoying darker blocks in Lualine (if this happens to you)
vim.api.nvim_set_hl(0, "StatusLine", { bg = "#16161e" })
end,
})
end,
}
Because Kaimandres is based on the Kanagawa engine, it supports a wide range of customizations.
require('kaimandres').setup({
undercurl = true, -- enable undercurls
commentStyle = { italic = true },
functionStyle = {},
keywordStyle = { italic = true },
statementStyle = { bold = true },
typeStyle = {},
transparent = false, -- do not set background color
dimInactive = false, -- dim inactive window `:h hl-NormalNC`
terminalColors = true, -- define vim.g.terminal_color_{0,17}
colors = { -- add/modify theme and palette colors
palette = {},
theme = { all = {} },
},
overrides = function(colors) -- add/modify highlights
return {}
end,
compile = false, -- enable compiling the colorscheme
})
Kaimandres includes hand-tuned highlights for the following plugins:
- Treesitter (Standard and Context)
- Native LSP & Semantic Tokens
- Telescope
- Gitsigns & Neogit
- NvimTree & NeoTree
- Blink.cmp & Nvim-cmp
- Dap-UI (Debug Adapter Protocol)
- Indent Blankline & Mini.indentscope
- Lazy.nvim & Mason
- Trouble & Aerial
- Mini.nvim suite
- Noice.nvim's UI popups and messages
Kaimandres also ships with a dedicated Lualine theme file.
require('lualine').setup {
options = {
theme = 'kaimandres'
}
}
If you don't feel like Neovim is for you but love this aesthetic, I've got your back! Go here: kaimandres-vscode to see the source code for the official VS Code port, or you can install right away via Marketplace: Kaimandres VS Code Theme.
If you are a Zed user, go here: Kaimandres Zed Theme and download the theme's JSON file, then put it inside your ~/.config/zed/themes directory.
If you encounter any bugs, visual inconsistencies, or unexpected behavior while using Kaimandres, please open an issue/PR, I will solve it ASAP.
When reporting an issue, please include:
- A clear description of the problem (e.g., language, steps to reproduce)
- Screenshots, if applicable
- Your Neovim version and relevant configuration
This project has been built based on many inspirations. Special thanks to:
- Rebelot for creating Kanagawa.nvim and inspired me with the incredible architecture and logic.
- Poimandres developers for the original VS Code theme and the beautiful color theory.
- The iTerm2 Color Scheme Community for introducing me to this aesthetic.
MIT © MartelleV.


