devenv.nix options
devenv.latestVersion
The latest version of devenv.
Type: string
Default
devenv.warnOnNewVersion
Whether to warn when a new version of devenv is available.
Type: boolean
Default
enterShell
Bash code to execute when entering the shell.
Type: strings concatenated with "\n"
Default
env
Environment variables to be exposed inside the developer environment.
Type: attribute set
Default
languages.c.enable
Whether to enable Enable tools for C development..
Type: boolean
Default
Example
languages.clojure.enable
Whether to enable Enable tools for Clojure development..
Type: boolean
Default
Example
languages.cplusplus.enable
Whether to enable Enable tools for C++ development..
Type: boolean
Default
Example
languages.cue.enable
Whether to enable Enable tools for Cue development..
Type: boolean
Default
Example
languages.cue.package
The CUE package to use.
Type: package
Default
languages.dotnet.enable
Whether to enable Enable tools for .NET development..
Type: boolean
Default
Example
languages.elixir.enable
Whether to enable Enable tools for Elixir development..
Type: boolean
Default
Example
languages.elixir.package
Which package of Elixir to use
Type: package
Default
languages.elm.enable
Whether to enable Enable tools for Elm development..
Type: boolean
Default
Example
languages.erlang.enable
Whether to enable Enable tools for Erlang development..
Type: boolean
Default
Example
languages.erlang.package
Which package of Erlang to use
Type: package
Default
languages.go.enable
Whether to enable Enable tools for Go development..
Type: boolean
Default
Example
languages.haskell.enable
Whether to enable Enable tools for Haskell development..
Type: boolean
Default
Example
languages.java.enable
Whether to enable tools for Java development.
Type: boolean
Default
Example
languages.java.gradle.enable
Whether to enable gradle.
Type: boolean
Default
Example
languages.java.gradle.package
The gradle package to use.
The gradle package by default inherits the JDK from languages.java.jdk.package.
Type: package
Default
languages.java.jdk.package
The JDK package to use.
This will also become available as
Type: package
Default
Example
languages.java.maven.enable
Whether to enable maven.
Type: boolean
Default
Example
languages.java.maven.package
The maven package to use.
The maven package by default inherits the JDK from
Type: package
Default
languages.javascript.enable
Whether to enable Enable tools for JavaScript development..
Type: boolean
Default
Example
languages.javascript.package
The Node package to use.
Type: package
Default
languages.kotlin.enable
Whether to enable Enable tools for Kotlin development..
Type: boolean
Default
Example
languages.lua.enable
Whether to enable Enable tools for Lua development..
Type: boolean
Default
Example
languages.lua.package
The Lua package to use.
Type: package
Default
languages.nix.enable
Whether to enable Enable tools for Nix development..
Type: boolean
Default
Example
languages.ocaml.enable
Whether to enable Enable tools for OCaml development..
Type: boolean
Default
Example
languages.perl.enable
Whether to enable Enable tools for Perl development..
Type: boolean
Default
Example
languages.php.enable
Whether to enable Enable tools for PHP development..
Type: boolean
Default
Example
languages.php.package
Allows to override the default used package to adjust the settings or add more extensions. You can find the extensions using
Type: package
Default
Example
{"_type":"literalExpression","text":"pkgs.php.buildEnv {\n extensions = { all, enabled }: with all; enabled ++ [ xdebug ];\n extraConfig = ''\n memory_limit=1G\n '';\n};\n"}
languages.purescript.enable
Whether to enable Enable tools for PureScript development..
Type: boolean
Default
Example
languages.purescript.package
The PureScript package to use.
Type: package
Default
languages.python.enable
Whether to enable Enable tools for Python development..
Type: boolean
Default
Example
languages.python.package
The Python package to use.
Type: package
Default
languages.r.enable
Whether to enable Enable tools for R development..
Type: boolean
Default
Example
languages.robotframework.enable
Whether to enable Enable tools for Robot Framework development..
Type: boolean
Default
Example
languages.robotframework.python
The Python package to use.
Type: package
Default
languages.ruby.enable
Whether to enable Enable tools for Ruby development..
Type: boolean
Default
Example
languages.ruby.package
The Ruby package to use.
Type: package
Default
languages.rust.enable
Whether to enable Enable tools for Rust development..
Type: boolean
Default
Example
languages.scala.enable
Whether to enable Enable tools for Scala development..
Type: boolean
Default
Example
languages.typescript.enable
Whether to enable Enable tools for TypeScript development..
Type: boolean
Default
Example
mongodb.additionalArgs
Additional arguments passed to mongod.
Type: list of strings concatenated with "\n"
Default
Example
mongodb.enable
Whether to enable Add MongoDB process and expose utilities..
Type: boolean
Default
Example
mongodb.package
Which MongoDB package to use.
Type: package
Default
mysql.enable
Whether to enable Add mysql process and expose utilities..
Type: boolean
Default
Example
mysql.initialDatabases
List of database names and their initial schemas that should be used to create databases on the first startup of MySQL. The schema attribute is optional: If not specified, an empty database is created.
Type: list of (submodule)
Default
Example
[{"name":"foodatabase","schema":{"_type":"literalExpression","text":"./foodatabase.sql"}},{"name":"bardatabase"}]
mysql.initialDatabases.*.name
The name of the database to create.
Type: string
mysql.initialDatabases.*.schema
The initial schema of the database; if null (the default), an empty database is created.
Type: null or path
Default
mysql.package
Which package of mysql to use
Type: package
Default
mysql.settings
MySQL configuration
Type: attribute set of attribute set of (INI atom (null, bool, int, float or string) or a list of them for duplicate keys)
Default
Example
{"_type":"literalExpression","text":"{\n mysqld = {\n key_buffer_size = \"6G\";\n table_cache = 1600;\n log-error = \"/var/log/mysql_err.log\";\n plugin-load-add = [ \"server_audit\" \"ed25519=auth_ed25519\" ];\n };\n mysqldump = {\n quick = true;\n max_allowed_packet = \"16M\";\n };\n}\n"}
packages
A list of packages to expose inside the developer environment. Search available packages using devenv search NAME.
Type: list of package
Default
postgres.createDatabase
Create a database named like current user on startup.
Type: boolean
Default
postgres.enable
Whether to enable Add postgreSQL process and psql-devenv script. .
Type: boolean
Default
Example
postgres.initdbArgs
Additional arguments passed to initdb during data dir
initialisation.
Type: list of strings concatenated with "\n"
Default
Example
postgres.package
Which version of postgres to use
Type: package
Default
pre-commit
Integration of https://github.com/cachix/pre-commit-hooks.nix
Type: submodule
Default
pre-commit.default_stages
A configuration wide option for the stages property. Installs hooks to the defined stages. See .
Type: list of string
Default
pre-commit.excludes
Exclude files that were matched by these patterns.
Type: list of string
Default
pre-commit.hooks
The hook definitions.
Pre-defined hooks can be enabled by, for example:
Static checker for GitHub Actions workflow files.
The Uncompromising Nix Code Formatter.
Ansible linter.
The uncompromising Python code formatter.
Haskell source code formatter.
Format Cabal files
Run
Check the cargo package for errors.
LaTeX semantic checker
Format your code using
Lint Rust code.
Scan Nix files for dead code (unused variable bindings).
Dhall code formatter.
Format Elm files.
Analyzes Elm projects, to help find mistakes before your users find them.
Run unit tests and fuzz tests for Elm code.
Find and fix problems in your JavaScript code.
Haskell code prettifier.
Checks correctness of Go programs.
Dockerfile linter, validate inline bash.
Haskell code prettifier.
HLint gives suggestions on how to improve your source code.
HTML linter.
Spell checker and morphological analyzer.
A Python utility / library to sort imports.
Perl script to add indentation to LaTeX files.
A tool for linting and static analysis of Lua code.
Style checker and linter for markdown files.
Markdown shell pre-processor.
Linter for the Nix expression language.
Nix code prettifier.
Nix code prettifier.
Haskell code prettifier.
Opinionated multi-language code formatter.
Format purescript files.
Format purescript files.
A linter for Go source code.
Format Rust code.
Format shell files.
Format shell files.
Lints and suggestions for the Nix programming language.
A simple Haskell code prettifier
An Opinionated Lua Code Formatter.
Format terraform (
Yaml linter.
Type: attribute set of (submodule)
Default
pre-commit.hooks.<name>.description
Description of the hook. used for metadata purposes only.
Type: string
Default
pre-commit.hooks.<name>.enable
Whether to enable this pre-commit hook.
Type: boolean
Default
pre-commit.hooks.<name>.entry
The entry point - the executable to run. can also contain arguments that will not be overridden, such as
Type: string
pre-commit.hooks.<name>.excludes
Exclude files that were matched by these patterns.
Type: list of string
Default
pre-commit.hooks.<name>.files
The pattern of files to run on.
Type: string
Default
pre-commit.hooks.<name>.language
The language of the hook - tells pre-commit how to install the hook.
Type: string
Default
pre-commit.hooks.<name>.name
The name of the hook - shown during hook execution.
Type: string
Default
pre-commit.hooks.<name>.pass_filenames
Whether to pass filenames as arguments to the entry point.
Type: boolean
Default
pre-commit.hooks.<name>.raw
Raw fields of a pre-commit hook. This is mostly for internal use but exposed in case you need to work around something.
Default: taken from the other hook options.
Type: attribute set of unspecified value
pre-commit.hooks.<name>.stages
Confines the hook to run at a particular stage.
Type: list of string
Default
pre-commit.hooks.<name>.types
List of file types to run on. See Filtering files with types.
Type: list of string
Default
pre-commit.hooks.<name>.types_or
List of file types to run on, where only a single type needs to match.
Type: list of string
Default
pre-commit.installationScript
A bash snippet that installs nix-pre-commit-hooks in the current directory
Type: string
pre-commit.package
The
Type: package
Default
pre-commit.rootSrc
The source of the project to be checked.
This is used in the derivation that performs the check.
If you use the
Type: path
Default
pre-commit.run
A derivation that tests whether the pre-commit hooks run cleanly on the entire project.
Type: package
Default
pre-commit.settings.alejandra.exclude
Files or directories to exclude from formatting.
Type: list of string
Default
Example
pre-commit.settings.deadnix.edit
Remove unused code and write to source file.
Type: boolean
Default
pre-commit.settings.deadnix.noLambdaArg
Don't check lambda parameter arguments.
Type: boolean
Default
pre-commit.settings.deadnix.noLambdaPatternNames
Don't check lambda pattern names (don't break nixpkgs
Type: boolean
Default
pre-commit.settings.deadnix.noUnderscore
Don't check any bindings that start with a
Type: boolean
Default
pre-commit.settings.deadnix.quiet
Don't print a dead code report.
Type: boolean
Default
pre-commit.settings.eslint.binPath
Type: path
Default
pre-commit.settings.eslint.extensions
The pattern of files to run on, see .
Type: string
Default
pre-commit.settings.hpack.silent
Whether generation should be silent.
Type: boolean
Default
pre-commit.settings.markdownlint.config
See https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.jsonc
Type: attribute set
Default
pre-commit.settings.nix-linter.checks
Available checks. See
Type: list of string
Default
pre-commit.settings.nixfmt.width
Line width.
Type: null or signed integer
Default
pre-commit.settings.ormolu.cabalDefaultExtensions
Use
Type: boolean
Default
pre-commit.settings.ormolu.defaultExtensions
Haskell language extensions to enable.
Type: list of string
Default
pre-commit.settings.prettier.binPath
Type: path
Default
pre-commit.settings.revive.configPath
Path to the configuration TOML file.
Type: string
Default
pre-commit.settings.statix.format
Error Output format.
Type: one of "stderr", "errfmt", "json"
Default
pre-commit.settings.statix.ignore
Globs of file patterns to skip.
Type: list of string
Default
Example
pre-commit.src
Root of the project. By default this will be filtered with the
If you use the
Type: path
pre-commit.tools
Tool set from which
Type: lazy attribute set of package
Default
{"_type":"literalExpression","text":"pre-commit-hooks.nix-pkgs.callPackage tools-dot-nix { inherit (pkgs) system; }"}
process.implementation
The implementation used when performing devenv up.
Type: one of "honcho", "overmind", "process-compose"
Default
Example
process.process-compose
Top-level process-compose.yaml options when that implementation is used.
Type: attribute set
Default
Example
processes
Processes can be started with devenv up and run in foreground mode.
Type: attribute set of (submodule)
Default
processes.<name>.exec
Bash code to run the process.
Type: string
processes.<name>.process-compose
process-compose.yaml specific process attributes.
Example: https://github.com/F1bonacc1/process-compose/blob/main/process-compose.yaml`
Only used when using process.implementation = "process-compose";
Type: attribute set
Default
Example
{"availability":{"backoff_seconds":2,"max_restarts":5,"restart":"on_failure"},"depends_on":{"some-other-process":{"condition":"process_completed_successfully"}},"environment":["ENVVAR_FOR_THIS_PROCESS_ONLY=foobar"]}
redis.bind
The IP interface to bind to.
Type: null or string
Default
Example
redis.enable
Whether to enable Add redis process and expose utilities..
Type: boolean
Default
Example
redis.extraConfig
Additional text to be appended to
Type: strings concatenated with "\n"
Default
redis.package
Which package of redis to use
Type: package
Default
redis.port
The TCP port to accept connections. If port 0 is specified Redis will not listen on a TCP socket.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default
scripts
A set of scripts available when the environment is active.
Type: attribute set of (submodule)
Default
scripts.<name>.exec
Bash code to execute when the script is ran.
Type: string