cachix/devenv

Fast, Declarative, Reproducible, and Composable Developer Environments using Nix

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 36 minutes ago
Added to GitGenius on September 8th, 2026
Created on October 22nd, 2022
Open Issues & Pull Requests: 361 (+0)
GitHub issues: Enabled
Number of forks: 560
Total Stargazers: 7,618 (-1)
Total Subscribers: 27 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 242
New in 7 days: 9
Closed in 7 days: 16
Avg open age: 444 days
Stale 30+ days: 174
Stale 90+ days: 144

Recent activity

Opened in 7 days: 7
Closed in 7 days: 15
Comments in 7 days: 0
Events in 7 days: 4

Top labels

  • bug (609)
  • enhancement (279)
  • question (125)
  • tasks (61)
  • flakes (31)
  • processes (26)
  • documentation (20)
  • containers (18)

Detailed Description

devenv is a developer environment manager that uses Nix to create fast, declarative, reproducible, and composable development environments.

The tool addresses the problem of setting up consistent development environments across team members and machines. Rather than relying on manual installation steps or Docker, devenv uses Nix declarations to specify exactly what languages, packages, and services a project needs. It provides a terminal UI showing live build progress and native shell reloading that rebuilds environments in the background while keeping your shell interactive. The approach emphasizes speed through incremental Nix evaluation caching, achieving sub-100ms environment activation when nothing has changed. It includes a language server for the devenv.nix configuration file with autocomplete and hover documentation, and supports ad hoc environments from the command line without requiring configuration files.

The tool suits teams wanting reproducible environments without Docker overhead, and projects using multiple languages or services. It provides built-in support for over fifty languages with compilers, LSP servers, formatters, and linters included, access to over one hundred thousand packages from Nixpkgs across Linux, macOS, x64, and ARM64 architectures, and over forty services like PostgreSQL, Redis, MySQL, and MongoDB. A native process manager written in Rust handles dependency ordering, restart policies, readiness probes, and automatic port allocation to prevent collisions when running parallel environments. The tool supports composable environments through imports, profiles for environment variants, and polyrepo setups that reference outputs across repositories. It can build OCI containers from your environment without Docker and package applications using language-specific tools.

The project maintains active development with regular feature releases and blog posts documenting new capabilities. The codebase is written primarily in Rust, indicating investment in performance-critical components like the process manager and shell integration. The tool includes comprehensive documentation covering languages, packages, services, processes, tasks, and composition patterns, suggesting sustained effort in making the system accessible to new users.