A terminal UI (TUI) for viewing and controlling Docker containers, with live stats, logs and exec access.
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
Install devenv by following the Getting Started guide on devenv.sh
- 2
Generate a starter devenv.nix with init
devenv init - 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
Kubernetes-based cloud development environments that run a web IDE, dependencies and project code inside containers in Kubernetes pods.
A graphical desktop app for building, running and managing containers and Kubernetes locally, built on Podman and other container engines.
A fast, cross-platform task runner written in Go, inspired by Make and configured through a Taskfile YAML file.
A single Rust CLI that installs project tools, sets environment variables, and runs tasks from one mise.toml file.
Command-line tool that watches Go source files and automatically rebuilds and restarts your app during development.