Open-source project
sainnhe/everforest avatar
sainnhe/everforest

Everforest: A Warm Green Color Scheme for Vim and Neovim

🌲 Comfortable & Pleasant Color Scheme for Vim

4,239 stars144 forksVim ScriptMIT

At a glance

What is it?
Everforest is a green-based color scheme for Vim and Neovim that prioritizes soft contrast to reduce eye strain during long sessions. It supports tree-sitter, semantic highlighting, and a palette designed to pair with screen-temperature tools like redshift and f.lux.
Who is it for?
Everforest suits developers who spend long hours in Vim or Neovim and find high-contrast themes fatiguing. The three contrast levels (hard, medium, soft) and the compatibility with redshift and f.lux make it a practical choice for anyone who calibrates their screen temperature in the evening.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 115 days ago.
What is it written in?
Mainly Vim Script, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Everforest Is and Why Eye Health Is the Core Design Goal

Color scheme choices affect how long a developer can work before eye fatigue sets in. High-contrast themes make syntax distinctions sharp but also push brightness and color saturation to levels that become uncomfortable over a full workday. Everforest addresses this directly.

The README states the design intent plainly: it is a green-based color scheme designed to be warm and soft in order to protect developers' eyes. The green base is unusual. Most warm themes anchor to amber and orange tones (as Gruvbox does) or cool blue tones (as Nord does). Green occupies a middle ground that the project frames as calmer for sustained reading.

The theme comes in six variants: hard, medium, and soft contrast levels in both dark and light modes. The soft variants reduce contrast further, which suits monitors with their own backlight compensation. The hard variants retain enough contrast to keep syntax readable in bright environments. The medium level sits between the two and is the point at which most users are likely to start.

Everforest targets Vim and Neovim. The repository structure confirms both: the autoload/ and colors/ directories follow the traditional Vim plugin layout, and the lua/ directory provides Neovim-native Lua configuration.

How the Palette Works with Screen Temperature Tools

One feature the README calls out specifically is compatibility with redshift and f.lux. Both tools shift the color temperature of a monitor toward warmer tones in the evening to reduce blue light. A color scheme that uses cool blue accents loses those accents to yellow-orange when the screen temperature shifts.

Everforest's green and warm base survive the shift more gracefully than themes built on blue highlights. The palette avoids relying on cool-temperature hues for critical syntax differentiation. Whether a developer uses redshift, f.lux, or similar tools, the scheme is designed to retain its readability after the temperature shift.

The project documents its full color palette in palette.md at the repository root. That file maps each named color to its hex value and its role in syntax highlighting. Developers who want to understand which color signals a warning versus a string versus a function definition can audit that file without loading the theme into an editor.

The palette.md file is also useful for anyone building a port of Everforest for another editor. The related projects wiki page lists existing ports. VS Code, terminal emulators, and other environments have community-maintained Everforest ports, though those are separate repositories governed by their own maintainers.

Tree-sitter, Semantic Highlighting, and Italic Support

Modern Neovim installations use tree-sitter for syntax parsing. Tree-sitter provides more accurate and granular syntax trees than traditional regex-based Vim syntax files. A color scheme that does not explicitly support tree-sitter highlight groups will fall back to generic colors for many tree-sitter-recognized constructs, producing inconsistent results.

Everforest includes tree-sitter support. The README lists it as a feature alongside semantic highlighting, which is a separate Neovim feature that uses Language Server Protocol data to color tokens by their semantic role rather than their syntactic position. Together, these two features mean that Everforest covers three layers of highlighting: traditional Vim syntax groups, tree-sitter groups, and LSP semantic tokens.

Italic support requires a terminal font that includes an italic variant. The README links to a font resource page for developers who need to verify or install an appropriate font. This is a notable practical requirement: some terminal fonts ship without a true italic variant and substitute a slanted version of the regular weight, which looks different from a designed italic. Everforest's italic usage is opt-in rather than required, but it adds visual distinction between certain syntax categories.

The repository also lists rich support for common file types and plugins. Specific plugin compatibility is documented in the Vim help file accessible via :help everforest.txt.

Installing Everforest in Vim and Neovim

The README does not reproduce installation commands, pointing instead to the documentation file at :help everforest.txt inside the doc/ directory. In practice, Vim plugin managers install Everforest using the repository path sainnhe/everforest on GitHub, the same as any other Vim plugin hosted there.

