Repolode
cachix

cachix/devenv

Declarative, reproducible developer environments built on Nix, configured in a devenv.nix file with languages, services and processes.

Open-source alternative to:Docker Desktop

Stars
7,773
Forks
583
Open issues
376
Last commit
4 hours ago

What is it?

devenv is a developer environment tool built on Nix. You describe a project's shell in a devenv.nix file, including language toolchains, packages, background services such as PostgreSQL or Redis, and scripts, and devenv builds an isolated environment that behaves the same across machines.

The tool covers more than the shell itself. It includes a native process manager with dependency ordering and readiness probes, a task runner with DAG-based execution and caching, and a test command that starts and stops processes around test runs. Environments can be packaged as OCI containers without Docker, and configs can be shared between projects through imports, profiles and out-of-tree sources.

The project provides a terminal UI, an LSP for devenv.nix, direnv integration, git hooks via git-hooks.nix, and an MCP server for AI assistants. It supports Linux, macOS, x64 and ARM64, including WSL2.

Key features

  • 01Declarative environment configuration in devenv.nix with 50+ languages and 40+ services.
  • 02Native process manager with dependency ordering, restart policies and readiness probes.
  • 03Task runner with DAG-based execution, caching and parallel runs.
  • 04OCI container builds from the environment without Docker.
  • 05direnv integration, git hooks and an LSP for devenv.nix.
  • 06Profiles and imports for reusing environments across projects.

Use cases

  • Giving every contributor on a team the same toolchain and database versions.
  • Running a project's Postgres, Redis and app processes together for local development.
  • Packaging a development environment as a container for CI or deployment.
  • Sharing a standard environment config across several repositories.

Quick start

  1. 1

    Install devenv by following the Getting Started guide on devenv.sh

  2. 2

    Generate a starter devenv.nix with init

    devenv init
  3. 3

    Activate the environment with shell

    devenv shell

Things to know

  • Requires Nix to be installed, since devenv is built on Nix.
  • Environments depend on Nixpkgs and Nix evaluation, which adds a learning curve for newcomers.

Topics

FAQ

What is devenv?
Declarative, reproducible developer environments built on Nix, configured in a devenv.nix file with languages, services and processes. devenv is a developer environment tool built on Nix. You describe a project's shell in a devenv.nix file, including language toolchains, packages, background services such as PostgreSQL or Redis, and scripts, and devenv builds an isolated environment that behaves the same across machines.
Is devenv free to use? What license does it have?
devenv is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is devenv still maintained?
Actively maintained. The last commit to devenv was on Oct 22, 2026.
What can I use devenv for?
Giving every contributor on a team the same toolchain and database versions. Running a project's Postgres, Redis and app processes together for local development. Packaging a development environment as a container for CI or deployment. Sharing a standard environment config across several repositories.
How do I install devenv?
Install devenv by following the Getting Started guide on devenv.sh Generate a starter devenv.nix with init: devenv init Activate the environment with shell: devenv shell
Where can I get devenv?
The source code and installation instructions are on GitHub: https://github.com/cachix/devenv

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects