goolord
alpha-nvim
Lua

a lua powered greeter like vim-startify / dashboard-nvim

Last updated Jul 9, 2026
2.4k
Stars
129
Forks
34
Issues
+3
Stars/day
Attention Score
95
Language breakdown
Lua 100.0%
โ–ธ Files click to expand
README

ฮฑ alpha-nvim

alpha is a fast and fully programmable greeter for neovim.

share or snipe some custom themes @ https://github.com/goolord/alpha-nvim/discussions/16

Quick Start

vim-startify theme

glamor shot
EXAMPLES

With lazy.nvim:

{     'goolord/alpha-nvim',     dependencies = { 'nvim-mini/mini.icons' },     config = function ()         require'alpha'.setup(require'alpha.themes.startify'.config)     end };
With packer:
use {     'goolord/alpha-nvim',     requires = { 'nvim-mini/mini.icons' },     config = function ()         require'alpha'.setup(require'alpha.themes.startify'.config)     end }
..or using paq:
require "paq" {     "goolord/alpha-nvim";     "nvim-mini/mini.icons"; } require'alpha'.setup(require'alpha.themes.startify'.config)

dashboard-nvim theme

glamor shot
EXAMPLES

With lazy.nvim:

{     'goolord/alpha-nvim',     config = function ()         require'alpha'.setup(require'alpha.themes.dashboard'.config)     end };
With packer:
use {     'goolord/alpha-nvim',     config = function ()         require'alpha'.setup(require'alpha.themes.dashboard'.config)     end }
..or using paq:
require "paq" {     "goolord/alpha-nvim";     "nvim-mini/mini.icons"; } require'alpha'.setup(require'alpha.themes.dashboard'.config)

Theta theme

EXAMPLES

With lazy.nvim:

{     'goolord/alpha-nvim',     dependencies = {         'nvim-mini/mini.icons',         'nvim-lua/plenary.nvim'     },     config = function ()         require'alpha'.setup(require'alpha.themes.theta'.config)     end };
With packer:
use {     'goolord/alpha-nvim',     requires = {         'nvim-mini/mini.icons',         'nvim-lua/plenary.nvim'     },     config = function ()         require'alpha'.setup(require'alpha.themes.dashboard'.config)     end }
..or using paq:
require "paq" {     "goolord/alpha-nvim";     "nvim-mini/mini.icons";     'nvim-lua/plenary.nvim'; } require'alpha'.setup(require'alpha.themes.dashboard'.config)

if you want sessions, see

this theme makes some assumptions about your default keybindings to customize the buttons, see :h alpha-example

File Icons

theta/startify theme support file icons, default is enabled and mini icon provider is used.

if you prefer nvim-web-devicons icon provider, use the following example with lazy.nvim:
{
    "goolord/alpha-nvim",
    -- dependencies = { 'nvim-mini/mini.icons' },
    dependencies = { 'nvim-tree/nvim-web-devicons' },
    config = function()
      local startify = require("alpha.themes.startify")
      -- available: devicons, mini, default is mini
      -- if provider not loaded and enabled is true, it will try to use another provider
      startify.file_icons.provider = "devicons"
      require("alpha").setup(
        startify.config
      )
    end,
  },

Elevator pitch

alpha is really a general purpose neovim ui library with some conveniences for writing a greeter ui. it has a functional, data-oriented api design. themes are expressed entirely as data, which is what makes alpha "fully programmable". alpha is also the fastest greeter I've benchmarked (which is why I daily drive it myself!).

Profiling Results

benchmark

Special Thanks

  • https://github.com/glepnir/dashboard-nvim - inspiration, code reference
  • https://github.com/mhinz/vim-startify - inspiration
๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท goolord/alpha-nvim ยท Updated daily from GitHub