Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/cachix/devenv/llms.txt

Use this file to discover all available pages before exploring further.

devenv is a command-line tool that turns a single devenv.nix file into a complete, reproducible developer environment. It brings together language toolchains, services like PostgreSQL and Redis, process management, tasks, and secrets — configured declaratively and shared across your entire team.

Getting Started

Install devenv and create your first environment in minutes

Basics

Understand devenv.nix, packages, and environment variables

Languages

Enable compilers, LSPs, and formatters for 50+ languages

Services

Run PostgreSQL, Redis, MySQL, and 40+ other services locally

Processes

Manage long-running processes with dependencies and readiness probes

CLI Reference

Full reference for every devenv command and flag

Why devenv?

Most developer environment tools either lack reproducibility, require heavy infrastructure, or force you to maintain separate tooling for every language and service. devenv solves all three problems at once.

Reproducible

Every team member gets an identical environment. No more “works on my machine” — devenv pins exact versions of every package, tool, and service.

Declarative

Describe what you need, not how to install it. A single devenv.nix replaces shell scripts, Dockerfiles, and README setup instructions.

Fast

Sub-100ms shell activation with incremental Nix evaluation caching. Environments rebuild in the background while your shell stays interactive.

Composable

Import environments from other projects, split into profiles for frontend/backend variants, and share configuration across a monorepo.

What you get out of the box

  • 50+ languages — Rust, Python, Go, Node.js, Ruby, Java, and more, each with compilers, LSP servers, formatters, and version selection
  • 40+ services — PostgreSQL, Redis, MySQL, MongoDB, Elasticsearch, Kafka, and more, running as local processes
  • Native process manager — written in Rust with dependency ordering, restart policies, readiness probes, and socket activation
  • DAG-based tasks — parallel execution, caching, and namespace support
  • OCI containers — build production-ready containers from your dev environment without Docker
  • Git hooks — pre-configured formatters and linters via git-hooks.nix
  • LSP for devenv.nix — autocomplete, hover docs, and go-to-definition in any editor
  • MCP server — AI assistant integration for package and option search
  • 100,000+ packages from Nixpkgs for Linux, macOS, x64, and ARM64 (including WSL2)

Quick example

devenv.nix
{ pkgs, lib, config, inputs, ... }:

{
  # Set environment variables
  env.GREET = "devenv";

  # Add packages from Nixpkgs
  packages = [ pkgs.git pkgs.jq ];

  # Enable language toolchains
  languages.rust.enable = true;

  # Start local services
  services.postgres.enable = true;

  # Define processes
  processes.dev.exec = "cargo watch -x run";

  # Run on shell activation
  enterShell = ''
    echo "Welcome to $GREET"
    git --version
  '';

  # Tests run with `devenv test`
  enterTest = ''
    cargo test
  '';
}
1

Install Nix

devenv is built on Nix. Install it first for your platform.
2

Install devenv

nix-env --install --attr devenv -f https://github.com/NixOS/nixpkgs/tarball/nixpkgs-unstable
3

Initialize your project

devenv init
4

Enter your environment

devenv shell
Ready to dive in? Head to the Getting Started guide for the full installation walkthrough.

Build docs developers (and LLMs) love