Getting Started
Installation
Section titled “Installation”1. Install Nix
Section titled “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
Section titled “2. Install devenv”nix-env --install --attr devenv -f https://github.com/NixOS/nixpkgs/tarball/nixpkgs-unstablenix profile install nixpkgs#devenvenvironment.systemPackages = [ pkgs.devenv];home.packages = [ pkgs.devenv];3. Configure a GitHub access token (optional)
Section titled “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
Section titled “Initial set up”Initialize a new developer environment with devenv init.
$ devenv init• Creating devenv.nix• Creating devenv.yaml• Creating .gitignoreCommands
Section titled “Commands”Develop
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “Learn more”- About
devenv.yamlin Inputs and Composing using imports. - About
devenv.nixin the Writing devenv.nix section, starting with the basics.
Updating
Section titled “Updating”Update devenv CLI
Section titled “Update devenv CLI”nix-env --upgrade --attr devenv -f https://github.com/NixOS/nixpkgs/tarball/nixpkgs-unstablenix profile upgrade devenvUpdate 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
Section titled “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 updateLearn more about Inputs.
Show your support
Section titled “Show your support”Add a badge to your project’s README to show it’s built with devenv:
[](https://devenv.sh)
