nix-community/neovim-nightly-overlay

[maintainer=@GaetanLepage, @willruggiano]

Nix

418

2,471 commits

updated Sep 22, 2026

See the code

README

To use the overlay

[!IMPORTANT] When using this overlay, you might encounter error: hash mismatch in fixed-output derivation '/nix/store/...-tree-sitter-bundled-vendor-staging.drv'.
The issue is that neovim-nightly-overlay uses and overrides the treesitter from your own package set. If this treesitter is different than the one we expect, you might get a hash mismatch.
To work around this, you can either:

  • Do not use this flake as an overlay, but simply get its default package output (inputs.neovim-nightly.packages.${system}.default)
  • Override treesitter with your own version: pkgs.neovim.override ...

with Flakes

If you are using flakes to configure your system, you can either reference the package provided by this flake directly, e.g. for nixos:

{ inputs, pkgs, ... }:
{
  programs.neovim = {
    enable = true;
    package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default;
  };

  # or

  environment.systemPackages = [
    inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default
  ];
}

or you can apply the overlay to your package set, e.g for home-manager:

{
  inputs = {
    neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
  };

  outputs = { self, ... }@inputs:
    let
      overlays = [
        inputs.neovim-nightly-overlay.overlays.default
      ];
    in
    {
      homeConfigurations = {
        macbook-pro = inputs.home-manager.lib.homeManagerConfiguration {
          modules = [
            {
              nixpkgs.overlays = overlays;
            }
          ];
        };
      };
    };
}

Updating

The neovim-nightly-overlay flake itself is updated every day to use the latest neovim source code.

However, your own flake needs to be synced manually. Remember to regularly update your flake (e.g. by using nix flake update) to get a most recent neovim build.

How to test a neovim pull-request ?

You can select an alternative branch of neovim via nix run github:nix-community/neovim-nightly-overlay' --override-input neovim-src github:neovim/neovim?ref=pull/XXXX/head (replace XXXX with the PR number).

without Flakes

Add the overlay to your home.nix (home-manager) or configuration.nix (nixos):

{
  nixpkgs.overlays = [
    (import (builtins.fetchTarball {
      url = "https://github.com/nix-community/neovim-nightly-overlay/archive/master.tar.gz";
    }))
  ];
}

Due to some nixpkgs breaking changes if you are using NixOS 24.05 use the overlay below
also requires that you have the nixpkgs-unstable nix-channel

{
  nixpkgs.config = {
    packageOverrides = pkgs: let
      pkgs' = import <nixpkgs-unstable> {
        inherit (pkgs) system;
        overlays = [
          (import (builtins.fetchTarball {
            url = "https://github.com/nix-community/neovim-nightly-overlay/archive/master.tar.gz";
          }))
        ];
      };
    in {
      inherit (pkgs') neovim;
    };
  };
}

Binary cache

See: https://app.cachix.org/cache/nix-community

neovim
nix

Contributors

hercules-ci[bot]

1,273 commits

mjlbach

811 commits

actions-user

222 commits

GaetanLepage

48 commits

nix-community/neovim-nightly-overlay

[maintainer=@GaetanLepage, @willruggiano]

Nix

418

2,471 commits

updated Sep 22, 2026

See the code

README

To use the overlay

[!IMPORTANT] When using this overlay, you might encounter error: hash mismatch in fixed-output derivation '/nix/store/...-tree-sitter-bundled-vendor-staging.drv'.
The issue is that neovim-nightly-overlay uses and overrides the treesitter from your own package set. If this treesitter is different than the one we expect, you might get a hash mismatch.
To work around this, you can either:

  • Do not use this flake as an overlay, but simply get its default package output (inputs.neovim-nightly.packages.${system}.default)
  • Override treesitter with your own version: pkgs.neovim.override ...

with Flakes

If you are using flakes to configure your system, you can either reference the package provided by this flake directly, e.g. for nixos:

{ inputs, pkgs, ... }:
{
  programs.neovim = {
    enable = true;
    package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default;
  };

  # or

  environment.systemPackages = [
    inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default
  ];
}

or you can apply the overlay to your package set, e.g for home-manager:

{
  inputs = {
    neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
  };

  outputs = { self, ... }@inputs:
    let
      overlays = [
        inputs.neovim-nightly-overlay.overlays.default
      ];
    in
    {
      homeConfigurations = {
        macbook-pro = inputs.home-manager.lib.homeManagerConfiguration {
          modules = [
            {
              nixpkgs.overlays = overlays;
            }
          ];
        };
      };
    };
}

Updating

The neovim-nightly-overlay flake itself is updated every day to use the latest neovim source code.

However, your own flake needs to be synced manually. Remember to regularly update your flake (e.g. by using nix flake update) to get a most recent neovim build.

How to test a neovim pull-request ?

You can select an alternative branch of neovim via nix run github:nix-community/neovim-nightly-overlay' --override-input neovim-src github:neovim/neovim?ref=pull/XXXX/head (replace XXXX with the PR number).

without Flakes

Add the overlay to your home.nix (home-manager) or configuration.nix (nixos):

{
  nixpkgs.overlays = [
    (import (builtins.fetchTarball {
      url = "https://github.com/nix-community/neovim-nightly-overlay/archive/master.tar.gz";
    }))
  ];
}

Due to some nixpkgs breaking changes if you are using NixOS 24.05 use the overlay below
also requires that you have the nixpkgs-unstable nix-channel

{
  nixpkgs.config = {
    packageOverrides = pkgs: let
      pkgs' = import <nixpkgs-unstable> {
        inherit (pkgs) system;
        overlays = [
          (import (builtins.fetchTarball {
            url = "https://github.com/nix-community/neovim-nightly-overlay/archive/master.tar.gz";
          }))
        ];
      };
    in {
      inherit (pkgs') neovim;
    };
  };
}

Binary cache

See: https://app.cachix.org/cache/nix-community

neovim
nix

Contributors

hercules-ci[bot]

1,273 commits

mjlbach

811 commits

actions-user

222 commits

GaetanLepage

48 commits

Languages

Nix

100.0%