After installation, activating the color scheme requires setting the colorscheme in Vimrc or a Neovim init file. The theme documentation covers the configuration options for contrast level (hard, medium, or soft) and for enabling or disabling specific features like italic comments or diagnostic signs.

The project has three maintainers: Sainnhe Park (the original author), Jef LeCompte, and Antoine Cotten. Their accounts are listed in the README. Three active maintainers is a sign that review and merge responsibilities are shared rather than depending solely on one person's availability.

For Neovim users, the lua/ directory in the repository provides a Lua-based configuration path. This is the standard approach for modern Neovim setups that manage plugins and configuration entirely in Lua.

How Everforest Compares to Gruvbox and Catppuccin

Gruvbox is one of the most widely used warm dark themes for Vim. It uses an amber and orange foreground palette against earthy background tones. The README lists Gruvbox as one of Everforest's inspirations. The key difference is the hue of the foreground: Gruvbox centers on amber and orange, while Everforest centers on green. Developers who associate warmth with amber tones will find Gruvbox's palette more familiar. Developers who find Gruvbox's orange accents too bright after extended use may prefer Everforest's softer green alternative.

Gruvbox Material, another scheme by the same author (Sainnhe Park), takes the Gruvbox palette and modifies it for softer contrast. It is the closest sibling to Everforest from the same maintainer. The difference between Gruvbox Material and Everforest is the base hue: Gruvbox Material retains the amber identity, while Everforest replaces it with green.

Catppuccin is a pastel theme family available for many editors. Its palette leans into cool pastels (lavender, peach, blue) rather than warm greens. The comparison comes up frequently in searches because both aim for softer, lower-fatigue palettes, but they target different hue preferences. Catppuccin suits developers who prefer a cool, desaturated aesthetic; Everforest suits those who prefer warm greens.

Maintenance, License, and the Related Projects Ecosystem

The last push to the repository was on 2026-06-08. The project has three named maintainers and no archived status. The MIT license permits free use and modification, including for commercial projects.

Beyond the Vim plugin itself, the README links to a wiki page listing related projects. These are community ports for other environments: VS Code extensions, GTK themes, terminal color configurations, and more. Each port lives in its own repository with its own maintenance state and is not governed by the main Everforest maintainers. A developer who wants Everforest in VS Code should check the specific port's repository for its own activity and compatibility status.

Contributions to the Vim plugin follow the process described at the contributing guide linked in the README. The project has its own contributing standards, which are documented off-site by the author.

For developers who want a complete green-toned environment across editor, terminal, and desktop, the wiki's related projects list is the map. The core Vim/Neovim plugin is the reference implementation; the ports aim to match its palette but may lag in updates.

Editorial conclusion

Everforest suits developers who spend long hours in Vim or Neovim and find high-contrast themes fatiguing. The three contrast levels (hard, medium, soft) and the compatibility with redshift and f.lux make it a practical choice for anyone who calibrates their screen temperature in the evening. Developers who use tree-sitter or semantic highlighting will find native support rather than fallback colors. Gruvbox loyalists who prefer amber tones over green will not find this a direct replacement, since the palette philosophy differs. Before committing, verify that your specific plugin set is covered by opening the related projects wiki page, as the README lists rich plugin support broadly without naming every plugin individually.

Frequently asked questions

How do I install the Everforest theme in Vim or Neovim?

Everforest installs like any Vim plugin using a plugin manager and the repository path sainnhe/everforest on GitHub. After installation, set the colorscheme in your Vimrc or Neovim init file. The full configuration options are documented in the project's Vim help file, accessible with :help everforest.txt.

How does Everforest compare to Gruvbox?

Gruvbox uses an amber and orange foreground palette, while Everforest centers on green. The README lists Gruvbox as an inspiration. Gruvbox Material, also by Sainnhe Park, is the closer sibling: it softens the Gruvbox contrast without changing its amber identity, whereas Everforest replaces that amber base with warm green.

How does Catppuccin compare to Everforest?

Catppuccin uses cool pastel tones (lavender, peach, blue), while Everforest uses warm greens. Both aim for lower-fatigue palettes but target different hue preferences. Catppuccin suits developers who prefer cool pastels; Everforest suits those who prefer warm greens with redshift or f.lux compatibility.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. sainnhe/everforest on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/sainnhe-everforest.svg)](https://hysenlabs.com/projects/sainnhe-everforest)