A Neovim plugin to quickly try out different themes. Browse, install, and apply colorschemes from a curated list.

{
"erl-koenig/theme-hub.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
-- Optional: for themes that use lush (will be notified if a theme requires it)
-- "rktjmp/lush.nvim"
},
config = function()
require("theme-hub").setup({
-- Configuration options (see below)
})
end,
}
:ThemeHub - Open the theme selector to browse and install all available themes:ThemeHub install <name> - Install a specific theme:ThemeHub uninstall <name> - Uninstall a specific theme:ThemeHub uninstall-all - Uninstall all themes:ThemeHub clear-persistent - Clear the saved persistent theme (auto-clears after uninstalling)After installation it will apply the theme automatically. It will use the first variant of the theme.
Important: You must call setup() to initialize the plugin.
require("theme-hub").setup({
install_dir = vim.fn.stdpath("data") .. "/theme-hub",
auto_install_on_select = true,
apply_after_install = true,
persistent = false,
})
| Option | Type | Default | Description |
|---|---|---|---|
install_dir |
string | stdpath("data")/theme-hub |
Directory where themes are installed |
auto_install_on_select |
boolean | true |
Auto-install themes when selected in browser |
apply_after_install |
boolean | true |
Auto-apply theme after installation |
persistent |
boolean | false |
Remember last applied theme across restarts |
This plugin uses vim.ui.select to display themes. For the best experience, use it with a telescope-like plugin: telescope.nvim, fzf-lua, snacks.picker, mini.pick, etc. Below is how to set it up with each one:
-- Add to your telescope dependencies
dependencies = {
"nvim-telescope/telescope-ui-select.nvim",
}
-- In your config call
require("telescope").load_extension("ui-select")
Add this to your fzf-lua config:
require("fzf-lua").register_ui_select({})
Works out of the box. No config needed.
In your mini config overwrite the default vim.ui.select with:
vim.ui.select = MiniPick.ui_select
See lua/theme-hub/registry.lua for the list of curated themes.
:checkhealth theme-hub to ensure everything works correctly.:h theme-hub to see the help documentation.Feel free to add new themes to the registry, or open issues for feature requests.