Skip to content

Releases: catppuccin/nvim

v2.0.0

02 Apr 16:28
605b460

Choose a tag to compare

2.0.0 (2026-04-02)

This is a big release!

We've made some updates to syntax highlighting & added some lovely
integrations for newer plugins. Again, thanks to the community for all the lovely
contributions <3

Important

If you need any help or wish to submit feedback about this release, please
don't hesitate to leave a comment in our release discussion!

Breaking changes

There are a few breaking changes included in this major release that we'd like
to notify you about. So following is a breakdown of some changes you might need
to make to your config to take full advantage of the release and prevent any
easily avoidable issues.

🛑 Vim Support Removed (#949)

This is one of the biggest changes included with this release: vim support has
officially been dropped. This means any code related to special vim features
or special handling of differences between the editors has been removed. This
cleans up the source code for maintainers and eases development. You can read
more
in the readme if you were relying on this support. For those
on neovim, nothing changes for you!

🏷️ Colorscheme Renamed (#977)

Important

This only affects the call to vim.cmd.colorscheme in your config. The plugin
name and import paths remain the same.

The catppuccin vim port has been added to the vim builtin colorschemes. This
means that a simpler variant of this port is now easily available to those that
want it: just :colorscheme catppuccin, no plugin needed.

Unfortunately, this vim port has much smaller featureset than our neovim
port. The integration of the vim port also means that the colorscheme name of
this port and the built-in port are now conflicting - both use the catppuccin
name. To adapt to this, we changed the name of the colorscheme to
catppuccin-nvim
to show the difference with the new builtin colorscheme.

To continue using the neovim plugin instead of the new builtin colorscheme, don't forget to use this in your config:

vim.cmd.colorscheme("catppuccin-nvim")

🎨 Treesitter Syntax Changes (#804)

The treesitter syntax colors have been changed a lot with the aim to align the
syntax highlighting of the neovim port with other ports & code editors in the
organisation.

It's a hard balance to strike when trying to improve the highlights in
different grammars, but also make it feel familiar across lots of different
code editors. The VSCode, Intellij, etc ports might receive some updates after
this v2.0.0 release. You can more about the discussion on these changes here.

If you'd like to revert these changes you can use the following snippet with our overrides api:

require('catppuccin').setup({
    custom_highlights = function(C)
        local O = require("catppuccin").options
        return {
            ["@variable.member"] = { fg = C.lavender }, -- For fields.
            ["@module"] = { fg = C.lavender, style = O.styles.miscs or { "italic" } }, -- For identifiers referring to modules and namespaces.
            ["@string.special.url"] = { fg = C.rosewater, style = { "italic", "underline" } }, -- urls, links and emails
            ["@type.builtin"] = { fg = C.yellow, style = O.styles.properties or { "italic" } }, -- For builtin types.
            ["@property"] = { fg = C.lavender, style = O.styles.properties or {} }, -- Same as TSField.
            ["@constructor"] = { fg = C.sapphire }, -- For constructor calls and definitions: = { } in Lua, and Java constructors.
            ["@keyword.operator"] = { link = "Operator" }, -- For new keyword operator
            ["@keyword.export"] = { fg = C.sky, style = O.styles.keywords },
            ["@markup.strong"] = { fg = C.maroon, style = { "bold" } }, -- bold
            ["@markup.italic"] = { fg = C.maroon, style = { "italic" } }, -- italic
            ["@markup.heading"] = { fg = C.blue, style = { "bold" } }, -- titles like: # Example
            ["@markup.quote"] = { fg = C.maroon, style = { "bold" } }, -- block quotes
            ["@markup.link"] = { link = "Tag" }, -- text references, footnotes, citations, etc.
            ["@markup.link.label"] = { link = "Label" }, -- link, reference descriptions
            ["@markup.link.url"] = { fg = C.rosewater, style = { "italic", "underline" } }, -- urls, links and emails
            ["@markup.raw"] = { fg = C.teal }, -- used for inline code in markdown and for doc in python (""")
            ["@markup.list"] = { link = "Special" },
            ["@tag"] = { fg = C.mauve }, -- Tags like html tag names.
            ["@tag.attribute"] = { fg = C.teal, style = O.styles.miscs or { "italic" } }, -- Tags like html tag names.
            ["@tag.delimiter"] = { fg = C.sky }, -- Tag delimiter like < > /
            ["@property.css"] = { fg = C.lavender },
            ["@property.id.css"] = { fg = C.blue },
            ["@type.tag.css"] = { fg = C.mauve },
            ["@string.plain.css"] = { fg = C.peach },
            ["@constructor.lua"] = { fg = C.flamingo }, -- For constructor calls and definitions: = { } in Lua.
            -- typescript
            ["@property.typescript"] = { fg = C.lavender, style = O.styles.properties or {} },
            ["@constructor.typescript"] = { fg = C.lavender },
            -- TSX (Typescript React)
            ["@constructor.tsx"] = { fg = C.lavender },
            ["@tag.attribute.tsx"] = { fg = C.teal, style = O.styles.miscs or { "italic" } },
            ["@type.builtin.c"] = { fg = C.yellow, style = {} },
            ["@type.builtin.cpp"] = { fg = C.yellow, style = {} },
        }
    end,
})

🪟 New Global Floating Window Options (#892)

All the options for floating windows or solid-window styling have been moved to
a global option set. This is to make sure all integrations follow these
guidelines and adapt to your preferences properly.

What this means for you is that you no longer need to set a .transparent
toggle on integrations. Instead you can simply set:

require('catppuccin').setup({
    transparent_background = true, -- for global brackground transparency
    float = {
        transparent = true, -- if you would like floating windows to *also* be transparent
        solid = true, -- to enable solid-window styling
    },
})

All of these options default to false if unset.

You can look at the related pr for previews of what these options look
like.

⚒️ Special Integrations Changes (#931)

Editor Integrations

To adapt to the everchanging landscape of neovim features & plugins, some
integrations have been moved or changed.

The markdown, native_lsp, semantic_tokens and treesitter integrations
are now integrated into the default nvim highlights and these do no longer have
to be enabled manually.

This means you can remove the following options from your config:

require('catppuccin').setup({
    integrations = {
        markdown = true,
        native_lsp = true,
        semantic_tokens = true,
        treesitter = true,
    },
})

LSP Integration

The settings that were previously in integrations.native_lsp were moved to
lsp_styles since this integration is now always enabled.

require('catppuccin').setup({
    lsp_styles = { -- Handles the style of specific lsp hl groups (see `:h lsp-highlight`).
        virtual_text = {
            hints = { "italic" },
            information = { "italic" },
            ok = { "italic" },
        },
        underlines = {
            errors = { "underline" },
            warnings = { "underline" },
        },
        inlay_hints = {
            background = false,
        },
    },
})

Special Integrations

The bufferline and feline special integrations have been moved to
catppuccin.special.<integration>. These were previously under the
catppuccin.groups.integrations.<integration> namespace, which was sometimes
confusing since these features couldn't be enabled with the normal
integrations.<integration> = true options.

Simply use the following new module imports and everything else is the same:

  • require('catppuccin.groups.integrations.bufferline').get() => require('catppuccin.special.bufferline').get_theme()
  • require('catppuccin.groups.integrations.feline').get() => require('catppuccin.special.feline').get_statusline()

Note

The imports now use .get_theme() and .get_statusline() respectively for
the imports - instead of .get() for both. This change was made to indicate
more clearly what is being imported.

⚙️ Smaller Changes

The .show_end_of_buffer option has been removed (#982)

This feature previously tried to hide the ~ end of file characters you can
see at the bottom of your editor. It tried to do so by linking the foreground
color of these characters to the editor background. Unfortunately, this
solution was quite hacky and had adverse affects when transparency was enabled.

If you'd still like to use this feature, set the following editor option in your config:

vim.opt.fillchars:append({ eob = " " })
Read more

v1.11.0

31 Jul 15:16
cb56659

Choose a tag to compare

1.11.0 (2025-07-31)

Features

Bug Fixes

  • add missing table based integrations to fix auto integration detection (#890) (6d0d9ae)
  • adjust default integration settings (#863) (62dbc84)
  • avante: link background and border hl (#865) (387b4b1)
  • cursor: update cursor color to rosewater / base (#857) (a0c769b)
  • editor: link FloatTitle bg to NormalFloat (#882) (d7b413f)
  • enable auto detected integrations with table options (#886) (5fa8d24)
  • fzf: link normal and title to defaults (#883) (0cf15ba)
  • markview: adjust highlights (#860) (30b1a81)
  • markview: incorrect heading bg when using transparent bg (56a9dfd)
  • mini.picker: border and match styling (#889) (94f6e8a)
  • octo: clear OctoFilePanelFileName hl group (#875) (784e529)
  • render-markdown: incorrect heading bg when using transparent bg (56a9dfd)

v1.10.0

04 May 13:27
1bf0701

Choose a tag to compare

1.10.0 (2025-05-04)

Features

  • add background highlight to LSP signature help (#771) (de096dd)
  • blink-cmp: add integration (#777) (abceb64)
  • blink-cmp: support BlinkCmpLabelMatch hl (#802) (637d99e)
  • blink.cmp: highlight BlinkCmpKindCopilot as teal (#813) (bd80c25)
  • copilot: add integration (#803) (b71eacb)
  • gitgutter: add LineNr highlights (#833) (4bb938b)
  • gitsign: improve gitsign inline add and delete colors (#808) (4965db2)
  • integrations: add support for gitgraph.nvim (#822) (58f1a92)
  • integrations: remove normalnvim (#828) (be45e04)
  • integrations: update mini.indentscope (#821) (0b2437b)
  • PmenuExtra: add support for PmenuExtra highlights (#851) (b01060e)
  • reactive: add cursor color for normal mode (#834) (5b5e3ae)
  • render-markdown: change code block background to mantle (#774) (7be452e)
  • signify: add vim-signify integration (#850) (54fb7f4)
  • snacks: add indent highlights (#827) (57c4077)
  • snacks: add integration (#807) (f8a155a)

Bug Fixes

  • blink-cmp: follow Pmenu highlights (#799) (35d8057)
  • colorful-winsep: respect transparent_background configuration (#775) (9e6ec28)
  • dap-ui: add colors for *NC hlgroups of UI controls (#783) (d9ee9a3)
  • editor: add missing background for TabLineFill (#757) (bfdd6b3)
  • editor: make TabLine more readable (#760) (4fd72a9)
  • editor: more "modern" tabline (#776) (5ea0888)
  • gitsigns: respect transparent option for gitsigns (#844) (2dfca93)
  • kitty: respect transparent_background option (#786) (08efbef)
  • match fzf-lua highlights to telescope (#812) (f67b886)
  • nvim-surround: bg conflicts with document highlight (#800) (a4c64d7)
  • octo: incorrect highlight backgrounds (#836) (7ab1a6e)
  • respect transparent option for gitsigns integration (#826) (ebfb647)
  • syntax: use overlay2 for comments (#768) (147e7cf)

Reverts

  • fix(kitty): respect transparent_background option (#794) (65bf0b1)

v1.9.0

10 Aug 09:37
c9e205f

Choose a tag to compare

1.9.0 (2024-08-09)

Features

  • add fzf-lua integration (#746) (05206bb)
  • add lir.nvim and lir-git-status.nvim integration (#705) (d3907de)
  • add markdown.nvim integration (ba41328)
  • add vim-dadbod-ui integration (#747) (4db4c77)
  • render-markdown: add highlights for callouts (03a2f35)
  • terminal: highlight TermCursor and TermCursorNC (#749) (548b2a2)

v1.8.0

25 Jul 13:12
10eda02

Choose a tag to compare

1.8.0 (2024-07-25)

Features

  • add grug-far.nvim integration (#735) (07f1ee8)
  • bufferline: add indicator_visible and modified_visible (#716) (cc8e290)
  • csv: built-in rainbow highlighting (#720) (67565cd)
  • diffview: add diffview integrations (#700) (182f256)
  • feline: add lazy.nvim updates module, replace deprecated API (#725) (47bd419)
  • feline: allow to hide lazy.nvim updates (#731) (7946d1a)
  • integration: add colorful-winsep.nvim (#701) (30481d6)
  • mini: add new highlight groups (#721) (6827a67)
  • nvim-surround: add integration (#733) (3f16c6d)
  • support new "Ok" diagnostics (5215ea5)
  • treesitter-content: highlight line number (#709) (4edca6b)

Bug Fixes

  • dapui: border match bg color (#727) (4ea0173)
  • defaults: Enable mini integration by default (894efb5)
  • leap: highlight group for LeapLabel (2d3419c)
  • neogit: link WinSeparator (#713) (afccb3d)
  • small typo in feline.lua file (#719) (c0bea77)
  • treesitter: highlight paths in .gitignore as text (#736) (4374588)

v1.7.0

14 Apr 14:36
a1439ad

Choose a tag to compare

1.7.0 (2024-04-13)

Features

  • add ability to toggle default integrations (#687) (e60e400)
  • add support for outline.nvim plugin (#647) (048c18f)
  • defaults: enable neotree (c536623)
  • defaults: enable treesitter context (dc392c0), closes #683
  • feline: fix feline integration (#685) (07679af)
  • feline: improve feline lsp display (#688) (f66654d)
  • integration: add reactive.nvim integration (#654) (151e478)
  • lsp: add highlight for LspCodeLensSeparator (#693) (02bdd74)
  • set [@comment](https://github.com/comment).warning that does not affect readability in gitcommit (#675) (045e349)
  • treesitter: add styles.miscs to disable hardcoded italics (#659) (c0de3b4)
  • treesitter: follow upstream captures (#630) (f288876)
  • treesitter: follow upstream captures (#694) (08c6417)
  • use a more distinguishable color for todos (#645) (657cc4f)

Bug Fixes

  • compile: string.dump isn't deterministic (836de8b), closes #664
  • dropbar: correct keyword highlight link (#652) (afab7ec)
  • ensure consistency between JSX and HTML markup (#660) (9703f22)
  • flavour: g:catppuccin_flavour backwards compatibility (fc98570)
  • flavour: respect terminal's background (#696) (d5760c5)
  • illuminate: update type (#690) (30930f9)
  • integrations: respect default options (c2e6f8e)
  • neotree: add NeoTreeModified (#642) (6853cc8)
  • neotree: blend sidebar with win separator (56fb982), closes #670
  • repair treesitter underlined text (Underline -> Underlined) (#663) (42b687c)
  • respect background variable on startup (6b7a4df)
  • semantic_tokens: namespace -> module (196f301)
  • treesitter: some captures missing leading @ (#650) (bc1f215)
  • use external index for lsp counting (c3572a9)
  • wrong color shown when using color_overrides (#658) (b76ada8), closes #657

v1.6.0

31 Dec 14:56
5e36ca5

Choose a tag to compare

1.6.0 (2023-12-31)

Happy 2 years anniversary!

catppuccin_thanks

Features

  • add WinSeperator highlight group (#623) (988c0b2)
  • bufferline: support no_underline option (#601) (f7638a1)
  • dashboard: add highlight groups for doom theme (#593) (3bdd5e8)
  • integrations: enable dap & dap_ui by default (64dc309)
  • lualine: darken lualine b section for better readability (#606) (32ee05d)
  • mini.indentscope: add scope color (#592) (795f639)
  • neogit: support new highlight groups (#610) (f90c7c0)
  • notify: add NotifyBackground hl group (#637) (c7cf3af)

Bug Fixes

  • airline: missing refresh function (dcef0a0), closes #594
  • dashboard: orange -> peach (54002a1)
  • flash: link FlashPrompt to NormalFloat (#605) (40dc9f0)
  • lualine: match lualine mode colors for insert and terminal (#597) (ea52fe8)
  • neogit: remove NeogitCursorLine from integration (#613) (5e4be43)
  • neogit: remove diff context highlight fg (1b40f07), closes #627
  • neogit: tweak diff context highlighting (#614) (cc717ac)
  • neotree: change color of untracked files (#608) (d7521f6)
  • neotree: make popup titlebar text visible (#618) (919d1f7)
  • noice: respect transparency (#632) (4fbab1f)
  • selene: allow mixed tables (#611) (9f3c13b)
  • sync focused and unfocused winbars (#628) (079500a)
  • vim: resolve deprecation of nested [[ (7a4bcda)

v1.5.0

29 Sep 17:47
1826765

Choose a tag to compare

1.5.0 (2023-09-29)

Features

  • add kitty detection (d3da439)
  • add ufo integration (1f53686)
  • add workaround for kitty transparent issue (#579) (f36fa5c)
  • compile: use indexed cmd (85e9360)
  • illuminate: enabled by default and optional lsp option (5b44baa), closes #571
  • indent-blankline: update to v3, add scope color (#585) (f04336b)
  • integrations: add NormalNvim (0e3c128), closes #580
  • integrations: add notifier.nvim (d029098), closes #574
  • lib: soft deprecate highlighter (8202348)
  • syntax: respect style guide part 3 (#576) (81096ca)

Bug Fixes

  • coc: improve inlay hints (#582) (3d9a5ed)
  • editor: invisible fold with transparent (1c15c5e), closes #577
  • template: broken tmux italic gist link (128e0d2)
  • treesitter: invalid string in type builtin (135f9b0)
  • ufo: use folded ellipsis (846388d)
  • vim: add vim.env index (1786287)

Performance Improvements

  • compile: reduce else statement (a937d54)

v1.4.0

22 Aug 07:30
b573866

Choose a tag to compare

1.4.0 (2023-08-21)

Features

Bug Fixes

  • don't highlight fg of PmenuSel (#554) (6425df1)
  • highlight NonText characters (#547) (bfe91df)
  • noice: set background blend to 0 for mini popups (#556) (2d50a4e)
  • nvim-window-picker: missing table keys (#569) (b9e4dae)
  • options: disable deprecated ts_rainbow and ts_rainbow2 by default (096385d)
  • telescope: keep consistency between the two styles (#540) (dfbc8e2)
  • telescope: respect transparency (#542) (f36af06)
  • treesitter: avoid possible nil (17ae783)
  • types: make all options besides nested enabled optional (#565) (490078b)

v1.3.0

10 Jul 14:51
d603a47

Choose a tag to compare

1.3.0 (2023-07-10)

Features

  • auto-sync upstream palettes (#507) (8426d3b)
  • debug: add auto compile on save (c9cc5a9)
  • dropbar: add new highlight groups (4f22a1e), closes #503
  • integration: add dropbar.nvim (#499) (e86aeb8)
  • integrations: accept both boolean and table config (#534) (f0b947a)
  • integrations: add rainbow_delimiters.nvim support (#530) (cc8d3ab)
  • markdown: add rainbow headlines (#493) (cc517bd)
  • native_lsp: add ability to disable background for inlay hints (#518) (b032ced)
  • native_lsp: support inlay hints (#516) (d32b0bb)
  • navic: change text color (278bfeb)
  • semantic_tokens: add some lsp semantic tokens (#512) (506a4aa)
  • telescope: telescope flat style support (#521) (fc73faa)
  • types: add type annotations (#495) (1d3eda1)
  • workflows: auto-sync upstream palettes (e9fbeec)

Bug Fixes

  • calling palette before setup (841d8ab)
  • feline: disable lsp status on nightly (#510) (9aaf5b4)
  • feline: use new vim.lsp.status() method (#509) (57ee09d)
  • lsp: do not link LspInlayHint to Comment directly (#517) (5dc566c)
  • mapper: remove unnecessary globals (#529) (c75562c)
  • native_lsp: boolean logic (#526) (8d02781)
  • tests: shadowing variable (15043d3)
  • treesitter_context: underline content if transparent_background is true (#519) (6ecc158)
  • which-key: wrong separator highlight group (d438c01)
  • workflows: stylua format (2df7036)