devenv ships language modules for more than 50 programming languages. Enabling a language takes a single line inDocumentation 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.nix and gives you a complete, ready-to-use toolchain: compiler or runtime, language server (LSP), formatter, and any ecosystem tooling — all at a reproducible version, shared identically across every developer on the team.
Enabling a Language
Setlanguages.<name>.enable = true for any language you want in your environment:
devenv.nix
devenv shell, the executables for all enabled languages are available:
Rust
Thelanguages.rust module provides a full Rust development environment including rustc, cargo, clippy, rustfmt, and rust-analyzer.
Toolchain channels
devenv supports two toolchain approaches:Common Rust configurations
Nightly with extra components
Nightly with extra components
Cross-compilation targets
Cross-compilation targets
Using a rust-toolchain.toml file
Using a rust-toolchain.toml file
rust-toolchain.toml:Faster linkers (lld / mold / wild)
Faster linkers (lld / mold / wild)
Git hooks integration
Rust tools integrate directly with devenv’s git hooks:Python
Thelanguages.python module provides Python 3, pip, an optional virtual environment, and Pyright as the default LSP.
Basic setup with version pinning
devenv.nix
Specific version selection uses nixpkgs-python. Add it to your
devenv.yaml inputs:Virtual environments and package managers
$DEVENV_STATE/venv and activated automatically when you enter the shell.
Nix-packaged Python dependencies
For packages with complex native dependencies (e.g.tkinter, numpy), use withPackages to bundle them into the interpreter:
JavaScript / Node.js
Thelanguages.javascript module enables Node.js with a TypeScript language server and your choice of package manager.
devenv.nix
Package managers
All Available Languages
devenv includes modules for all of the following languages. Enable any of them withlanguages.<name>.enable = true:
Systems & Low-level
c— Ccplusplus— C++rust— Rustzig— Zigfortran— Fortranodin— Odinhare— Harev— Vlobster— Lobster
Scripting & Dynamic
python— Pythonruby— Rubyperl— Perlphp— PHPlua— Luar— Rgawk— GNU Awkshell— Shellraku— Raku
JVM & .NET
java— Javakotlin— Kotlinscala— Scalaclojure— Clojuredotnet— .NET
Functional
haskell— Haskellelixir— Elixirerlang— Erlangocaml— OCamlelm— Elmpurescript— PureScriptgleam— Gleamstandardml— Standard MLidris— Idrislean4— Lean 4unison— Unisonracket— Racket
Web & JavaScript
javascript— JavaScript / Node.jstypescript— TypeScriptdeno— Denodart— Dart
Infrastructure & Config
terraform— Terraformopentofu— OpenTofuhelm— Helmansible— Ansiblenix— Nixcue— CUEjsonnet— Jsonnetpkl— Pkl
Compiled & Systems
go— Goswift— Swiftcrystal— Crystalnim— Nimpascal— Pascalvala— Vala
Specialised
julia— Juliasolidity— Solidityrobotframework— Robot Frameworktypst— Typsttexlive— TeX Live
