Getting Started
Installation
1. Install Nix
sh <(curl -L https://nixos.org/nix/install) --daemoncurl -sSfL https://artifacts.nixos.org/nix-installer | sh -s -- install
!!! note “Nix installer” We recommend using the above installer. It can handle OS upgrades and has better support for Apple silicon.
If you’d like to stick with the classic installer, use:
sh <(curl -L https://nixos.org/nix/install)
Upgrade Bash
macOS ships with an ancient version of Bash due to licensing reasons.
We recommend installing a newer version from nixpkgs to avoid running into evaluation errors.
=== “Nix env (newcomers)”
nix-env --install --attr bashInteractive -f https://github.com/NixOS/nixpkgs/tarball/nixpkgs-unstable
=== “Nix profiles (requires experimental flags)”
nix profile install nixpkgs#bashInteractivesh <(curl -L https://nixos.org/nix/install) --no-daemondocker run -it nixos/nix2. Install devenv
nix-env --install --attr devenv -f https://github.com/NixOS/nixpkgs/tarball/nixpkgs-unstablenix profile install nixpkgs#devenvenvironment.systemPackages = [ pkgs.devenv];
configuration.nix
home.packages = [ pkgs.devenv];
home.nix
3. Configure a GitHub access token (optional)
The Nix ecosystem is heavily dependent on GitHub for hosting and distributing source code, like the source for nixpkgs. This means that Nix will make a lot of un-authenticated requests to the GitHub API and you may encounter rate-limiting.
To avoid being rate-limited, we recommend providing Nix with a GitHub access token, which will greatly increase your API limits.
Create a new token with no extra permissions at
https://github.com/settings/personal-access-tokens/new. Add the token
to your ~/.config/nix/nix.conf:
access-tokens = github.com=<GITHUB_TOKEN>Initial set up
Initialize a new developer environment with devenv init.
$ devenv init• Creating devenv.nix• Creating devenv.yaml• Creating .gitignore
Terminal window
Commands
Develop
devenv initscaffolds a new project withdevenv.yaml,devenv.nix, and.gitignore.devenv shellactivates your developer environment.devenv upstarts processes.devenv processes downstops background processes.devenv tasks run <task>runs tasks.devenv testbuilds your developer environment and makes sure that all checks pass. Useful to run in your continuous integration environment.devenv container build|copy|runmanages containers.
Packages & Dependencies
devenv search <NAME>searches packages matching NAME in Nixpkgs input.devenv updateupdates and pins inputs fromdevenv.yamlintodevenv.lock.devenv inputs add \<name\> <url>adds an input todevenv.yaml.
Inspect & Debug
devenv infoprints environment information.devenv eval <attr>evaluates attributes and returns JSON.devenv build <attr>builds attributes fromdevenv.nix.devenv repllaunches an interactive Nix REPL for inspecting the environment.
Maintenance & Tooling
devenv gcdeletes unused environments to save disk space.devenv lspstarts the language server fordevenv.nix.devenv mcplaunches the MCP server for AI assistants.
Learn more
- About
devenv.yamlin Inputs and Composing using imports. - About
devenv.nixin the Writing devenv.nix section, starting with the basics.
Updating
Update devenv CLI
nix-env --upgrade --attr devenv -f https://github.com/NixOS/nixpkgs/tarball/nixpkgs-unstablenix profile upgrade devenv
Update nixpkgs to get the latest version of devenv.
For detailed upgrade instructions specific to your setup, please refer to the documentation for your particular system: NixOS, nix-darwin (for macOS), or home-manager, as applicable.
Update project inputs
Inputs, like nixpkgs and devenv modules, are downloaded and pinned in a
devenv.lock lockfile.
These should be periodically updated with:
devenv update
Learn more about Inputs.
Show your support
Add a badge to your project’s README to show it’s built with devenv:
[](https://devenv.sh)
Last updated Oct 08, 2026