Token is a warm, muted Neovim 0.12+ colorscheme that is written in Lua. Dark and light variants, no configuration. There is no setup function. Load it and it works. The idea is simple: a theme you never configure is a theme you stop thinking about.
Terminal themes for Ghostty, fish, delta, tmux and others are generated from the same palette file, so everything matches without extra work.
- Dark and light variants, switching at runtime via
vim.o.background - Treesitter capture groups for accurate syntax highlighting
- LSP semantic token highlights
- LSP diagnostic signs, virtual text, and underlines
- Diff highlights for buffers and signs
- Legacy syntax group coverage for non-Treesitter filetypes
- Terminal color support (ANSI colors 0–15)
- Lualine theme included
- Contrib themes for external tools and apps generated from the same palette
| Dark | Light |
|---|---|
![]() |
![]() |
![]() |
![]() |
-- vim.pack (Neovim 0.12+)
vim.pack.add({ 'https://github.com/ThorstenRhau/token' })
-- lazy.nvim
{ 'ThorstenRhau/token' }vim.cmd.colorscheme('token')Respects vim.o.background. Set dark or light before loading the
colorscheme, or change it at runtime to switch variants.
Token works out of the box without compilation. For faster startup, you can pre-compile the theme into bytecode:
:TokenCompileThis writes compiled dark and light variants to stdpath('cache')/token/. On
next load the cached bytecode is used instead of the dynamic highlight path.
Rerun :TokenCompile after updating the plugin. If the cache becomes stale or
corrupt it is deleted automatically and the dynamic path is used as fallback.
- blink.cmp
- claudecode.nvim
- diffview.nvim
- flash.nvim
- fugitive.vim
- fzf-lua
- gitsigns.nvim
- hlchunk.nvim
- indent-blankline.nvim
- lazy.nvim
- lualine.nvim
- markview.nvim
- mason.nvim
- mini.clue
- mini.icons
- mini.statusline
- mini.surround
- neo-tree.nvim
- neogit
- noice.nvim
- nvim-cmp
- nvim-dap-ui
- nvim-tree.lua
- oil.nvim
- render-markdown.nvim
- snacks.nvim
- telescope.nvim
- todo-comments.nvim
- treesitter-context
- trouble.nvim
- vim-matchup
- which-key.nvim
Pre-generated themes for external tools and apps. Auto-generated from the
palette; rebuild after palette changes with make contrib.
| Tool | Files | Usage |
|---|---|---|
| bat | contrib/bat/token-{dark,light}.tmTheme |
Copy to bat themes dir, run bat cache --build |
| Blink Shell | contrib/blink/token-{dark,light}.js |
Paste the raw token-dark.js or token-light.js URL in Appearance > Themes > New Theme |
| Carapace | contrib/carapace/token-{dark,light}.json |
Merge the selected carapace object into ~/.config/carapace/styles.json |
| ChatGPT desktop | contrib/chatgpt/token-{dark,light}.txt |
Paste the share string into Settings > Appearance > Import for the matching theme variant |
| delta | contrib/delta/token.gitconfig |
Include from ~/.gitconfig, set features = token-dark in [delta] |
| emacs | contrib/emacs/token-{dark,light}-theme.el |
Copy to ~/.emacs.d/themes/, then (load-theme 'token-dark t) |
| fish | contrib/fish/token.theme |
Copy to ~/.config/fish/themes/, then run fish_config theme choose token |
| fzf | contrib/fzf/token-{dark,light}.{fish,zsh} |
Source the matching Fish or Zsh file to append theme colors to FZF_DEFAULT_OPTS |
| ghostty | contrib/ghostty/token-{dark,light} |
Copy to ~/.config/ghostty/themes/, then set theme = dark:token-dark,light:token-light |
| GtkSourceView (gedit, GNOME Text Editor) | contrib/gtksourceview/token-{dark,light}.xml |
Copy to ~/.local/share/gtksourceview-{4,5}/styles/, then pick the scheme in the editor's preferences |
| iTerm2 | contrib/iterm2/token-{dark,light}.itermcolors |
Import from Profiles > Colors > Color Presets |
| kitty | contrib/kitty/token-{dark,light}.conf |
include /path/to/token-dark.conf in kitty.conf |
| lazygit | contrib/lazygit/token-{dark,light}.yml |
Merge into ~/.config/lazygit/config.yml |
| Obsidian | contrib/obsidian/ |
Copy to <vault>/.obsidian/themes/Token, restart Obsidian, select Token, then set the accent color to #bc6a49 |
| ripgrep | contrib/ripgrep/token-{dark,light}.ripgreprc |
RIPGREP_CONFIG_PATH=/path/to/token-dark.ripgreprc |
| starship | contrib/starship/token-{dark,light}.toml |
Append to starship.toml, set palette = "token" |
| Sublime Text | contrib/sublime/token-{dark,light}.sublime-color-scheme |
Copy to Packages/User/, set "color_scheme" in Preferences |
| tmux | contrib/tmux/token-{dark,light}.conf |
source-file /path/to/token-dark.conf in tmux.conf |
| VS Code | contrib/vscode/ |
Run scripts/install_vscode_theme.sh, then select Token Dark or Token Light |
| Windows Terminal | contrib/windows-terminal/token.json |
Copy schemes into settings/fragments, then set "colorScheme": { "dark": "Token Dark", "light": "Token Light" } |
| Zsh | contrib/zsh/token-{dark,light}.zsh |
Source the selected file from .zshrc for matching ls, completion, fzf-tab, and prompt helper colors |
BSD 3-Clause



