Options reference
Reference for every configurable option in devenv.nix. Generated from the devenv module tree.
android
android.abis
The Android ABIs to install. By default, the arm64-v8a and x86_64 ABIs are installed.
android.android-studio.enable
Whether to enable the installation of Android Studio.
android.android-studio.package
The Android Studio package to use. By default, the Android Studio package from nixpkgs is used.
android.buildTools.version
The version of the Android build tools to install. By default, version 30.0.3 is installed or [ "35.0.0" "33.0.2" "30.0.3" ] if flutter is enabled.
android.cmake.version
The CMake versions to install for Android. By default, version 3.22.1 is installed.
android.cmdLineTools.version
The version of the Android command line tools to install. By default, version 11.0 is installed or 8.0 if flutter is enabled.
android.emulator.enable
Whether to include the Android Emulator. By default, the emulator is included.
android.emulator.version
The version of the Android Emulator to install. Available versions depend on the nixpkgs version. To see available versions, try building with an invalid version; the error message will list all available options.
android.enable
Whether to enable tools for Android Development.
android.extraLicenses
The additional Android licenses to accept. By default, several standard licenses are accepted.
android.extras
The Android extras to install. By default, the Google Cloud Messaging (GCM) extra is installed.
android.flutter.enable
Whether to include the Flutter tools.
android.flutter.package
The Flutter package to use. By default, the Flutter package from nixpkgs is used.
android.googleAPIs.enable
Whether to use the Google APIs. By default, the Google APIs are used.
android.googleTVAddOns.enable
Whether to use the Google TV Add-Ons. By default, the Google TV Add-Ons are used.
android.ndk.enable
Whether to include the Android NDK (Native Development Kit). By default, the NDK is included.
android.ndk.version
The version of the Android NDK (Native Development Kit) to install. By default, version 26.1.10909125 is installed or for flutter version 28.2.13676358.
android.platformTools.version
The version of the Android platform tools to install. Available versions depend on the nixpkgs version. To see available versions, try building with an invalid version; the error message will list all available options.
android.platforms.version
The Android platform versions to install. By default, versions 32, 34 and 36 are installed.
android.reactNative.enable
Whether to include the React Native tools.
android.sources.enable
Whether to include the Android sources. By default, the sources are not included.
android.systemImageTypes
The Android system image types to install. By default, the google_apis_playstore system image is installed.
android.systemImages.enable
Whether to include the Android system images. By default, the system images are included.
android.tools.version
The version of the Android SDK tools to install. By default, version 26.1.1 is installed.
apple
apple.sdk
The Apple SDK to add to the developer environment on macOS.
If set to null, the system SDK can be used if the shell allows access to external environment variables.
aws-vault
aws-vault.awscliWrapper
Attribute set of packages including awscli2
aws-vault.awscliWrapper.enable
Whether to enable Wraps awscli2 binary as aws-vault exec <profile> -- aws <args>.
.
aws-vault.awscliWrapper.package
The awscli2 package to use.
aws-vault.enable
Whether to enable aws-vault integration.
aws-vault.opentofuWrapper
Attribute set of packages including opentofu
aws-vault.opentofuWrapper.enable
Whether to enable Wraps opentofu binary as aws-vault exec <profile> -- opentofu <args>.
.
aws-vault.opentofuWrapper.package
The opentofu package to use.
aws-vault.package
The aws-vault package to use.
aws-vault.profile
The profile name passed to aws-vault exec.
aws-vault.terraformWrapper
Attribute set of packages including terraform
aws-vault.terraformWrapper.enable
Whether to enable Wraps terraform binary as aws-vault exec <profile> -- terraform <args>.
.
aws-vault.terraformWrapper.package
The terraform package to use.
cachix
cachix.enable
Whether to enable Cachix integration.
cachix.package
The cachix package to use.
cachix.pull
Which Cachix caches to pull from.
cachix.push
Which Cachix cache to push to. This cache is also added to cachix.pull.
certFile
certFile
Custom certificate file name, uses mkcert default if unset
certificates
certificates
List of domains to generate certificates for.
changelogs
changelogs
List of changelog entries for this module.
changelogs.*.date
Date of the changelog entry in YYYY-MM-DD format.
changelogs.*.description
Markdown description of the change.
changelogs.*.title
Title of the changelog entry.
changelogs.*.when
Whether to include this changelog entry (useful for conditional changelogs).
claude
claude.code.agent
The agent to use as Claude Code's primary agent.
claude.code.agents
Custom Claude Code sub-agents to create in the project. Sub-agents are specialized AI assistants that handle specific tasks with their own context window and can be invoked automatically or explicitly.
For more details, see: https://docs.anthropic.com/en/docs/claude-code/sub-agents
claude.code.agents.<name>.description
What the sub-agent does
claude.code.agents.<name>.effort
Override the effort level for this agent.
claude.code.agents.<name>.model
Override the model for this agent.
Accepts an alias (sonnet, opus, haiku, fable), a full model ID (e.g. claude-opus-5), or inherit.
claude.code.agents.<name>.permissionMode
Permission mode for this specific sub-agent.
manual is an alias for default.
claude.code.agents.<name>.prompt
The system prompt for the sub-agent
claude.code.agents.<name>.tools
List of allowed tools for this sub-agent
claude.code.apiKeyHelper
Custom script for generating authentication tokens. The script should output the API key to stdout.
claude.code.cleanupPeriodDays
Retention period for chat transcripts in days.
claude.code.commands
Custom Claude Code slash commands to create in the project.
Commands are invoked with /command-name in Claude Code.
claude.code.enable
Whether to enable Claude Code integration with automatic hooks and commands setup.
claude.code.env
Custom environment variables for Claude Code sessions.
claude.code.forceLoginMethod
Restrict the login method.
- claudeai: only claude.ai accounts
- console: only Claude Console (API key) accounts
- gateway: only a cloud gateway
claude.code.hooks
Hooks that run at different points in Claude Code's workflow.
claude.code.hooks.<name>.command
The command to execute.
claude.code.hooks.<name>.enable
Whether to enable this hook.
claude.code.hooks.<name>.hookType
The type of hook:
- PreToolUse: Runs before tool calls (can block them)
- PostToolUse: Runs after tool calls complete
- PostToolUseFailure: Runs after a tool call fails
- Notification: Runs when Claude Code sends notifications
- UserPromptSubmit: Runs when user submits a prompt
- SessionStart: Runs when a Claude Code session starts
- SessionEnd: Runs when a Claude Code session ends
- Stop: Runs when Claude Code finishes responding
- SubagentStart: Runs when a subagent task starts
- SubagentStop: Runs when subagent tasks complete
- PreCompact: Runs before message compaction
- PermissionRequest: Runs when a permission is requested
- WorktreeCreate: Runs when a new worktree is created
- WorktreeRemove: Runs when a worktree is removed
- TeammateIdle: Runs when a teammate agent becomes idle
- TaskCompleted: Runs when a task is completed
- ConfigChange: Runs when configuration changes
claude.code.hooks.<name>.matcher
Regex pattern to match against tool names (for PreToolUse/PostToolUse hooks).
claude.code.hooks.<name>.name
The name of the hook (appears in logs).
claude.code.hooks.git-hooks-run
Automatically runs git-hooks after Claude edits files.
Enabled by default when git-hooks.enable is true.
claude.code.hooks.git-hooks-run.command
The command to execute.
claude.code.hooks.git-hooks-run.enable
Whether to enable this hook.
claude.code.hooks.git-hooks-run.hookType
The type of hook:
- PreToolUse: Runs before tool calls (can block them)
- PostToolUse: Runs after tool calls complete
- PostToolUseFailure: Runs after a tool call fails
- Notification: Runs when Claude Code sends notifications
- UserPromptSubmit: Runs when user submits a prompt
- SessionStart: Runs when a Claude Code session starts
- SessionEnd: Runs when a Claude Code session ends
- Stop: Runs when Claude Code finishes responding
- SubagentStart: Runs when a subagent task starts
- SubagentStop: Runs when subagent tasks complete
- PreCompact: Runs before message compaction
- PermissionRequest: Runs when a permission is requested
- WorktreeCreate: Runs when a new worktree is created
- WorktreeRemove: Runs when a worktree is removed
- TeammateIdle: Runs when a teammate agent becomes idle
- TaskCompleted: Runs when a task is completed
- ConfigChange: Runs when configuration changes
claude.code.hooks.git-hooks-run.matcher
Regex pattern to match against tool names (for PreToolUse/PostToolUse hooks).
claude.code.hooks.git-hooks-run.name
The name of the hook (appears in logs).
claude.code.mcpServers
MCP (Model Context Protocol) servers to configure. These servers provide additional capabilities and context to Claude Code.
claude.code.mcpServers.<name>.args
Arguments to pass to the command for stdio MCP servers.
claude.code.mcpServers.<name>.command
Command to execute for stdio MCP servers.
claude.code.mcpServers.<name>.env
Environment variables for stdio MCP servers.
claude.code.mcpServers.<name>.headers
HTTP headers for HTTP MCP servers (e.g., for authentication).
claude.code.mcpServers.<name>.type
Type of MCP server connection.
claude.code.mcpServers.<name>.url
URL for HTTP MCP servers.
claude.code.model
Override the default Claude model.
claude.code.permissions
Fine-grained permissions for tool usage.
Supports global settings and per-tool allow/ask/deny rules.
Tool rules can be placed under rules or directly (backward compatible).
claude.code.permissions.<name>.allow
List of allowed patterns. An empty string emits a bare tool entry
(e.g. WebSearch rather than WebSearch(pattern)), matching the
tool regardless of input. Use this for tools without a matcher
format such as WebSearch or AskUserQuestion.
claude.code.permissions.<name>.ask
List of patterns that require user approval. An empty string emits
a bare tool entry (e.g. WebSearch rather than WebSearch(pattern)).
claude.code.permissions.<name>.deny
List of denied patterns. An empty string emits a bare tool entry
(e.g. AskUserQuestion rather than AskUserQuestion(pattern)),
which is required to deny tools without a matcher format outright.
claude.code.permissions.additionalDirectories
Allow Claude Code to access directories outside the project root.
claude.code.permissions.defaultMode
Global permission mode for Claude Code.
- default: Prompts on first use of each tool (
manualis an alias) - acceptEdits: Auto-accepts file edits
- plan: Read-only mode
- auto: Auto-approves tool calls with background safety checks
- dontAsk: Auto-denies unless pre-approved via permissions
- bypassPermissions: Skips all permission prompts
claude.code.permissions.disableBypassPermissionsMode
Security option to prevent the dangerous bypassPermissions mode.
Written to settings.json as "disableBypassPermissionsMode": "disable".
claude.code.permissions.rules
Per-tool permission rules. Preferred location for tool permissions.
claude.code.permissions.rules.<name>.allow
List of allowed patterns. An empty string emits a bare tool entry
(e.g. WebSearch rather than WebSearch(pattern)), matching the
tool regardless of input. Use this for tools without a matcher
format such as WebSearch or AskUserQuestion.
claude.code.permissions.rules.<name>.ask
List of patterns that require user approval. An empty string emits
a bare tool entry (e.g. WebSearch rather than WebSearch(pattern)).
claude.code.permissions.rules.<name>.deny
List of denied patterns. An empty string emits a bare tool entry
(e.g. AskUserQuestion rather than AskUserQuestion(pattern)),
which is required to deny tools without a matcher format outright.
claude.code.skills
Custom Claude Code skills to create in the project. A skill is a folder of instructions Claude loads on demand when its description matches the task, keeping specialised knowledge out of the always-on context.
For more details, see: https://docs.anthropic.com/en/docs/claude-code/skills
claude.code.skills.<name>.agent
Which subagent type to use when context = "fork" is set, such as one of
claude.code.agents.
claude.code.skills.<name>.allowedTools
Tools Claude can use without asking permission during the turn that invokes this skill. The grant clears when you send your next message.
This pre-approves tools rather than restricting them; use disallowedTools
to take tools away.
claude.code.skills.<name>.argumentHint
Hint shown during autocomplete to indicate the expected arguments.
claude.code.skills.<name>.arguments
Named positional arguments, substituted into content as $name. Names map
to argument positions in order.
claude.code.skills.<name>.background
Only applies with context = "fork". Set to false to wait for the forked
subagent's result in the turn that invoked the skill, instead of letting it
run in the background.
claude.code.skills.<name>.content
The body of SKILL.md, loaded when the skill triggers.
claude.code.skills.<name>.context
Set to fork to run the skill in a forked subagent context.
claude.code.skills.<name>.copyMode
How to materialise the skill's files, as in files.<name>.copyMode.
Use seed to hand-edit a skill after devenv writes it once.
claude.code.skills.<name>.description
What the skill covers and when Claude should load it. Descriptions are the only part of a skill kept in context at all times, so this is what decides whether the skill ever triggers.
claude.code.skills.<name>.disableModelInvocation
Prevent Claude from automatically loading this skill. Use for workflows you
want to trigger manually with /‹name›.
claude.code.skills.<name>.disallowedTools
Tools removed from Claude's available pool while this skill is active; the restriction clears when you send your next message. Use it for a skill that should never call a given tool, such as an autonomous loop that must not stop to ask a question.
claude.code.skills.<name>.effort
Override the effort level while this skill is active. Which levels are available depends on the model.
claude.code.skills.<name>.model
Model to use while this skill is active, for the rest of the current turn.
Accepts an alias (sonnet, opus, haiku, fable), a full model ID
(e.g. claude-opus-5), or inherit. With context = "fork" it sets the
forked subagent's model instead.
claude.code.skills.<name>.resources
Files placed alongside SKILL.md, keyed by path relative to the
skill directory. Claude reads these on demand, so bulky reference
material belongs here rather than in content.
claude.code.skills.<name>.resources.<name>.executable
Make the file executable
claude.code.skills.<name>.resources.<name>.ini
ini contents
claude.code.skills.<name>.resources.<name>.json
json contents
claude.code.skills.<name>.resources.<name>.source
source contents
claude.code.skills.<name>.resources.<name>.text
text contents
claude.code.skills.<name>.resources.<name>.toml
toml contents
claude.code.skills.<name>.resources.<name>.yaml
yaml contents
claude.code.skills.<name>.userInvocable
Whether you can invoke the skill yourself with /‹name›. Set to false when
only Claude should invoke it, for background knowledge rather than a command.
claude.code.skills.<name>.whenToUse
Additional context for when Claude should invoke the skill, such as trigger
phrases or example requests. Appended to description in the skill listing
and counts toward the 1536-character cap.
container
container.isBuilding
Devenv set it to true when the environment is a container.
Example:
{ pkgs, config, lib, ... }:
{
packages = [ pkgs.openssl ]
++ lib.optionals (!config.container.isBuilding) [ pkgs.git ];
}
containers
containers
Container specifications that can be built, copied and ran using devenv container.
containers.<name>.copyToRoot
Add a path to the container. Defaults to the whole git repo.
containers.<name>.defaultCopyArgs
Default arguments to pass to skopeo copy.
You can override them by passing arguments to the script.
containers.<name>.enableLayerDeduplication
Whether to enable layer deduplication using the approach described at https://blog.eigenvalue.net/2023-nix2container-everything-once/ .
containers.<name>.entrypoint
Entrypoint of the container.
containers.<name>.fromImage
An existing OCI base image to build on top of, built with nix2container's pullImage.
containers.<name>.isBuilding
Set to true when the environment is building this container.
containers.<name>.layers
The layers to create.
containers.<name>.layers.*.copyToRoot
A list of derivations copied to the image root directory.
Store path prefixes /nix/store/hash-path are removed in order to relocate them to the image /.
containers.<name>.layers.*.deps
A list of store paths to include in the layer.
containers.<name>.layers.*.ignore
A store path to ignore when building the layer. This is mainly useful to ignore the configuration file from the container layer.
containers.<name>.layers.*.maxLayers
The maximum number of layers to create.
containers.<name>.layers.*.perms
A list of file permissions which are set when the tar layer is created.
These permissions are not written to the Nix store.
containers.<name>.layers.*.perms.*.gid
The group ID to apply to all of the files matched by the regex.
containers.<name>.layers.*.perms.*.gname
The group name to apply to all of the files matched by the regex.
containers.<name>.layers.*.perms.*.mode
The numeric permissions mode to apply to all of the files matched by the regex.
containers.<name>.layers.*.perms.*.path
A store path.
containers.<name>.layers.*.perms.*.regex
A regex pattern to select files or directories to apply the mode to.
containers.<name>.layers.*.perms.*.uid
The user ID to apply to all of the files matched by the regex.
containers.<name>.layers.*.perms.*.uname
The user name to apply to all of the files matched by the regex.
containers.<name>.layers.*.reproducible
Whether the layer should be reproducible.
containers.<name>.maxLayers
Maximum number of container layers created.
containers.<name>.name
Name of the container.
containers.<name>.registry
Registry to push the container to.
containers.<name>.startupCommand
Command to run in the container.
Can be a string, a package, or a list of strings for individual arguments.
Use a list when your entrypoint expects separate arguments, e.g.:
startupCommand = [ "-f" "/var/lib/haproxy/haproxy.cfg" ];
containers.<name>.version
Version/tag of the container.
containers.<name>.workingDir
Working directory of the container.
delta
delta.enable
Integrate delta into git: https://dandavison.github.io/delta/.
devcontainer
devcontainer.enable
Whether to enable generation .devcontainer.json for devenv integration.
devcontainer.settings
Devcontainer settings.
devcontainer.settings.customizations.vscode.extensions
A list of pre-installed VS Code extensions.
devcontainer.settings.customizations.zed.extensions
A list of pre-installed Zed extensions.
devcontainer.settings.image
The name of an image in a container registry.
devcontainer.settings.overrideCommand
Override the default command.
devcontainer.settings.updateContentCommand
A command to run after the container is created.
devenv
devenv.cliVersion
Alias of {option}devenv.cli.version.
devenv.debug
Whether to enable debug mode of devenv enterShell script.
devenv.flakesIntegration
Tells if devenv is being imported by a flake.nix file
devenv.isTesting
Whether the environment is being used for testing.
devenv.latestVersion
The latest version of devenv.
devenv.warnOnNewVersion
Whether to warn when a new version of either devenv or the direnv integration is available.
difftastic
difftastic.enable
Integrate difftastic into git: https://difftastic.wilfred.me.uk/.
dotenv
dotenv.disableHint
Disable the hint printed when a dotenv file is present but the integration is not enabled.
dotenv.enable
Whether to enable .env integration.
dotenv.filename
The path of the dotenv file to load, or a list of dotenv files to load in order of precedence.
dotenv.substitution
Whether to expand variable references such as $NAME, ${NAME}, and
${NAME:-default} in dotenv values. Disabled by default so dollar signs
in passwords, hashes, and tokens remain literal.
enterShell
enterShell
Bash code to execute when entering the shell.
enterTest
enterTest
Bash code to execute to run the test.
env
env
Environment variables to be exposed inside the developer environment.
files
files
A set of files that will be linked into devenv root.
files.<name>.copyMode
How to materialize the file in the project root:
symlink(default): symlink to the read-only file in the Nix store. Edits are not possible; devenv keeps the link pointed at the current contents.seed: copy the file into place once, only if it does not already exist, and make it writable. Existing files are left untouched, so your edits are preserved. Useful for seeding configuration from templates the user then edits.copy: copy the file into place as a writable file, overwriting it with fresh contents on every shell entry. Useful when a tool must write to the file in place but devenv should remain the source of truth.
files.<name>.executable
Make the file executable
files.<name>.ini
ini contents
files.<name>.json
json contents
files.<name>.source
source contents
files.<name>.text
text contents
files.<name>.toml
toml contents
files.<name>.yaml
yaml contents
git
git.root
Git repository root path. This field is populated automatically in devenv 1.10 and newer.
git-hooks
git-hooks
Integration with https://github.com/cachix/git-hooks.nix
git-hooks.addGcRoot
Whether to add the generated pre-commit config to the garbage collector roots. This prevents Nix from garbage-collecting the tools used by hooks.
git-hooks.configFile
The pre-commit configuration file.
git-hooks.configPath
The path where to generate the pre-commit configuration file.
This path is relative to the root of the project. By default, this is set to ".pre-commit-config.yaml", which is the standard location expected by pre-commit.
git-hooks.default_stages
A configuration wide option for the stages property. Installs hooks to the defined stages. See https://pre-commit.com/#confining-hooks-to-run-at-certain-stages.
git-hooks.enable
Whether to enable the pre-commit hooks module.
When set to false, this disables the entire module.
git-hooks.enabledPackages
All packages provided by hooks that are enabled.
Useful for including into the developer environment.
git-hooks.excludes
Exclude files that were matched by these patterns.
git-hooks.gitPackage
The git package to use.
git-hooks.hooks
The hook definitions.
You can both specify your own hooks here and you can enable predefined hooks.
Example of enabling a predefined hook:
hooks.nixpkgs-fmt.enable = true;
Example of a custom hook:
hooks.my-tool = {
enable = true;
name = "my-tool";
description = "Run MyTool on all files in the project";
files = "\\.mtl$";
entry = "${pkgs.my-tool}/bin/mytoolctl";
};
The predefined hooks are:
action-validator
Tool to validate GitHub Action and Workflow YAML files
actionlint
Static checker for GitHub Actions workflow files
alejandra
The Uncompromising Nix Code Formatter
annex
Runs the git-annex hook for large file support
ansible-lint
Ansible linter
autoflake
Remove unused imports and variables from Python code
bats
Run bash unit tests
beautysh
Format shell files
biome
A toolchain for web projects, aimed to provide functionalities to maintain them
black
The uncompromising Python code formatter
cabal-fmt
Format Cabal files
cabal-gild
Format Cabal files
cabal2nix
Run cabal2nix on all *.cabal files to generate corresponding .nix files
cargo-check
Check the cargo package for errors
chart-testing
CLI tool for linting and testing Helm charts
check-added-large-files
Prevent very large files to be committed (e.g. binaries).
check-builtin-literals
Require literal syntax when initializing empty or zero builtin types in Python.
check-case-conflicts
Check for files that would conflict in case-insensitive filesystems.
check-docstring-first
Check that all docstrings appear above the code.
check-executables-have-shebangs
Ensure that all non-binary executables have shebangs.
check-json
Check syntax of JSON files.
check-merge-conflicts
Check for files that contain merge conflict strings.
check-python
Check syntax of Python file by parsing Python abstract syntax tree.
check-shebang-scripts-are-executable
Ensure that all (non-binary) files with a shebang are executable.
check-symlinks
Find broken symlinks.
check-toml
Check syntax of TOML files.
check-vcs-permalinks
Ensure that links to VCS websites are permalinks.
check-xml
Check syntax of XML files.
check-yaml
Check syntax of YAML files.
checkmake
Experimental linter/analyzer for Makefiles
chktex
LaTeX semantic checker
circleci
Validate CircleCI config files.
clang-format
Format your code using clang-format.
clang-tidy
Static analyzer for C++ code.
clippy
Lint Rust code.
cljfmt
A tool for formatting Clojure code.
cmake-format
A tool for formatting CMake-files.
commitizen
Check whether the current commit message follows committing rules.
comrak
A 100% CommonMark-compatible GitHub Flavored Markdown formatter
conform
Policy enforcement for commits.
convco
credo
Runs a static code analysis using Credo
crystal
A tool that automatically formats Crystal source code
cspell
A Spell Checker for Code
cue-fmt
Format CUE files
dart-analyze
Dart analyzer
dart-format
Dart formatter
deadnix
Scan Nix files for dead code (unused variable bindings).
denofmt
Auto-format JavaScript, TypeScript, Markdown, and JSON files.
denolint
Lint JavaScript/TypeScript source code.
detect-aws-credentials
Detect AWS credentials from the AWS cli credentials file.
detect-private-keys
Detect the presence of private keys.
dhall-format
Dhall code formatter.
dialyzer
Runs a static code analysis using Dialyzer
dune-fmt
Runs Dune's formatters on the code tree.
dune-opam-sync
Check that Dune-generated OPAM files are in sync.
eclint
EditorConfig linter written in Go.
editorconfig-checker
Verify that the files are in harmony with the .editorconfig.
elm-format
Format Elm files.
elm-review
Analyzes Elm projects, to help find mistakes before your users find them.
elm-test
Run unit tests and fuzz tests for Elm code.
end-of-file-fixer
Ensures that a file is either empty, or ends with a single newline.
eslint
Find and fix problems in your JavaScript code.
fix-byte-order-marker
Remove UTF-8 byte order marker.
fix-encoding-pragma
Adds # -- coding: utf-8 -- to the top of Python files.'
flake-checker
Run health checks on your flake-powered Nix projects.
flake8
Check the style and quality of Python files.
flynt
CLI tool to convert a python project's %-formatted strings to f-strings.
forbid-new-submodules
Prevent addition of new Git submodules.
fourmolu
Haskell code prettifier.
fprettify
Auto-formatter for modern Fortran code.
gitlint
Linting for your git commit messages
gofmt
A tool that automatically formats Go source code
golangci-lint
Fast linters runner for Go.
golines
A golang formatter that fixes long lines
gotest
Run go tests
govet
Checks correctness of Go programs.
gptcommit
Generate a commit message using GPT3.
hadolint
Dockerfile linter, validate inline bash.
headache
Lightweight tool for managing headers in source code files.
hindent
Haskell code prettifier.
hledger-fmt
Opinionated hledger's journal files formatter.
hlint
HLint gives suggestions on how to improve your source code.
hpack
hpack converts package definitions in the hpack format (package.yaml) to Cabal files.
html-tidy
HTML linter.
hunspell
Spell checker and morphological analyzer.
isort
A Python utility / library to sort imports.
juliaformatter
Run JuliaFormatter.jl against Julia source files
keep-sorted
Language-agnostic formatter that sorts lines between two markers in a larger file.
lacheck
A consistency checker for LaTeX documents.
latexindent
Perl script to add indentation to LaTeX files.
lua-ls
Uses the lua-language-server CLI to statically type-check and lint Lua code.
luacheck
A tool for linting and static analysis of Lua code.
lychee
A fast, async, stream-based link checker that finds broken hyperlinks and mail addresses inside Markdown, HTML, reStructuredText, or any other text file or website.
markdownlint
Style checker and linter for markdown files.
mdformat
CommonMark compliant Markdown formatter
mdl
A tool to check markdown files and flag style issues.
mdsh
Markdown shell pre-processor.
mix-format
Runs the built-in Elixir syntax formatter
mix-test
Runs the built-in Elixir test framework
mixed-line-endings
Resolve mixed line endings.
mkdocs-linkcheck
Validate links associated with markdown-based, statically generated websites.
mypy
Static type checker for Python
name-tests-test
Verify that Python test files are named correctly.
nbstripout
Strip output from Jupyter notebooks
nil
Incremental analysis assistant for writing in Nix.
nixf-diagnose
wrapper for nixf-tidy.
nixfmt
Official Nix code formatter.
nixfmt-classic
Nix code prettifier (classic).
nixfmt-rfc-style
Nix code prettifier (RFC 166 style).
nixpkgs-fmt
Nix code prettifier.
no-commit-to-branch
Disallow committing to certain branch/branches.
ocp-indent
A tool to indent OCaml code.
opam-lint
OCaml package manager configuration checker.
openapi-spec-validator
A tool to validate OpenAPI spec files
ormolu
Haskell code prettifier.
php-cs-fixer
Lint PHP files.
phpcbf
Lint PHP files.
phpcs
Lint PHP files.
phpstan
Static Analysis of PHP files.
poetry-check
Check the Poetry config for errors
poetry-lock
Update the Poetry lock file
pre-commit-hook-ensure-sops
prettier
Opinionated multi-language code formatter.
pretty-format-json
Formats JSON files.
proselint
A linter for prose.
psalm
Static Analysis of PHP files.
purs-tidy
Format purescript files.
pylint
Lint Python files.
pyright
Static type checker for Python
python-debug-statements
Check for debugger imports and py37+ breakpoint() calls in python source.
pyupgrade
Automatically upgrade syntax for newer versions.
regal
A linter for Rego policies
reuse
reuse is a tool for compliance with the REUSE recommendations.
revive
A linter for Go source code.
ripsecrets
Prevent committing secret keys into your source code
rome
ruff
An extremely fast Python linter, written in Rust.
ruff-format
An extremely fast Python code formatter, written in Rust.
rumdl
Style checker and linter for rumdl files.
rustfmt
Format Rust code.
selene
A blazing-fast modern Lua linter written in Rust.
shellcheck
Format shell files.
shfmt
Format shell files.
single-quoted-strings
Replace double quoted strings with single quoted strings.
sort-file-contents
Sort the lines in specified files (defaults to alphabetical).
sort-requirements-txt
Sort requirements in requirements.txt and constraints.txt files.
sort-simple-yaml
Sort simple YAML files which consist only of top-level keys, preserving comments and blocks.
staticcheck
State of the art linter for the Go programming language
statix
Lints and suggestions for the Nix programming language.
stylish-haskell
A simple Haskell code prettifier
stylua
An Opinionated Lua Code Formatter.
tagref
Have tagref check all references and tags.
taplo
Format TOML files with taplo fmt
terraform-format
Format Terraform (.tf) files.
terraform-validate
Validates terraform configuration files (.tf).
tflint
A Pluggable Terraform Linter.
topiary
A universal formatter engine within the Tree-sitter ecosystem, with support for many languages.
treefmt
One CLI to format the code tree.
trim-trailing-whitespace
Trim trailing whitespace.
trufflehog
Secrets scanner
typos
Source code spell checker
typstyle
Beautiful and reliable typst code formatter
uv-check
Check if uv's lockfile is up-to-date.
uv-export
Export uv's lockfile.
uv-lock
Update uv's lockfile.
vale
A markup-aware linter for prose built with speed and extensibility in mind.
woodpecker-cli-lint
Command line client for the Woodpecker Continuous Integration server (lint only).
yamlfmt
Formatter for YAML files.
yamllint
Linter for YAML files.
zizmor
Static analysis for GitHub Actions
zprint
Beautifully format Clojure and Clojurescript source code and s-expressions.
git-hooks.hooks.<name>.after
List of hooks that should run before this hook.
git-hooks.hooks.<name>.always_run
if true this hook will run even if there are no matching files.
git-hooks.hooks.<name>.args
List of additional parameters to pass to the hook.
git-hooks.hooks.<name>.before
List of hooks that should run after this hook.
git-hooks.hooks.<name>.description
Description of the hook. Used for metadata purposes only.
git-hooks.hooks.<name>.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.<name>.entry
The entry point - the executable to run. {option}entry can also contain arguments that will not be overridden, such as entry = "autopep8 -i";.
git-hooks.hooks.<name>.exclude_types
List of file types to exclude. See Filtering files with types.
git-hooks.hooks.<name>.excludes
Exclude files that were matched by these patterns.
git-hooks.hooks.<name>.extraPackages
Additional packages required to run the hook.
These are propagated to enabledPackages for constructing developer
environments.
git-hooks.hooks.<name>.fail_fast
if true pre-commit will stop running hooks if this hook fails.
git-hooks.hooks.<name>.files
The pattern of files to run on.
git-hooks.hooks.<name>.id
The unique identifier for the hook.
You do not need to set or modify this value.
The id is used to reference a hook when using pre-commit run <id>.
It can also be used to reference the hook in other hooks' before and after fields to define the order in which hooks run.
The id is set to the attribute name the hook submodule is bound to in the parent module.
For example, the id of following hook would be my-hook.
{
hooks = {
my-hook = {
enable = true;
entry = "my-hook";
};
}
}
git-hooks.hooks.<name>.language
The language of the hook - tells pre-commit how to install the hook.
Defaults to "system", or "unsupported" when using pre-commit >= 4.4.0.
Note: "unsupported" does not mean deprecated.
Pre-commit >= 4.4.0 renamed "system" to "unsupported" because
when using this language pre-commit does not provision the tools, and using externally
managed tools (e.g. via Nix) is not an officially supported workflow.
Both values are functionally equivalent.
git-hooks.hooks.<name>.name
The name of the hook. Shown during hook execution.
git-hooks.hooks.<name>.package
An optional package that provides the hook.
git-hooks.hooks.<name>.pass_filenames
Whether to pass filenames as arguments to the entry point.
git-hooks.hooks.<name>.priority
Defines the order in which the hooks are executed. Default priority is set by the order in the list of hooks. Evaluation goes from 0 and up. If two hooks have the same priority, they’ll run in parallel. This works only if cfg.package is set to prek.
git-hooks.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.
git-hooks.hooks.<name>.require_serial
if true this hook will execute using a single process instead of in parallel.
git-hooks.hooks.<name>.stages
Confines the hook to run at a particular stage.
git-hooks.hooks.<name>.types
List of file types to run on. See Filtering files with types.
git-hooks.hooks.<name>.types_or
List of file types to run on, where only a single type needs to match.
git-hooks.hooks.<name>.verbose
forces the output of the hook to be printed even when the hook passes.
git-hooks.hooks.alejandra
alejandra hook
git-hooks.hooks.alejandra.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.alejandra.settings.check
Check if the input is already formatted and disable writing in-place the modified content
git-hooks.hooks.alejandra.settings.configPath
(experimental) Path to the alejandra.toml configuration file.
git-hooks.hooks.alejandra.settings.exclude
Files or directories to exclude from formatting.
git-hooks.hooks.alejandra.settings.threads
Number of formatting threads to spawn.
git-hooks.hooks.alejandra.settings.verbosity
Whether informational messages or all messages should be hidden or not.
git-hooks.hooks.ansible-lint
ansible-lint hook
git-hooks.hooks.ansible-lint.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.ansible-lint.settings.configPath
Path to the YAML configuration file.
git-hooks.hooks.ansible-lint.settings.subdir
Path to the Ansible subdirectory.
git-hooks.hooks.autoflake
autoflake hook
git-hooks.hooks.autoflake.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.autoflake.settings.binPath
Path to autoflake binary.
git-hooks.hooks.autoflake.settings.flags
Flags passed to autoflake.
git-hooks.hooks.biome
biome hook
git-hooks.hooks.biome.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.biome.settings.binPath
biome binary path.
For example, if you want to use the biome binary from node_modules, use "./node_modules/.bin/biome".
Use a string instead of a path to avoid having to Git track the file in projects that use Nix flakes.
git-hooks.hooks.biome.settings.configPath
Path to the configuration JSON file
git-hooks.hooks.biome.settings.write
Whether to edit files inplace.
git-hooks.hooks.black
black hook
git-hooks.hooks.black.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.black.settings.flags
Flags passed to black. See all available here.
git-hooks.hooks.cabal2nix
cabal2nix hook
git-hooks.hooks.cabal2nix.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.cabal2nix.settings.outputFilename
The name of the output file generated after running cabal2nix.
git-hooks.hooks.clippy
clippy hook
git-hooks.hooks.clippy.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.clippy.packageOverrides.cargo
The cargo package to use
git-hooks.hooks.clippy.packageOverrides.clippy
The clippy package to use
git-hooks.hooks.clippy.settings.allFeatures
Run clippy with --all-features
git-hooks.hooks.clippy.settings.denyWarnings
Fail when warnings are present
git-hooks.hooks.clippy.settings.extraArgs
Additional arguments to pass to clippy
git-hooks.hooks.clippy.settings.offline
Run clippy offline
git-hooks.hooks.cmake-format
cmake-format hook
git-hooks.hooks.cmake-format.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.cmake-format.settings.configPath
Path to the configuration file (.json,.python,.yaml)
git-hooks.hooks.convco
convco hook
git-hooks.hooks.convco.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.convco.settings.configPath
Path to the configuration file (YAML or JSON)
git-hooks.hooks.credo
credo hook
git-hooks.hooks.credo.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.credo.settings.strict
Whether to auto-promote the changes.
git-hooks.hooks.deadnix
deadnix hook
git-hooks.hooks.deadnix.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.deadnix.settings.edit
Remove unused code and write to source file.
git-hooks.hooks.deadnix.settings.exclude
Files to exclude from analysis.
git-hooks.hooks.deadnix.settings.noLambdaArg
Don't check lambda parameter arguments.
git-hooks.hooks.deadnix.settings.noLambdaPatternNames
Don't check lambda pattern names (don't break nixpkgs callPackage).
git-hooks.hooks.deadnix.settings.noUnderscore
Don't check any bindings that start with a _.
git-hooks.hooks.deadnix.settings.quiet
Don't print a dead code report.
git-hooks.hooks.denofmt
denofmt hook
git-hooks.hooks.denofmt.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.denofmt.settings.configPath
Path to the configuration JSON file
git-hooks.hooks.denofmt.settings.write
Whether to edit files inplace.
git-hooks.hooks.denolint
denolint hook
git-hooks.hooks.denolint.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.denolint.settings.configPath
Path to the configuration JSON file
git-hooks.hooks.denolint.settings.format
Output format.
git-hooks.hooks.dune-fmt
dune-fmt hook
git-hooks.hooks.dune-fmt.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.dune-fmt.settings.auto-promote
Whether to auto-promote the changes.
git-hooks.hooks.dune-fmt.settings.extraRuntimeInputs
Extra runtimeInputs to add to the environment, eg. ocamlformat.
git-hooks.hooks.eclint
eclint hook
git-hooks.hooks.eclint.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.eclint.settings.color
When to generate colored output.
git-hooks.hooks.eclint.settings.exclude
Filter to exclude files.
git-hooks.hooks.eclint.settings.fix
Modify files in place rather than showing the errors.
git-hooks.hooks.eclint.settings.summary
Only show number of errors per file.
git-hooks.hooks.eclint.settings.verbosity
Log level verbosity
git-hooks.hooks.eslint
eslint hook
git-hooks.hooks.eslint.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.eslint.settings.binPath
eslint binary path.
For example, if you want to use the eslint binary from node_modules, use "./node_modules/.bin/eslint".
Use a string instead of a path to avoid having to Git track the file in projects that use Nix flakes.
git-hooks.hooks.eslint.settings.extensions
The pattern of files to run on, see https://pre-commit.com/#hooks-files.
git-hooks.hooks.flake8
flake8 hook
git-hooks.hooks.flake8.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.flake8.settings.binPath
flake8 binary path. Should be used to specify flake8 binary from your Python environment.
git-hooks.hooks.flake8.settings.extendIgnore
List of additional ignore codes
git-hooks.hooks.flake8.settings.format
Output format.
git-hooks.hooks.flynt
flynt hook
git-hooks.hooks.flynt.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.flynt.settings.aggressive
Include conversions with potentially changed behavior.
git-hooks.hooks.flynt.settings.binPath
flynt binary path. Can be used to specify the flynt binary from an existing Python environment.
git-hooks.hooks.flynt.settings.dry-run
Do not change files in-place and print diff instead.
git-hooks.hooks.flynt.settings.exclude
Ignore files with given strings in their absolute path.
git-hooks.hooks.flynt.settings.fail-on-change
Fail when diff is not empty (for linting purposes).
git-hooks.hooks.flynt.settings.line-length
Convert expressions spanning multiple lines, only if the resulting single line will fit into this line length limit.
git-hooks.hooks.flynt.settings.no-multiline
Convert only single line expressions.
git-hooks.hooks.flynt.settings.quiet
Run without output.
git-hooks.hooks.flynt.settings.string
Interpret the input as a Python code snippet and print the converted version.
git-hooks.hooks.flynt.settings.transform-concats
Replace string concatenations with f-strings.
git-hooks.hooks.flynt.settings.verbose
Run with verbose output.
git-hooks.hooks.fourmolu
fourmolu hook
git-hooks.hooks.fourmolu.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.fourmolu.settings.defaultExtensions
Haskell language extensions to enable.
git-hooks.hooks.golines
golines hook
git-hooks.hooks.golines.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.golines.settings.flags
Flags passed to golines. See all available here
git-hooks.hooks.gotest
gotest hook
git-hooks.hooks.gotest.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.gotest.settings.flags
Flags passed to gotest. See all available here.
git-hooks.hooks.headache
headache hook
git-hooks.hooks.headache.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.headache.settings.header-file
Path to the header file.
git-hooks.hooks.hledger-fmt
hledger-fmt hook
git-hooks.hooks.hledger-fmt.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.hledger-fmt.settings.fix
Fix the files in place.
git-hooks.hooks.hlint
hlint hook
git-hooks.hooks.hlint.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.hlint.settings.hintFile
Path to hlint.yaml. By default, hlint searches for .hlint.yaml in the project root.
git-hooks.hooks.hpack
hpack hook
git-hooks.hooks.hpack.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.hpack.settings.silent
Whether generation should be silent.
git-hooks.hooks.isort
isort hook
git-hooks.hooks.isort.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.isort.settings.flags
Flags passed to isort. See all available here.
git-hooks.hooks.isort.settings.profile
Built-in profiles to allow easy interoperability with common projects and code styles.
git-hooks.hooks.lacheck
lacheck hook
git-hooks.hooks.lacheck.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.latexindent
latexindent hook
git-hooks.hooks.latexindent.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.latexindent.settings.flags
Flags passed to latexindent. See available flags here
git-hooks.hooks.lua-ls
lua-ls hook
git-hooks.hooks.lua-ls.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.lua-ls.settings.checklevel
The diagnostic check level
git-hooks.hooks.lua-ls.settings.configuration
git-hooks.hooks.lychee
lychee hook
git-hooks.hooks.lychee.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.lychee.settings.configPath
Path to the config file.
git-hooks.hooks.lychee.settings.flags
Flags passed to lychee. See all available here.
git-hooks.hooks.markdownlint
markdownlint hook
git-hooks.hooks.markdownlint.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.markdownlint.settings.configuration
git-hooks.hooks.mdl
mdl hook
git-hooks.hooks.mdl.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.mdl.settings.configPath
The configuration file to use.
git-hooks.hooks.mdl.settings.git-recurse
Only process files known to git when given a directory.
git-hooks.hooks.mdl.settings.ignore-front-matter
Ignore YAML front matter.
git-hooks.hooks.mdl.settings.json
Format output as JSON.
git-hooks.hooks.mdl.settings.rules
Markdown rules to use for linting. Per default all rules are processed.
git-hooks.hooks.mdl.settings.rulesets
Specify additional ruleset files to load.
git-hooks.hooks.mdl.settings.show-aliases
Show rule alias instead of rule ID when viewing rules.
git-hooks.hooks.mdl.settings.skip-default-ruleset
Do not load the default markdownlint ruleset. Use this option if you only want to load custom rulesets.
git-hooks.hooks.mdl.settings.style
Select which style mdl uses.
git-hooks.hooks.mdl.settings.tags
Markdown rules to use for linting containing the given tags. Per default all rules are processed.
git-hooks.hooks.mdl.settings.verbose
Increase verbosity.
git-hooks.hooks.mdl.settings.warnings
Show Kramdown warnings.
git-hooks.hooks.mkdocs-linkcheck
mkdocs-linkcheck hook
git-hooks.hooks.mkdocs-linkcheck.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.mkdocs-linkcheck.settings.binPath
mkdocs-linkcheck binary path. Should be used to specify the mkdocs-linkcheck binary from your Python environment.
git-hooks.hooks.mkdocs-linkcheck.settings.extension
File extension to scan for.
git-hooks.hooks.mkdocs-linkcheck.settings.local-only
Whether to only check local links.
git-hooks.hooks.mkdocs-linkcheck.settings.method
HTTP method to use when checking external links.
git-hooks.hooks.mkdocs-linkcheck.settings.path
Path to check
git-hooks.hooks.mkdocs-linkcheck.settings.recurse
Whether to recurse directories under path.
git-hooks.hooks.mypy
mypy hook
git-hooks.hooks.mypy.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.mypy.settings.binPath
Mypy binary path. Should be used to specify the mypy executable in an environment containing your typing stubs.
git-hooks.hooks.nbstripout
nbstripout hook
git-hooks.hooks.nbstripout.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.nil
nil hook
git-hooks.hooks.nil.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.nil.settings.denyWarnings
Treat warnings like errors and exit with non-zero code
git-hooks.hooks.nixf-diagnose
nixf-diagnose hook
git-hooks.hooks.nixf-diagnose.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.nixfmt
nixfmt hook
git-hooks.hooks.nixfmt-classic
nixfmt (classic) hook
git-hooks.hooks.nixfmt-classic.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.nixfmt-classic.settings.width
Line width.
git-hooks.hooks.nixfmt-rfc-style
nixfmt (RFC 166 style) hook
git-hooks.hooks.nixfmt-rfc-style.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.nixfmt-rfc-style.settings.indent
Number of spaces to use for indentation.
git-hooks.hooks.nixfmt-rfc-style.settings.width
Maximum width in characters.
git-hooks.hooks.nixfmt.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.nixfmt.settings.indent
Number of spaces to use for indentation.
git-hooks.hooks.nixfmt.settings.width
Maximum width in characters.
git-hooks.hooks.no-commit-to-branch
no-commit-to-branch-hook
git-hooks.hooks.no-commit-to-branch.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.no-commit-to-branch.settings.branch
Branches to disallow commits to.
git-hooks.hooks.no-commit-to-branch.settings.pattern
RegEx patterns for branch names to disallow commits to.
git-hooks.hooks.ormolu
ormolu hook
git-hooks.hooks.ormolu.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.ormolu.settings.cabalDefaultExtensions
Use default-extensions from .cabal files.
git-hooks.hooks.ormolu.settings.defaultExtensions
Haskell language extensions to enable.
git-hooks.hooks.php-cs-fixer
php-cs-fixer hook
git-hooks.hooks.php-cs-fixer.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.php-cs-fixer.settings.binPath
PHP-CS-Fixer binary path.
git-hooks.hooks.phpcbf
phpcbf hook
git-hooks.hooks.phpcbf.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.phpcbf.settings.binPath
PHP_CodeSniffer binary path.
git-hooks.hooks.phpcs
phpcs hook
git-hooks.hooks.phpcs.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.phpcs.settings.binPath
PHP_CodeSniffer binary path.
git-hooks.hooks.phpstan
phpstan hook
git-hooks.hooks.phpstan.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.phpstan.settings.binPath
PHPStan binary path.
git-hooks.hooks.prettier
prettier hook
git-hooks.hooks.prettier.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.prettier.settings.allow-parens
Include parentheses around a sole arrow function parameter.
git-hooks.hooks.prettier.settings.binPath
prettier binary path.
For example, if you want to use the prettier binary from node_modules, use "./node_modules/.bin/prettier".
Use a string instead of a path to avoid having to Git track the file in projects that use Nix flakes.
git-hooks.hooks.prettier.settings.bracket-same-line
Put > of opening tags on the last line instead of on a new line.
git-hooks.hooks.prettier.settings.cache
Only format changed files.
git-hooks.hooks.prettier.settings.cache-location
Path to the cache file location used by --cache flag.
git-hooks.hooks.prettier.settings.cache-strategy
Strategy for the cache to use for detecting changed files.
git-hooks.hooks.prettier.settings.check
Output a human-friendly message and a list of unformatted files, if any.
git-hooks.hooks.prettier.settings.color
Colorize error messages.
git-hooks.hooks.prettier.settings.config-precedence
Defines how config file should be evaluated in combination of CLI options.
git-hooks.hooks.prettier.settings.configPath
Path to a Prettier configuration file (.prettierrc, package.json, prettier.config.js).
git-hooks.hooks.prettier.settings.embedded-language-formatting
Control how Prettier formats quoted code embedded in the file.
git-hooks.hooks.prettier.settings.end-of-line
Which end of line characters to apply.
git-hooks.hooks.prettier.settings.html-whitespace-sensitivity
How to handle whitespaces in HTML.
git-hooks.hooks.prettier.settings.ignore-path
Path to a file containing patterns that describe files to ignore.
By default, prettier looks for ./.gitignore and ./.prettierignore.
Multiple values are accepted.
git-hooks.hooks.prettier.settings.ignore-unknown
Ignore unknown files.
git-hooks.hooks.prettier.settings.insert-pragma
Insert @format pragma into file's first docblock comment.
git-hooks.hooks.prettier.settings.jsx-single-quote
Use single quotes in JSX.
git-hooks.hooks.prettier.settings.list-different
Print the filenames of files that are different from Prettier formatting.
git-hooks.hooks.prettier.settings.log-level
What level of logs to report.
git-hooks.hooks.prettier.settings.no-bracket-spacing
Do not print spaces between brackets.
git-hooks.hooks.prettier.settings.no-config
Do not look for a configuration file.
git-hooks.hooks.prettier.settings.no-editorconfig
Don't take .editorconfig into account when parsing configuration.
git-hooks.hooks.prettier.settings.no-error-on-unmatched-pattern
Prevent errors when pattern is unmatched.
git-hooks.hooks.prettier.settings.no-semi
Do not print semicolons, except at the beginning of lines which may need them.
git-hooks.hooks.prettier.settings.parser
Which parser to use.
git-hooks.hooks.prettier.settings.plugins
Add plugins from paths.
git-hooks.hooks.prettier.settings.print-width
Line length that the printer will wrap on.
git-hooks.hooks.prettier.settings.prose-wrap
When to or if at all hard wrap prose to print width.
git-hooks.hooks.prettier.settings.quote-props
Change when properties in objects are quoted.
git-hooks.hooks.prettier.settings.require-pragma
Require either '@prettier' or '@format' to be present in the file's first docblock comment.
git-hooks.hooks.prettier.settings.single-attribute-per-line
Enforce single attribute per line in HTML, Vue andJSX.
git-hooks.hooks.prettier.settings.single-quote
Number of spaces per indentation-level.
git-hooks.hooks.prettier.settings.tab-width
Line length that the printer will wrap on.
git-hooks.hooks.prettier.settings.trailing-comma
Print trailing commas wherever possible in multi-line comma-separated syntactic structures.
git-hooks.hooks.prettier.settings.use-tabs
Indent with tabs instead of spaces.
git-hooks.hooks.prettier.settings.vue-indent-script-and-style
Indent script and style tags in Vue files.
git-hooks.hooks.prettier.settings.with-node-modules
Process files inside 'node_modules' directory.
git-hooks.hooks.prettier.settings.write
Edit files in-place.
git-hooks.hooks.pretty-format-json
pretty-format-json hook
git-hooks.hooks.pretty-format-json.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.pretty-format-json.settings.autofix
Automatically format JSON files.
git-hooks.hooks.pretty-format-json.settings.indent
Control the indentation (either a number for a number of spaces or a string of whitespace). Defaults to 2 spaces.
git-hooks.hooks.pretty-format-json.settings.no-ensure-ascii
Preserve unicode characters instead of converting to escape sequences.
git-hooks.hooks.pretty-format-json.settings.no-sort-keys
When autofixing, retain the original key ordering (instead of sorting the keys).
git-hooks.hooks.pretty-format-json.settings.top-keys
Keys to keep at the top of mappings.
git-hooks.hooks.proselint
proselint hook
git-hooks.hooks.proselint.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.proselint.settings.config
Multiline-string configuration passed as config file.
git-hooks.hooks.proselint.settings.configPath
Path to the config file.
git-hooks.hooks.proselint.settings.flags
Flags passed to proselint.
git-hooks.hooks.psalm
psalm hook
git-hooks.hooks.psalm.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.psalm.settings.binPath
Psalm binary path.
git-hooks.hooks.pylint
pylint hook
git-hooks.hooks.pylint.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.pylint.settings.binPath
Pylint binary path. Should be used to specify Pylint binary from your Python environment.
git-hooks.hooks.pylint.settings.reports
Whether to display a full report.
git-hooks.hooks.pylint.settings.score
Whether to activate the evaluation score.
git-hooks.hooks.pyright
pyright hook
git-hooks.hooks.pyright.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.pyright.settings.binPath
Pyright binary path. Should be used to specify the pyright executable in an environment containing your typing stubs.
git-hooks.hooks.pyupgrade
pyupgrade hook
git-hooks.hooks.pyupgrade.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.pyupgrade.settings.binPath
pyupgrade binary path. Should be used to specify the pyupgrade binary from your Python environment.
git-hooks.hooks.regal
regal hook
git-hooks.hooks.regal.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.regal.settings.flags
Flags passed to regal. For available options run 'regal lint --help'
git-hooks.hooks.reuse
reuse hook
git-hooks.hooks.reuse.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.reuse.settings.flags
Flags passed to reuse. For available options run 'reuse lint --help'
git-hooks.hooks.revive
revive hook
git-hooks.hooks.revive.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.revive.settings.configPath
Path to the configuration TOML file.
git-hooks.hooks.ripsecrets
ripsecrets hook
git-hooks.hooks.ripsecrets.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.ripsecrets.settings.additionalPatterns
Additional regex patterns used to find secrets. If there is a matching group in the regex the matched group will be tested for randomness before being reported as a secret.
git-hooks.hooks.rumdl
rumdl hook
git-hooks.hooks.rumdl.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.rumdl.settings.configuration
git-hooks.hooks.rustfmt
Additional rustfmt settings
Override the rustfmt and cargo packages by setting hooks.rustfmt.packageOverrides.
hooks.rustfmt.packageOverrides.cargo = pkgs.cargo;
hooks.rustfmt.packageOverrides.rustfmt = pkgs.rustfmt;
git-hooks.hooks.rustfmt.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.rustfmt.packageOverrides.cargo
The cargo package to use.
git-hooks.hooks.rustfmt.packageOverrides.rustfmt
The rustfmt package to use.
git-hooks.hooks.rustfmt.settings.all
Format all packages, and also their local path-based dependencies
git-hooks.hooks.rustfmt.settings.check
Run rustfmt in check mode
git-hooks.hooks.rustfmt.settings.color
Coloring the output
git-hooks.hooks.rustfmt.settings.config
Override configuration values
git-hooks.hooks.rustfmt.settings.config-path
Path to rustfmt.toml config file
git-hooks.hooks.rustfmt.settings.emit
What data to emit and how
git-hooks.hooks.rustfmt.settings.files-with-diff
git-hooks.hooks.rustfmt.settings.manifest-path
Path to Cargo.toml
git-hooks.hooks.rustfmt.settings.message-format
The output format of diagnostic messages
git-hooks.hooks.rustfmt.settings.package
Package(s) to check
git-hooks.hooks.rustfmt.settings.verbose
Use verbose output
git-hooks.hooks.shfmt
shfmt hook
git-hooks.hooks.shfmt.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.shfmt.settings.binary-next-line
Binary ops like && and | may start a line.
git-hooks.hooks.shfmt.settings.case-indent
Switch cases will be indented.
git-hooks.hooks.shfmt.settings.func-next-line
Function opening braces are placed on a separate line.
git-hooks.hooks.shfmt.settings.indent
0 for tabs, >0 for number of spaces.
git-hooks.hooks.shfmt.settings.keep-padding
Keep column alignment paddings.
git-hooks.hooks.shfmt.settings.language-dialect
Shell language dialect.
git-hooks.hooks.shfmt.settings.simplify
Simplify the code.
git-hooks.hooks.shfmt.settings.space-redirects
Redirect operators will be followed by a space.
git-hooks.hooks.sort-file-contents
sort-file-contents-hook
git-hooks.hooks.sort-file-contents.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.sort-file-contents.settings.ignore-case
Fold lower case to upper case characters.
git-hooks.hooks.sort-file-contents.settings.unique
Ensure each line is unique.
git-hooks.hooks.statix
statix hook
git-hooks.hooks.statix.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.statix.settings.config
Path to statix.toml or its parent directory.
git-hooks.hooks.statix.settings.format
Error Output format.
git-hooks.hooks.statix.settings.ignore
Globs of file patterns to skip.
git-hooks.hooks.statix.settings.unrestricted
Don't respect .gitignore files.
git-hooks.hooks.treefmt
Treefmt hook.
Include any additional formatters configured by treefmt as hooks.treefmt.settings.formatters.
hooks.treefmt.settings.formatters = [
pkgs.nixpkgs-fmt
pkgs.black
];
Override treefmt itself by setting hooks.treefmt.packageOverrides.treefmt.
hooks.treefmt.packageOverrides.treefmt = pkgs.treefmt;
git-hooks.hooks.treefmt.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.treefmt.packageOverrides.treefmt
The treefmt package to use
git-hooks.hooks.treefmt.settings.fail-on-change
Fail if some files require re-formatting.
git-hooks.hooks.treefmt.settings.formatters
The formatter packages configured by treefmt
git-hooks.hooks.treefmt.settings.no-cache
Ignore the evaluation cache entirely.
git-hooks.hooks.typos
typos hook
git-hooks.hooks.typos.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.typos.settings.binary
Whether to search binary files.
git-hooks.hooks.typos.settings.color
When to use generate output.
git-hooks.hooks.typos.settings.config
Configuration as in https://github.com/crate-ci/typos/blob/master/docs/reference.md.
git-hooks.hooks.typos.settings.configPath
Path to a custom config file. Ignored if typos.settings.config is set.
git-hooks.hooks.typos.settings.diff
Print a diff of what would change.
git-hooks.hooks.typos.settings.exclude
Ignore files and directories matching one of the globs.
git-hooks.hooks.typos.settings.force-exclude
Respect excluded files even for paths passed explicitly.
git-hooks.hooks.typos.settings.format
Output format to use.
git-hooks.hooks.typos.settings.ignored-words
Spellings and words to ignore.
git-hooks.hooks.typos.settings.locale
Which language to use for spell checking.
git-hooks.hooks.typos.settings.no-check-filenames
Skip verifying spelling in file names.
git-hooks.hooks.typos.settings.no-check-files
Skip verifying spelling in files.
git-hooks.hooks.typos.settings.no-unicode
Only allow ASCII characters in identifiers.
git-hooks.hooks.typos.settings.quiet
Less output per occurrence.
git-hooks.hooks.typos.settings.verbose
More output per occurrence.
git-hooks.hooks.typos.settings.write
Fix spelling in files by writing them. Cannot be used with typos.settings.diff.
git-hooks.hooks.uv-export
uv export hook
git-hooks.hooks.uv-export.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.uv-export.settings.flags
Flags passed to uv export
git-hooks.hooks.uv-export.settings.format
Output format of the project's lockfile.
git-hooks.hooks.uv-export.settings.locked
Assert that the uv.lock will remain unchanged.
Requires that the lockfile is up-to-date. If the lockfile is missing or needs to be updated, uv will exit with an error.
git-hooks.hooks.vale
vale hook
git-hooks.hooks.vale.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.vale.settings.configPath
Path to the config file.
git-hooks.hooks.vale.settings.configuration
Multiline-string configuration passed as config file.
git-hooks.hooks.vale.settings.flags
Flags passed to vale.
git-hooks.hooks.woodpecker-cli-lint
woodpecker-cli lint hook
git-hooks.hooks.woodpecker-cli-lint.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.woodpecker-cli-lint.settings.pluginsPrivileged
List of plugins, allowed to run in privileged mode
git-hooks.hooks.woodpecker-cli-lint.settings.pluginsTrustedClone
List of plugins, that are trusted to handle Git credentials in cloning steps. If not set, the program defaults to "docker.io/woodpeckerci/plugin-git:2.6.3,docker.io/woodpeckerci/plugin-git,quay.io/woodpeckerci/plugin-git".
git-hooks.hooks.woodpecker-cli-lint.settings.strict
Whether to treat warnings as errors.
git-hooks.hooks.woodpecker-cli-lint.settings.workflowPath
Path to the workflow config file/directory. If not set, the program
looks for .woodpecker.ya?ml file or .woodpecker directory.
git-hooks.hooks.yamlfmt
yamlfmt hook
git-hooks.hooks.yamlfmt.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.yamlfmt.settings.configPath
Path to a custom configuration file.
git-hooks.hooks.yamlfmt.settings.lint-only
Only lint the files, do not format them in place.
git-hooks.hooks.yamllint
yamllint hook
git-hooks.hooks.yamllint.enable
Whether to enable this pre-commit hook.
git-hooks.hooks.yamllint.settings.configData
Serialized YAML object describing the configuration.
git-hooks.hooks.yamllint.settings.configPath
Path to a custom configuration file.
git-hooks.hooks.yamllint.settings.configuration
Multiline-string configuration passed as config file. If set, configuration file set in yamllint.settings.configPath gets ignored.
git-hooks.hooks.yamllint.settings.format
Format for parsing output.
git-hooks.hooks.yamllint.settings.preset
The configuration preset to use.
git-hooks.hooks.yamllint.settings.strict
Return non-zero exit code on warnings as well as errors.
git-hooks.install.enable
Whether to enable automatic installation of pre-commit hooks.
When set to false, hooks will not be installed into the git repository, but all other module functionality (like configuration generation) will still work.
git-hooks.installStages
The stages to install the hooks to.
git-hooks.installationScript
A bash snippet that installs the git hooks in the current repository.
git-hooks.package
The pre-commit package to use.
git-hooks.rootSrc
The source of the project to be checked.
This is used in the derivation that performs the check.
If you use the flakeModule, the default is self.outPath; the whole flake
sources.
git-hooks.run
A derivation that tests whether the pre-commit hooks run cleanly on the entire project.
git-hooks.settings.rust.cargoManifestPath
Path to Cargo.toml
git-hooks.settings.rust.check.cargoDeps
Cargo dependencies needed to run the checks.
git-hooks.shellHook
A shell hook that sets up the git hooks in a development shell.
Pass to mkShell as shellHook to use.
git-hooks.src
Root of the project. By default this will be filtered with the gitignoreSource
function later, unless rootSrc is specified.
If you use the flakeModule, the default is self.outPath; the whole flake
sources.
git-hooks.tools
Tool set from which nix-pre-commit-hooks will pick binaries.
nix-pre-commit-hooks comes with its own set of packages for this purpose.
hosts
hosts
List of hosts entries.
hostsProfileName
hostsProfileName
Profile name to use.
infoSections
infoSections
Information about the environment
inputsFrom
inputsFrom
A list of derivations whose build inputs will be merged into the shell environment.
integrations
integrations.gitnr
Declarative generation of ignore files using gitnr templates.
integrations.gitnr.<name>.content
Additional patterns to append to the generated ignore file. These patterns will be added after the templates are processed.
integrations.gitnr.<name>.enableDefaultTemplates
Prepend a sensible default set of TopTal templates.
integrations.gitnr.<name>.package
The gitnr package to use for generating templates.
integrations.gitnr.<name>.templates
List of templates to include in the ignore file.
Template strings are passed directly to gitnr create.
keyFile
keyFile
Custom key file name, uses mkcert default if unset
languages
languages.ansible.enable
Whether to enable tools for Ansible development.
languages.ansible.lsp.enable
Whether to enable Ansible Language Server.
languages.ansible.lsp.package
The Ansible language server package to use.
languages.ansible.package
The Ansible package to use.
languages.c.debugger
An optional debugger package to use with c.
The default is lldb on macOS, gdb on Linux (if supported), or null otherwise.
languages.c.enable
Whether to enable tools for C development.
languages.c.lsp.enable
Whether to enable C Language Server.
languages.c.lsp.package
The C language server package to use.
languages.clojure.enable
Whether to enable tools for Clojure development.
languages.clojure.lsp.enable
Whether to enable Clojure Language Server.
languages.clojure.lsp.package
The Clojure language server package to use.
languages.cplusplus.enable
Whether to enable tools for C++ development.
languages.cplusplus.lsp.enable
Whether to enable C++ Language Server.
languages.cplusplus.lsp.package
The C++ language server package to use.
languages.crystal.enable
Whether to enable Enable tools for Crystal development..
languages.crystal.lsp.enable
Whether to enable Crystal Language Server.
languages.crystal.lsp.package
The Crystal language server package to use.
languages.crystal.package
The Crystal package to use.
languages.crystal.shards
Configuration for shards
languages.crystal.shards.package
The Shards package to use.
languages.cue.enable
Whether to enable tools for Cue development.
languages.cue.lsp.enable
Whether to enable CUE Language Server.
languages.cue.lsp.package
The CUE language server package to use.
languages.cue.package
The CUE package to use.
languages.dart.enable
Whether to enable tools for Dart development.
languages.dart.package
The Dart package to use.
languages.deno.enable
Whether to enable tools for Deno development.
languages.deno.package
Which package of Deno to use.
languages.dotnet.enable
Whether to enable tools for .NET development.
languages.dotnet.lsp.enable
Whether to enable .NET Language Server.
languages.dotnet.lsp.package
The .NET language server package to use.
languages.dotnet.package
The .NET SDK package to use.
languages.elixir.enable
Whether to enable tools for Elixir development.
languages.elixir.lsp.enable
Whether to enable Elixir Language Server.
languages.elixir.lsp.package
The Elixir language server package to use.
languages.elixir.package
Which Elixir package to use.
languages.elm.enable
Whether to enable tools for Elm development.
languages.elm.lsp.enable
Whether to enable Elm Language Server.
languages.elm.lsp.package
The Elm language server package to use.
languages.erlang.enable
Whether to enable tools for Erlang development.
languages.erlang.lsp.enable
Whether to enable Erlang Language Server.
languages.erlang.lsp.package
The Erlang language server package to use.
languages.erlang.package
Which Erlang package to use.
languages.fortran.enable
Whether to enable tools for Fortran Development..
languages.fortran.lsp.enable
Whether to enable Fortran Language Server.
languages.fortran.lsp.package
The Fortran language server package to use.
languages.fortran.package
The Fortran package to use.
languages.gawk.enable
Whether to enable tools for GNU Awk development.
languages.gleam.enable
Whether to enable tools for Gleam development.
languages.gleam.package
The Gleam package to use.
languages.go.delve.enable
Whether to enable Delve debugger.
languages.go.delve.package
The Delve package to use. Override this to customize the build, e.g. to disable tests.
languages.go.enable
Whether to enable tools for Go development.
languages.go.enableHardeningWorkaround
Enable hardening workaround required for Delve debugger (https://github.com/go-delve/delve/issues/3085)
languages.go.lsp.enable
Whether to enable Go Language Server.
languages.go.lsp.package
The Go language server package to use.
languages.go.package
The Go package to use.
languages.go.version
The Go version to use.
This automatically sets the languages.go.package using go-overlay.
languages.haskell.cabal.enable
Whether to enable Cabal.
languages.haskell.cabal.package
Cabal package to use.
languages.haskell.enable
Whether to enable tools for Haskell development.
languages.haskell.lsp.enable
Whether to enable Haskell Language Server.
languages.haskell.lsp.package
The Haskell language server package to use.
languages.haskell.package
Haskell compiler to use.
languages.haskell.stack.args
Additional arguments to pass to stack. By default, stack is configured to use devenv's GHC installation.
languages.haskell.stack.enable
Whether to enable Stack.
languages.haskell.stack.package
Haskell stack package to use.
languages.helm.enable
Whether to enable tools for Helm development.
languages.helm.lsp.enable
Whether to enable Helm Language Server.
languages.helm.lsp.package
The Helm language server package to use.
languages.helm.package
The Helm package to use.
languages.helm.plugins
List of Helm plugin names to include from pkgs.kubernetes-helmPlugins.
They will be symlinked into one directory and exposed via HELM_PLUGINS.
languages.idris.enable
Whether to enable tools for Idris development.
languages.idris.lsp.enable
Whether to enable Idris Language Server.
languages.idris.lsp.package
The Idris language server package to use.
languages.idris.package
The Idris package to use.
languages.java.enable
Whether to enable tools for Java development.
languages.java.gradle.enable
Whether to enable gradle.
languages.java.gradle.package
The Gradle package to use.
The Gradle package by default inherits the JDK from languages.java.jdk.package.
languages.java.jdk.package
The JDK package to use.
This will also become available as JAVA_HOME.
languages.java.lsp.enable
Whether to enable Java Language Server.
languages.java.lsp.package
The Java language server package to use.
The Java language server package by default inherits the JDK from languages.java.jdk.package.
languages.java.maven.enable
Whether to enable maven.
languages.java.maven.package
The Maven package to use.
The Maven package by default inherits the JDK from languages.java.jdk.package.
languages.javascript.bun.enable
Whether to enable install bun.
languages.javascript.bun.install.enable
Whether to enable bun install during devenv initialisation.
languages.javascript.bun.package
The bun package to use.
languages.javascript.corepack.enable
Whether to enable wrappers for npm, pnpm and Yarn via Node.js Corepack.
languages.javascript.directory
The JavaScript project's root directory. Defaults to the root of the devenv project. Can be an absolute path or one relative to the root of the devenv project.
languages.javascript.enable
Whether to enable tools for JavaScript development.
languages.javascript.lsp.enable
Whether to enable TypeScript Language Server for JavaScript.
languages.javascript.lsp.package
The TypeScript/JavaScript language server package to use.
languages.javascript.nodejs.enable
Whether to enable Node.js runtime.
languages.javascript.npm.enable
Whether to enable install npm.
languages.javascript.npm.install.enable
Whether to enable npm install during devenv initialisation.
languages.javascript.npm.package
The npm package to use. Defaults to the npm output of the javascript package.
languages.javascript.package
The Node.js package to use.
languages.javascript.pnpm.enable
Whether to enable install pnpm.
languages.javascript.pnpm.install.enable
Whether to enable pnpm install during devenv initialisation.
languages.javascript.pnpm.package
The pnpm package to use.
languages.javascript.yarn.enable
Whether to enable install yarn.
languages.javascript.yarn.install.enable
Whether to enable yarn install during devenv initialisation.
languages.javascript.yarn.package
The yarn package to use.
languages.jsonnet.enable
Whether to enable tools for jsonnet development.
languages.jsonnet.lsp.enable
Whether to enable Jsonnet Language Server.
languages.jsonnet.lsp.package
The Jsonnet language server package to use.
languages.julia.enable
Whether to enable tools for Julia development.
languages.julia.package
The Julia package to use.
languages.kotlin.enable
Whether to enable tools for Kotlin development.
languages.kotlin.lsp.enable
Whether to enable Kotlin Language Server.
languages.kotlin.lsp.package
The Kotlin language server package to use.
languages.lean4.enable
Whether to enable tools for lean4 development.
languages.lean4.package
The lean4 package to use.
languages.lobster.enable
Whether to enable tools for Lobster development.
languages.lobster.package
Which Lobster package to use.
languages.lua.enable
Whether to enable tools for Lua development.
languages.lua.lsp.enable
Whether to enable Lua Language Server.
languages.lua.lsp.package
The Lua language server package to use.
languages.lua.package
The Lua package to use.
languages.nim.enable
Whether to enable tools for Nim development.
languages.nim.lsp.enable
Whether to enable Nim Language Server.
languages.nim.lsp.package
The Nim language server package to use.
languages.nim.package
The Nim package to use.
languages.nix.enable
Whether to enable tools for Nix development.
languages.nix.lsp.enable
Whether to enable Nix Language Server.
languages.nix.lsp.package
The Nix language server package to use.
languages.ocaml.enable
Whether to enable tools for OCaml development.
languages.ocaml.lsp.enable
Whether to enable OCaml Language Server.
languages.ocaml.lsp.package
The OCaml language server package to use.
languages.ocaml.packages
The package set of OCaml to use
languages.odin.debugger
An optional debugger package to use with odin.
The default is gdb, if supported on the current system.
languages.odin.enable
Whether to enable tools for Odin Language.
languages.odin.lsp.enable
Whether to enable Odin Language Server.
languages.odin.lsp.package
The Odin language server package to use.
languages.odin.package
The odin package to use.
languages.opentofu.enable
Whether to enable tools for OpenTofu development.
languages.opentofu.lsp.enable
Whether to enable OpenTofu Language Server.
languages.opentofu.lsp.package
The OpenTofu language server package to use.
languages.opentofu.package
The OpenTofu package to use.
languages.pascal.enable
Whether to enable tools for Pascal development.
languages.pascal.lazarus.enable
Whether to enable lazarus graphical IDE for the FreePascal language.
languages.perl.enable
Whether to enable tools for Perl development.
languages.perl.lsp.enable
Whether to enable Perl Language Server.
languages.perl.lsp.package
The Perl language server package to use.
languages.perl.packages
Perl packages to include
languages.php.disableExtensions
PHP extensions to disable.
languages.php.enable
Whether to enable tools for PHP development.
languages.php.extensions
PHP extensions to enable.
languages.php.fpm.extraConfig
Extra configuration that should be put in the global section of
the PHP-FPM configuration file. Do not specify the options
error_log or daemonize here, since they are generated by
NixOS.
languages.php.fpm.phpOptions
Options appended to the PHP configuration file php.ini.
languages.php.fpm.pools
PHP-FPM pools. If no pools are defined, the PHP-FPM service is disabled.
languages.php.fpm.pools.<name>.extraConfig
Extra lines that go into the pool configuration.
See the documentation on php-fpm.conf for
details on configuration directives.
languages.php.fpm.pools.<name>.listen
The address on which to accept FastCGI requests.
languages.php.fpm.pools.<name>.phpEnv
Environment variables used for this PHP-FPM pool.
languages.php.fpm.pools.<name>.phpOptions
Options appended to the PHP configuration file php.ini used for this PHP-FPM pool.
languages.php.fpm.pools.<name>.phpPackage
The PHP package to use for running this PHP-FPM pool.
languages.php.fpm.pools.<name>.settings
PHP-FPM pool directives. Refer to the "List of pool directives" section of
https://www.php.net/manual/en/install.fpm.configuration.php"
the manual for details. Note that settings names must be
enclosed in quotes (e.g. "pm.max_children" instead of
pm.max_children).
languages.php.fpm.pools.<name>.socket
Path to the Unix socket file on which to accept FastCGI requests.
This option is read-only and managed by NixOS.
languages.php.fpm.settings
PHP-FPM global directives.
Refer to the "List of global php-fpm.conf directives" section of https://www.php.net/manual/en/install.fpm.configuration.php for details.
Note that settings names must be enclosed in
quotes (e.g. "pm.max_children" instead of pm.max_children).
You need not specify the options error_log or daemonize here, since
they are already set.
languages.php.ini
PHP.ini directives. Refer to the "List of php.ini directives" of PHP's
languages.php.lsp.enable
Whether to enable PHP Language Server.
languages.php.lsp.package
The PHP language server package to use.
languages.php.package
Allows you to override the default used package
to adjust the settings or add more extensions. You can find the
extensions using devenv search 'php extensions'
languages.php.packages
Attribute set of packages including composer
languages.php.packages.composer
composer package
languages.php.version
The PHP version to use.
languages.pkl.enable
Whether to enable tools for Pkl development.
languages.pkl.lsp.enable
Whether to enable Pkl Language Server.
languages.pkl.lsp.package
The Pkl language server package to use.
languages.pkl.package
The Pkl package to use.
languages.purescript.enable
Whether to enable tools for PureScript development.
languages.purescript.lsp.enable
Whether to enable PureScript Language Server.
languages.purescript.lsp.package
The PureScript language server package to use. Uses purescript-overlay by default.
languages.purescript.package
The PureScript compiler package to use. Uses purescript-overlay by default.
languages.purescript.spago.enable
Whether to enable Spago package manager.
languages.purescript.spago.package
The Spago package manager to use. Uses purescript-overlay by default.
languages.python.directory
The Python project's root directory. Defaults to the root of the devenv project. Can be an absolute path or one relative to the root of the devenv project.
languages.python.enable
Whether to enable tools for Python development.
languages.python.import
Import a Python project using uv2nix.
This function takes a path to a directory containing a pyproject.toml file and returns a derivation that builds the Python project using uv2nix.
Example usage:
let
mypackage = config.languages.python.import ./path/to/python/project {};
in {
languages.python.enable = true;
packages = [ mypackage ];
}
languages.python.libraries
Additional libraries to make available to the Python interpreter.
This is useful when you want to use Python wheels that depend on native libraries.
languages.python.lsp.enable
Whether to enable Python Language Server.
languages.python.lsp.package
The Python language server package to use.
languages.python.manylinux.enable
Whether to install manylinux2014 libraries.
Enabled by default on linux;
This is useful when you want to use Python wheels that depend on manylinux2014 libraries.
languages.python.package
The Python package to use.
languages.python.patches.buildEnv.enable
Whether to apply fixes to Python's buildEnv for correct runtime initialization:
- Executables use
--inherit-argv0and--resolve-argv0to ensure Python initializes with correctsys.prefixandsys.base_prefix - Python package scripts are unwrapped to invoke the environment's interpreter directly
Without these fixes, Python may not initialize with the correct prefix paths.
Enabled by default. Newer nixpkgs releases may include upstream fixes that make this patch obsolete.
languages.python.poetry.activate.enable
Whether to activate the poetry virtual environment automatically.
languages.python.poetry.enable
Whether to enable poetry.
languages.python.poetry.install.allExtras
Whether to install all extras. See --all-extras.
languages.python.poetry.install.allGroups
Whether to install all groups. See --all-groups.
languages.python.poetry.install.compile
Whether poetry install should compile Python source files to bytecode.
languages.python.poetry.install.enable
Whether to enable poetry install during devenv initialisation.
languages.python.poetry.install.extras
Which extras to install. See --extras.
languages.python.poetry.install.groups
Which dependency groups to install. See --with.
languages.python.poetry.install.ignoredGroups
Which dependency groups to ignore. See --without.
languages.python.poetry.install.installRootPackage
Whether the root package (your project) should be installed. See --no-root
languages.python.poetry.install.onlyGroups
Which dependency groups to exclusively install. See --only.
languages.python.poetry.install.onlyInstallRootPackage
Whether to only install the root package (your project) should be installed, but no dependencies. See --only-root
languages.python.poetry.install.quiet
Whether poetry install should avoid outputting messages during devenv initialisation.
languages.python.poetry.install.verbosity
What level of verbosity the output of poetry install should have.
languages.python.poetry.package
The Poetry package to use.
languages.python.uv.enable
Whether to enable uv.
languages.python.uv.package
The uv package to use.
languages.python.uv.sync.allExtras
Whether to install all extras. See --all-extras.
languages.python.uv.sync.allGroups
Whether to install all groups. See --all-groups.
languages.python.uv.sync.allPackages
Sync all packages in the workspace. See --all-packages.
languages.python.uv.sync.arguments
Command line arguments pass to uv sync during devenv initialisation.
languages.python.uv.sync.enable
Whether to enable uv sync during devenv initialisation.
languages.python.uv.sync.extras
Which extras to install. See --extra.
languages.python.uv.sync.groups
Which dependency groups to install. See --group.
languages.python.uv.sync.packages
Sync for specific packages in the workspace. See --package.
languages.python.venv.enable
Whether to enable Python virtual environment.
languages.python.venv.quiet
Whether pip install should avoid outputting messages during devenv initialisation.
languages.python.venv.requirements
Contents of pip requirements.txt file.
This is passed to pip install -r during devenv shell initialisation.
languages.python.version
The Python version to use.
This automatically sets the languages.python.package using nixpkgs-python.
languages.r.enable
Whether to enable tools for R development.
languages.r.lsp.enable
Whether to enable R Language Server.
languages.r.lsp.package
The R language server package to use.
languages.r.package
The R package to use.
languages.r.radian.enable
Whether to enable a 21 century R console.
languages.r.radian.package
The radian package to use.
languages.racket.enable
Whether to enable tools for Racket development.
languages.racket.package
The Racket package to use.
languages.raku.enable
Whether to enable tools for Raku development.
languages.robotframework.enable
Whether to enable tools for Robot Framework development.
languages.robotframework.python
The Python package to use.
languages.ruby.bundler.enable
Whether to enable bundler.
languages.ruby.bundler.package
The bundler package to use.
languages.ruby.documentation.enable
Whether to enable documentation support for Ruby packages.
languages.ruby.enable
Whether to enable tools for Ruby development.
languages.ruby.lsp.enable
Whether to enable Ruby Language Server.
languages.ruby.lsp.package
The Ruby language server package to use.
languages.ruby.package
The Ruby package to use.
languages.ruby.version
The Ruby version to use.
This automatically sets the languages.ruby.package using nixpkgs-ruby.
languages.ruby.versionFile
The .ruby-version file path to extract the Ruby version from.
This automatically sets the languages.ruby.package using nixpkgs-ruby.
When the .ruby-version file exists in the same directory as the devenv configuration, you can use:
languages.ruby.versionFile = ./.ruby-version;
languages.rust.channel
The rustup toolchain to install.
languages.rust.clangLinker.enable
Use Clang as the Rust linker driver on Linux.
This avoids GCC's collect2 wrapper, which can hit Argument list too long
in large Nix development environments before the final linker receives
Rust's response file.
On x86_64 Linux (glibc), Clang uses LLD unless another linker is enabled.
languages.rust.components
List of Rustup components
to install. Defaults to those available in nixpkgs.
languages.rust.cranelift.enable
Use Cranelift as the codegen backend for dev builds.
Cranelift compiles significantly faster than LLVM at the cost of less optimized output. Requires the nightly channel.
languages.rust.cranelift.excludePackages
List of crate names that should use the LLVM backend instead of Cranelift.
Generates per-package overrides in .cargo/config.toml.
languages.rust.cranelift.forceBuildScriptsLlvm
Force build scripts and proc macros to use the LLVM backend.
Some build scripts may not work with Cranelift. Enable this to fall back to LLVM for build scripts while keeping Cranelift for regular code.
languages.rust.enable
Whether to enable tools for Rust development.
languages.rust.import
Import a Cargo project using crate2nix.
This function takes a path to a directory containing a Cargo.toml file and returns a derivation that builds the Rust project using crate2nix.
Example usage:
let
mypackage = config.languages.rust.import ./path/to/cargo/project {};
in {
languages.rust.enable = true;
packages = [ mypackage ];
}
languages.rust.lld.enable
Use lld as the linker.
lld is LLVM's linker and is the recommended fast linker for Darwin. Works on both Linux and macOS.
languages.rust.lsp.enable
Whether to enable Rust Language Server.
languages.rust.lsp.package
The Rust language server package to use.
languages.rust.mold.enable
Use mold as the linker.
mold is a faster drop-in replacement for existing Unix linkers. It is several times quicker than the LLVM lld linker.
languages.rust.rustdocflags
Extra flags to pass to Rustdoc.
languages.rust.rustflags
Extra flags to pass to the Rust compiler.
languages.rust.targets
List of extra targets to install. Defaults to only the native target.
languages.rust.toolchain
Rust component packages. May optionally define additional components, for example miri.
languages.rust.toolchain.cargo
cargo package
languages.rust.toolchain.clippy
clippy package
languages.rust.toolchain.rust-analyzer
rust-analyzer package
languages.rust.toolchain.rustc
rustc package
languages.rust.toolchain.rustfmt
rustfmt package
languages.rust.toolchainFile
Path to a rust-toolchain or rust-toolchain.toml file for automatic toolchain configuration.
When set, devenv will use rust-overlay's fromRustupToolchainFile to automatically
configure the toolchain based on the file contents (channel, components, targets, profile).
This follows the standard Rust toolchain file format documented at: https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file
Cannot be used together with manual channel or version configuration.
Example:
languages.rust.toolchainFile = ./rust-toolchain.toml;
languages.rust.toolchainPackage
The aggregated toolchain package, which includes the configured components and targets. This is automatically set based on the channel and components configuration.
languages.rust.version
Which version of rust to use, this value could be latest,1.81.0, 2021-01-01.
Only works when languages.rust.channel is NOT nixpkgs.
languages.rust.wild.enable
Use wild as the linker.
wild is a very fast linker for Linux.
languages.scala.enable
Whether to enable tools for Scala development.
languages.scala.lsp.enable
Whether to enable Scala Language Server.
languages.scala.lsp.package
The Scala language server package to use.
languages.scala.mill.enable
Whether to enable mill, a simplified, fast build tool for Scala.
languages.scala.mill.package
The mill package to use.
languages.scala.package
The Scala package to use.
languages.scala.sbt.enable
Whether to enable sbt, the standard build tool for Scala.
languages.scala.sbt.package
The sbt package to use.
languages.shell.enable
Whether to enable tools for shell development.
languages.shell.lsp.enable
Whether to enable Shell Language Server.
languages.shell.lsp.package
The Shell language server package to use.
languages.solidity.enable
Whether to enable tools for Solidity development.
languages.solidity.foundry.enable
Whether to enable install Foundry.
languages.solidity.foundry.package
Which Foundry package to use.
languages.solidity.package
Which compiler of Solidity to use.
languages.standardml.enable
Whether to enable tools for Standard ML development.
languages.standardml.lsp.enable
Whether to enable Standard ML Language Server.
languages.standardml.lsp.package
The Standard ML language server package to use.
languages.standardml.package
The Standard ML package to use.
languages.swift.enable
Whether to enable tools for Swift development.
languages.swift.lsp.enable
Whether to enable Swift Language Server.
languages.swift.lsp.package
The Swift language server package to use.
languages.swift.package
The Swift package to use.
languages.terraform.enable
Whether to enable tools for Terraform development.
languages.terraform.lsp.enable
Whether to enable Terraform Language Server.
languages.terraform.lsp.package
The Terraform language server package to use.
languages.terraform.package
The Terraform package to use.
languages.terraform.version
The Terraform version to use.
This automatically sets the languages.terraform.package using nixpkgs-terraform.
languages.texlive.base
TeX Live package set to use
languages.texlive.enable
Whether to enable TeX Live.
languages.texlive.lsp.enable
Whether to enable TeX Live Language Server.
languages.texlive.lsp.package
The TeX Live language server package to use.
languages.texlive.packages
Extra packages to add to the base TeX Live set
languages.typescript.enable
Whether to enable tools for TypeScript development.
languages.typescript.lsp.enable
Whether to enable TypeScript Language Server.
languages.typescript.lsp.package
The TypeScript language server package to use.
languages.typst.enable
Whether to enable tools for Typst development.
languages.typst.fontPaths
Directories to be searched for fonts.
languages.typst.lsp.enable
Whether to enable Typst Language Server.
languages.typst.lsp.package
The Typst language server package to use.
languages.typst.package
Which package of Typst to use.
languages.unison.enable
Whether to enable tools for Unison development.
languages.unison.package
Which package of Unison to use
languages.v.enable
Whether to enable tools for V development.
languages.v.package
The V package to use.
languages.vala.enable
Whether to enable tools for Vala development.
languages.vala.lsp.enable
Whether to enable Vala Language Server.
languages.vala.lsp.package
The Vala language server package to use.
languages.vala.package
The Vala package to use.
languages.zig.enable
Whether to enable tools for Zig development.
languages.zig.lsp.enable
Whether to enable Zig Language Server.
languages.zig.lsp.package
The Zig language server package to use.
languages.zig.package
Which package of Zig to use.
languages.zig.version
The Zig version to use.
This automatically sets the languages.zig.package and languages.zig.lsp.package using zig-overlay.
machines
machines
Machines for NixOS, home-manager, and nix-darwin.
machines.<name>.home-manager
Home Manager configuration for the machine.
machines.<name>.nix-darwin
nix-darwin configuration for the machine.
machines.<name>.nixos
NixOS configuration for the machine.
machines.<name>.system
System architecture for the machine.
name
name
Name of the project.
opencode
opencode.agents
Custom agents (placed in .opencode/agents/).
This option can either be:
- an attribute set of agents, or
- a path to a directory containing agent files.
opencode.commands
Custom slash commands (placed in .opencode/commands/).
This option can either be:
- an attribute set of commands, or
- a path to a directory containing command files.
opencode.enable
Whether to enable OpenCode configuration.
opencode.mcp
MCP servers written to opencode.jsonc under mcp.
This option mirrors OpenCode's MCP configuration shape directly
(local/remote, command, environment, url, headers,
oauth, enabled, timeout, etc.).
Values from opencode.settings.mcp take precedence over this option
when both define the same MCP server name.
opencode.rules
Global custom instructions (placed in .opencode/AGENTS.md).
opencode.settings
Attributes written to opencode.jsonc.
opencode.skills
Custom skills for opencode.
This option can either be:
- an attribute set defining skills, or
- a path to a directory containing skill folders.
If an attribute set is used, each value can be:
- inline content (creates
.opencode/skills/<name>/SKILL.md) - a path to a file (creates
.opencode/skills/<name>/SKILL.md) - a path to a directory (creates
.opencode/skills/<name>/)
opencode.themes
Custom themes for opencode.
This option can either be:
- an attribute set defining themes, or
- a path to a directory containing theme files.
opencode.tools
Custom tools for opencode.
This option can either be:
- an attribute set defining tools, or
- a path to a directory containing tool files.
opencode.web.enable
Whether to enable opencode web service.
opencode.web.extraArgs
Extra arguments to pass to opencode web.
These arguments override web server options in the configuration file.
outputs
outputs
Nix outputs for devenv build consumption.
overlays
overlays
List of overlays to apply to pkgs. Each overlay is a function that takes two arguments: final and prev. Supported by devenv 1.4.2 or newer.
packages
packages
A list of packages to expose inside the developer environment. Search available packages using devenv search NAME.
process
process.manager.adapter.client
Client protocol used for attach, readiness, and individual process control.
process.manager.adapter.stop
Adapter used to stop the running manager.
process.manager.adapter.terminal
Terminal required by the manager launcher.
process.manager.after
Bash code to execute after stopping processes.
process.manager.args
Additional arguments to pass to the process manager.
process.manager.before
Bash code to execute before starting processes.
process.manager.capabilities.background_start
Whether the manager can remain running after the launching client exits.
process.manager.capabilities.cold_start_subset
Whether the manager can initially start a named subset of processes.
process.manager.capabilities.devenv_attach
Whether devenv can attach its interactive client to an existing manager.
process.manager.capabilities.individual_control
Whether devenv can start, stop, and restart individual processes through the manager.
process.manager.capabilities.wait_ready
Whether devenv can wait for process readiness through the manager.
process.manager.implementation
The process manager to use when running processes with devenv up.
process.managers.hivemind.adapter.client
Client protocol used for attach, readiness, and individual process control.
process.managers.hivemind.adapter.stop
Adapter used to stop the running manager.
process.managers.hivemind.adapter.terminal
Terminal required by the manager launcher.
process.managers.hivemind.capabilities.background_start
Whether the manager can remain running after the launching client exits.
process.managers.hivemind.capabilities.cold_start_subset
Whether the manager can initially start a named subset of processes.
process.managers.hivemind.capabilities.devenv_attach
Whether devenv can attach its interactive client to an existing manager.
process.managers.hivemind.capabilities.individual_control
Whether devenv can start, stop, and restart individual processes through the manager.
process.managers.hivemind.capabilities.wait_ready
Whether devenv can wait for process readiness through the manager.
process.managers.hivemind.package
The hivemind package to use.
process.managers.honcho.adapter.client
Client protocol used for attach, readiness, and individual process control.
process.managers.honcho.adapter.stop
Adapter used to stop the running manager.
process.managers.honcho.adapter.terminal
Terminal required by the manager launcher.
process.managers.honcho.capabilities.background_start
Whether the manager can remain running after the launching client exits.
process.managers.honcho.capabilities.cold_start_subset
Whether the manager can initially start a named subset of processes.
process.managers.honcho.capabilities.devenv_attach
Whether devenv can attach its interactive client to an existing manager.
process.managers.honcho.capabilities.individual_control
Whether devenv can start, stop, and restart individual processes through the manager.
process.managers.honcho.capabilities.wait_ready
Whether devenv can wait for process readiness through the manager.
process.managers.honcho.package
The honcho package to use.
process.managers.mprocs.adapter.client
Client protocol used for attach, readiness, and individual process control.
process.managers.mprocs.adapter.stop
Adapter used to stop the running manager.
process.managers.mprocs.adapter.terminal
Terminal required by the manager launcher.
process.managers.mprocs.capabilities.background_start
Whether the manager can remain running after the launching client exits.
process.managers.mprocs.capabilities.cold_start_subset
Whether the manager can initially start a named subset of processes.
process.managers.mprocs.capabilities.devenv_attach
Whether devenv can attach its interactive client to an existing manager.
process.managers.mprocs.capabilities.individual_control
Whether devenv can start, stop, and restart individual processes through the manager.
process.managers.mprocs.capabilities.wait_ready
Whether devenv can wait for process readiness through the manager.
process.managers.mprocs.package
The mprocs package to use.
process.managers.mprocs.settings
Top-level mprocs.yaml options
process.managers.native.adapter.client
Client protocol used for attach, readiness, and individual process control.
process.managers.native.adapter.stop
Adapter used to stop the running manager.
process.managers.native.adapter.terminal
Terminal required by the manager launcher.
process.managers.native.capabilities.background_start
Whether the manager can remain running after the launching client exits.
process.managers.native.capabilities.cold_start_subset
Whether the manager can initially start a named subset of processes.
process.managers.native.capabilities.devenv_attach
Whether devenv can attach its interactive client to an existing manager.
process.managers.native.capabilities.individual_control
Whether devenv can start, stop, and restart individual processes through the manager.
process.managers.native.capabilities.wait_ready
Whether devenv can wait for process readiness through the manager.
process.managers.overmind.adapter.client
Client protocol used for attach, readiness, and individual process control.
process.managers.overmind.adapter.stop
Adapter used to stop the running manager.
process.managers.overmind.adapter.terminal
Terminal required by the manager launcher.
process.managers.overmind.capabilities.background_start
Whether the manager can remain running after the launching client exits.
process.managers.overmind.capabilities.cold_start_subset
Whether the manager can initially start a named subset of processes.
process.managers.overmind.capabilities.devenv_attach
Whether devenv can attach its interactive client to an existing manager.
process.managers.overmind.capabilities.individual_control
Whether devenv can start, stop, and restart individual processes through the manager.
process.managers.overmind.capabilities.wait_ready
Whether devenv can wait for process readiness through the manager.
process.managers.overmind.package
The overmind package to use.
process.managers.process-compose.adapter.client
Client protocol used for attach, readiness, and individual process control.
process.managers.process-compose.adapter.stop
Adapter used to stop the running manager.
process.managers.process-compose.adapter.terminal
Terminal required by the manager launcher.
process.managers.process-compose.capabilities.background_start
Whether the manager can remain running after the launching client exits.
process.managers.process-compose.capabilities.cold_start_subset
Whether the manager can initially start a named subset of processes.
process.managers.process-compose.capabilities.devenv_attach
Whether devenv can attach its interactive client to an existing manager.
process.managers.process-compose.capabilities.individual_control
Whether devenv can start, stop, and restart individual processes through the manager.
process.managers.process-compose.capabilities.wait_ready
Whether devenv can wait for process readiness through the manager.
process.managers.process-compose.package
The process-compose package to use.
process.managers.process-compose.port
The port to bind the process-compose server to.
Not used when unixSocket.enable is true.
process.managers.process-compose.settings
Top-level process-compose.yaml options
Example: https://github.com/F1bonacc1/process-compose/blob/main/process-compose.yaml
process.managers.process-compose.tui.enable
Enable the TUI (Terminal User Interface)
process.managers.process-compose.unixSocket.enable
Whether to enable running the process-compose server over unix domain sockets instead of tcp.
process.managers.process-compose.unixSocket.path
Override the path to the unix socket.
process.proxy.enable
Whether to enable the shared HTTP proxy for friendly process URLs under .localhost
.
processes
processes
Processes can be started with devenv up and run in the foreground.
processes.<name>.after
Tasks that must be ready before this process starts. Use task names like "devenv:processes:postgres" or "myapp:setup". Supports @started, @ready (default for processes), and @completed suffixes for process dependencies. Supports @started, @succeeded (default for tasks), and @completed suffixes for task dependencies.
processes.<name>.before
Tasks that should start after this process is ready.
processes.<name>.cwd
Working directory to run the process in. If not specified, the current working directory will be used.
processes.<name>.env
Environment variables to set for this process.
processes.<name>.exec
Bash code to run the process.
processes.<name>.linux
Linux-specific process configuration.
Requires devenv 2.0+.
processes.<name>.linux.capabilities
Linux capabilities to add as ambient capabilities for this process (e.g., "net_bind_service", "net_admin").
Supported capabilities are net_bind_service, net_raw, net_admin, ipc_lock, sys_nice, sys_resource, sys_admin, chown, dac_override, and fowner. Starting a process with capabilities requires sudo authentication.
Requires devenv 2.0+.
processes.<name>.listen
Socket activation configuration for systemd-style socket passing.
Requires devenv 2.0+.
processes.<name>.listen.*.address
TCP address (e.g., '127.0.0.1:8080'). Required for TCP sockets.
processes.<name>.listen.*.backlog
Listen backlog size
processes.<name>.listen.*.kind
Type of socket (tcp or unix_stream)
processes.<name>.listen.*.mode
Unix socket file permissions (e.g., 384 for 0o600). Only for unix_stream.
processes.<name>.listen.*.name
Name of the socket (e.g., 'http', 'admin')
processes.<name>.listen.*.path
Unix socket path. Required for unix_stream sockets.
processes.<name>.ports
Named ports with auto-allocation for this process.
Define ports with a base value and devenv will automatically find a free port starting from that base, incrementing until available.
The resolved port is available via config.processes.<name>.ports.<port>.value.
Requires devenv 2.0+.
processes.<name>.ports.<name>.allocate
Base port for auto-allocation (increments until free)
processes.<name>.ports.<name>.proxy
Shared HTTP proxy configuration for this port.
processes.<name>.ports.<name>.proxy.hostname
Full .localhost hostname to use for this port when
process.proxy.enable is enabled.
This takes precedence over processes.<name>.proxy.hostname
and the generated hostname.
processes.<name>.ports.<name>.value
Resolved port value (allocated by devenv)
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.manager.implementation = "process-compose";
processes.<name>.proxy
Shared HTTP proxy configuration for this process.
processes.<name>.proxy.hostname
Full .localhost hostname to use for this process when
process.proxy.enable is enabled.
By default, devenv derives the hostname from the process and project names. Named ports without their own hostname override are prefixed to this hostname.
processes.<name>.proxy.https.enable
Whether to enable HTTPS proxy URLs for this process using the project's mkcert certificate authority.
HTTP URLs remain available. Requires process.proxy.enable
.
processes.<name>.ready
How to determine if this process is ready to serve.
Requires devenv 2.0+.
processes.<name>.ready.exec
Shell command to execute. Exit 0 = ready.
processes.<name>.ready.failure_threshold
Consecutive failures before marking unhealthy.
processes.<name>.ready.http
HTTP readiness probe configuration.
processes.<name>.ready.http.get
HTTP GET readiness check.
processes.<name>.ready.http.get.host
Host to connect to.
processes.<name>.ready.http.get.path
HTTP path to request.
processes.<name>.ready.http.get.port
Port to connect to.
processes.<name>.ready.http.get.scheme
URL scheme (http or https).
processes.<name>.ready.initial_delay
Seconds to wait before first probe.
processes.<name>.ready.notify
Enable systemd notify protocol for readiness signaling. The process must send READY=1 to the NOTIFY_SOCKET.
processes.<name>.ready.period
Seconds between probes.
processes.<name>.ready.probe_timeout
Seconds before a single probe times out.
processes.<name>.ready.success_threshold
Consecutive successes needed to be considered ready.
processes.<name>.ready.timeout
Overall deadline in seconds for the process to become ready. null = no deadline.
processes.<name>.restart
Process restart policy.
processes.<name>.restart.max
Maximum restart attempts. null = unlimited.
processes.<name>.restart.on
When to restart: never, always, or on_failure.
processes.<name>.restart.window
Sliding window in seconds for restart rate limiting. null = lifetime limit.
processes.<name>.shutdown
Graceful shutdown signal and timeout
processes.<name>.shutdown.grace
Seconds before shutdown escalates to SIGKILL
processes.<name>.shutdown.signal
Unix signal number used for graceful shutdown
processes.<name>.start
Auto-start configuration for this process.
processes.<name>.start.enable
Whether to start this process automatically with devenv up.
Disabled processes are still visible in the TUI as stopped
and can be started manually by selecting them and pressing Enter.
They also run when pulled in as a task dependency, for example
after = [ "devenv:processes:<name>@completed" ].
processes.<name>.watch
File watching configuration for automatic process restarts.
Requires devenv 2.0+.
processes.<name>.watch.extensions
File extensions to watch (e.g., "rs", "js", "py"). If empty, all file extensions are watched.
Requires devenv 2.0+.
processes.<name>.watch.ignore
Glob patterns to ignore (e.g., ".git", "target", "*.log").
Requires devenv 2.0+.
processes.<name>.watch.paths
Paths to watch for changes (files or directories). When files in these paths change, the process is restarted (or, for a one-shot command that exits immediately, re-run).
Paths are resolved relative to the location of devenv.nix
(the project root), not relative to the process's cwd. Use
path literals such as ./src; they are passed to the watcher
as absolute paths.
Requires devenv 2.0+.
processes.<name>.watchdog
Systemd watchdog configuration.
Requires devenv 2.0+.
processes.<name>.watchdog.require_ready
Require READY=1 notification before enforcing watchdog
processes.<name>.watchdog.usec
Watchdog interval in microseconds
profiles
profiles
Profile definitions that can be activated manually or automatically.
profiles.<name>.extends
List of profile names to extend/inherit from.
profiles.<name>.module
Additional configuration to merge when this profile is active.
profiles.hostname
Profile definitions that are automatically activated based on the machine's hostname.
profiles.hostname.<name>.extends
List of profile names to extend/inherit from.
profiles.hostname.<name>.module
Additional configuration to merge when this profile is active.
profiles.user
Profile definitions that are automatically activated based on the username.
profiles.user.<name>.extends
List of profile names to extend/inherit from.
profiles.user.<name>.module
Additional configuration to merge when this profile is active.
scripts
scripts
A set of scripts available when the environment is active.
scripts.<name>.binary
Override the binary name from the default package.meta.mainProgram
scripts.<name>.description
Description of the script.
scripts.<name>.exec
Shell code to execute when the script is run, or path to a script file.
scripts.<name>.package
The package to use to run the script.
scripts.<name>.packages
Packages to be available in PATH when the script runs.
secretspec
secretspec.enable
Whether secretspec integration is enabled (automatically true when secrets are loaded)
secretspec.profile
The secretspec profile that was used to load secrets (read-only)
secretspec.provider
The explicit secretspec provider override selected through devenv, if any (read-only)
secretspec.secrets
Secrets loaded from secretspec.toml (read-only)
services
services.adminer.enable
Whether to enable Adminer process.
services.adminer.listen
Listen address for the Adminer.
services.adminer.package
Which package of Adminer to use.
services.blackfire.client-id
Sets the client id used to authenticate with Blackfire. You can find your personal client-id at https://blackfire.io/my/settings/credentials.
services.blackfire.client-token
Sets the client token used to authenticate with Blackfire. You can find your personal client-token at https://blackfire.io/my/settings/credentials.
services.blackfire.enable
Whether to enable Blackfire profiler agent
It automatically installs Blackfire PHP extension. .
services.blackfire.enableApm
Whether to enable Enables application performance monitoring, requires special subscription. .
services.blackfire.package
Which package of blackfire to use
services.blackfire.server-id
Sets the server id used to authenticate with Blackfire. You can find your personal server-id at https://blackfire.io/my/settings/credentials.
services.blackfire.server-token
Sets the server token used to authenticate with Blackfire. You can find your personal server-token at https://blackfire.io/my/settings/credentials.
services.blackfire.socket
Sets the server socket path
services.caddy.adapter
Name of the config adapter to use. See https://caddyserver.com/docs/config-adapters for the full list.
services.caddy.ca
Certificate authority ACME server. The default (Let's Encrypt production server) should be fine for most people. Set it to null if you don't want to include any authority (or if you want to write a more fine-graned configuration manually).
services.caddy.config
Verbatim Caddyfile to use.
Refer to https://caddyserver.com/docs/caddyfile for more information.
Caddy v2 supports multiple config formats via adapters (see services.caddy.adapter).
services.caddy.dataDir
The data directory, for storing certificates. Before 17.09, this would create a .caddy directory. With 17.09 the contents of the .caddy directory are in the specified data directory instead. Caddy v2 replaced CADDYPATH with XDG directories. See https://caddyserver.com/docs/conventions#file-locations.
services.caddy.email
Email address (for Let's Encrypt certificate).
services.caddy.enable
Whether to enable Caddy web server.
services.caddy.package
Caddy package to use.
services.caddy.resume
Use saved config, if any (and prefer over configuration passed with caddy.config).
services.caddy.virtualHosts
Declarative vhost config.
services.caddy.virtualHosts.<name>.extraConfig
These lines go into the vhost verbatim.
services.caddy.virtualHosts.<name>.serverAliases
Additional names of virtual hosts served by this virtual host configuration.
services.cassandra.allowClients
Enables or disables the native transport server (CQL binary protocol)
services.cassandra.clusterName
The name of the cluster
services.cassandra.enable
Whether to enable Add Cassandra process script..
services.cassandra.extraConfig
Extra options to be merged into cassandra.yaml as nix attribute set.
services.cassandra.jvmOpts
Options to pass to the JVM through the JVM_OPTS environment variable
services.cassandra.listenAddress
Listen address
services.cassandra.package
Which version of Cassandra to use
services.cassandra.seedAddresses
The addresses of hosts designated as contact points of the cluster
services.clickhouse.config
ClickHouse configuration in YAML.
services.clickhouse.enable
Whether to enable clickhouse-server.
services.clickhouse.httpPort
Which http port to run clickhouse on.
services.clickhouse.keeper.enable
Whether to enable keeper_server in ClickHouse.
services.clickhouse.keeper.port
Which port to run clickhouse keeper service on.
services.clickhouse.keeper.raft.port
Which http port to use clickhouse keeper for raft consensus.
services.clickhouse.macros.enable
Whether to enable macros in ClickHouse.
services.clickhouse.package
Which package of clickhouse to use
services.clickhouse.port
Which port to run clickhouse on.
services.clickhouse.remoteServers.enable
Whether to enable remote_servers in ClickHouse.
services.clickhouse.timezone
Which timezone to use for ClickHouse.
services.clickhouse.usersConfig
Your users.yaml as a Nix attribute set.
Check the documentation
for possible options.
services.cockroachdb.enable
Whether to enable Add CockroachDB process. .
services.cockroachdb.http_addr
The hostname or IP address to bind to for HTTP requests.
services.cockroachdb.listen_addr
The address/hostname and port to listen on.
services.cockroachdb.package
The CockroachDB package to use.
services.couchdb.baseDir
The directory where CouchDB will store its data.
services.couchdb.enable
Whether to enable CouchDB process.
services.couchdb.package
Which version of CouchDB to use
services.couchdb.settings
CouchDB configuration. To learn more about all settings, see the CouchDB configuration reference.
services.couchdb.settings.chttpd.bind_address
Defines the IP address by which CouchDB will be accessible.
services.couchdb.settings.chttpd.port
Defined the port number to listen.
services.couchdb.settings.couchdb.database_dir
Specifies location of CouchDB database files (*.couch named). This location should be writable and readable for the user the CouchDB service runs as (couchdb by default).
services.couchdb.settings.couchdb.single_node
When this configuration setting is set to true, automatically create the system databases on startup. Must be set false for a clustered CouchDB installation.
services.couchdb.settings.couchdb.uri_file
This file contains the full URI that can be used to access this instance of CouchDB. It is used to help discover the port CouchDB is running on (if it was set to 0 (e.g. automatically assigned any free one). This file should be writable and readable for the user that runs the CouchDB service (couchdb by default).
services.couchdb.settings.couchdb.view_index_dir
Specifies location of CouchDB view index files. This location should be writable and readable for the user that runs the CouchDB service (couchdb by default).
services.dynamodb-local.enable
Whether to enable DynamoDB Local.
services.dynamodb-local.package
Which package of DynamoDB to use.
services.dynamodb-local.port
Listen port for DynamoDB Local.
services.elasticmq.enable
Whether to enable elasticmq-server.
services.elasticmq.package
Which package of elasticmq-server-bin to use
services.elasticmq.settings
Configuration for elasticmq-server
services.elasticsearch.cluster_name
Elasticsearch name that identifies your cluster for auto-discovery.
services.elasticsearch.enable
Whether to enable elasticsearch.
services.elasticsearch.extraCmdLineOptions
Extra command line options for the elasticsearch launcher.
services.elasticsearch.extraConf
Extra configuration for elasticsearch.
services.elasticsearch.extraJavaOptions
Extra command line options for Java.
services.elasticsearch.listenAddress
Elasticsearch listen address.
services.elasticsearch.logging
Elasticsearch logging configuration.
services.elasticsearch.package
Elasticsearch package to use.
services.elasticsearch.plugins
Extra elasticsearch plugins
services.elasticsearch.port
Elasticsearch port to listen for HTTP traffic.
services.elasticsearch.single_node
Start a single-node cluster
services.elasticsearch.tcp_port
Elasticsearch port for the node to node communication.
services.garage.adminAddress
IP address and port of the admin API.
services.garage.adminToken
Admin API bearer token. Hard-coded for single-node dev; production deployments override this with a real secret.
services.garage.afterStart
Bash code to execute after the server is running and the cluster
layout is applied. The garage CLI in scope already points at the
local instance via the generated config.
services.garage.buckets
List of buckets to ensure exist on startup.
services.garage.enable
Whether to enable Garage S3-compatible object storage.
services.garage.extraConfig
Additional garage.toml snippet appended to the generated config.
services.garage.package
Garage package to use.
services.garage.region
S3 region label reported by the server. Defaults to AWS's canonical
us-east-1.
services.garage.replicationFactor
Cluster replication factor. Single-node devenv setups always use 1.
services.garage.rpcSecret
RPC secret as 64 hex characters. Hard-coded for single-node dev; production deployments override this with a real secret.
services.garage.s3Address
IP address and port of the S3 API.
services.garage.ui.enable
Whether to enable a simple web UI.
services.garage.ui.port
On which port the UI should run.
services.garage.ui.start
Whether to start the web UI automatically. When false it can be
started manually. Only applies when ui.enable = true.
services.httpbin.bind
Addresses for httpbin to listen on.
services.httpbin.enable
Whether to enable httpbin.
services.httpbin.extraArgs
Gunicorn CLI arguments for httpbin.
services.influxdb.enable
Whether to enable influxdb.
services.influxdb.extraArgs
Additional arguments passed to influxd during startup.
services.influxdb.package
Which package of InfluxDB server to use
services.influxdb.port
The TCP port for the InfluxDB HTTP API.
services.kafka.configFiles.log4jProperties
Kafka log4j property configuration file path
services.kafka.configFiles.serverProperties
Kafka server.properties configuration file path.
Defaults to the rendered settings.
services.kafka.connect.enable
Whether to enable Kafka Connect.
services.kafka.connect.initialConnectors
List of Kafka Connect connectors to set up initially
services.kafka.connect.initialConnectors.*.config
Initial configuration for the connector
services.kafka.connect.initialConnectors.*.name
Name of the connector
services.kafka.connect.settings
{file}connect-standalone.properties.
Note that .properties files contain mappings from string to string.
Keys with dots are NOT represented by nested attrs in these settings,
but instead as quoted strings (ie. settings."broker.id", NOT
settings.broker.id).
services.kafka.connect.settings."bootstrap.servers"
A list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
services.kafka.connect.settings."key.converter"
The key converter to use for the connector.
services.kafka.connect.settings."key.converter.schemas.enable"
Whether the key converter should include schema information in the message.
services.kafka.connect.settings."offset.flush.interval.ms"
Interval at which to try committing offsets for tasks
services.kafka.connect.settings."offset.storage.file.filename"
The file to store connector offsets in. By storing offsets on disk, a standalone process can be stopped and started on a single node and resume where it previously left off.
services.kafka.connect.settings."plugin.path"
The list should consist of top level directories that include any combination of: a) directories immediately containing jars with plugins and their dependencies b) uber-jars with plugins and their dependencies c) directories immediately containing the package directory structure of classes of plugins and their dependencies Note: symlinks will be followed to discover dependencies or plugins.
services.kafka.connect.settings."value.converter"
The value converter to use for the connector.
services.kafka.connect.settings."value.converter.schemas.enable"
Whether the value converter should include schema information in the message.
services.kafka.connect.settings.listeners
List of listeners for Kafka Connect (By default Kafka Connect listens on http://localhost:8083)
services.kafka.defaultMode
Which defaults to set for the mode Kafka should run in
kraft(default): Run Kafka in KRaft mode, Which requires no extra configuration.zookeeper: Run Kafka in Zookeeper mode, this requires more configuration.
services.kafka.enable
Whether to enable Apache Kafka.
services.kafka.formatLogDirs
Whether to format log dirs in KRaft mode if all log dirs are unformatted, ie. they contain no meta.properties.
services.kafka.formatLogDirsIgnoreFormatted
Whether to ignore already formatted log dirs when formatting log dirs, instead of failing. Useful when replacing or adding disks.
services.kafka.jre
The JRE with which to run Kafka
services.kafka.jvmOptions
Extra command line options for the JVM running Kafka.
services.kafka.log4jProperties
Kafka log4j property configuration.
services.kafka.package
The apacheKafka package to use.
services.kafka.settings
Kafka broker configuration
{file}server.properties.
Note that .properties files contain mappings from string to string.
Keys with dots are NOT represented by nested attrs in these settings,
but instead as quoted strings (ie. settings."broker.id", NOT
settings.broker.id).
services.kafka.settings."broker.id"
Broker ID. -1 or null to auto-allocate in zookeeper mode.
services.kafka.settings."log.dirs"
Log file directories.
services.kafka.settings.listeners
Kafka Listener List. See listeners. If you change this, you should also update the readiness probe.
services.keycloak.database.type
The type of database Keycloak should connect to.
If you use dev-mem, the realm export over script
keycloak-realm-export-* does not work.
services.keycloak.enable
Whether to enable the Keycloak identity and access management server.
services.keycloak.initialAdminPassword
Initial password set for the temporary admin user.
The password is not stored safely and should be changed
immediately in the admin panel.
See Admin bootstrap and recovery for details.
services.keycloak.package
The keycloak package to use.
services.keycloak.plugins
Keycloak plugin jar, ear files or derivations containing
them. Packaged plugins are available through
pkgs.keycloak.plugins.
services.keycloak.processes.exportRealms
Global toggle to enable/disable the realms export process keycloak-realm-export-all
if any realms have realms.«name».export == true.
services.keycloak.realms
Specify the realms you want to import on start up and export on a manual start of process/script 'keycloak-realm-export-all'.
services.keycloak.realms.<name>.export
If you want to export that realm on process/script launch keycloak-export-realms.
services.keycloak.realms.<name>.import
If you want to import that realm on start up, if the realm does not yet exist.
services.keycloak.realms.<name>.path
The path (string, relative to DEVENV_ROOT) where you want to import (or export) this realm «name» to.
If not set and import is true this realm is not imported.
If not set and export is true its exported to $DEVENV_STATE/keycloak/realm-export/«name».json.
services.keycloak.scripts.exportRealm
Global toggle to enable/disable the single realm export
script keycloak-realm-export.
services.keycloak.settings
Configuration options corresponding to parameters set in
{file}conf/keycloak.conf.
Most available options are documented at https://www.keycloak.org/server/all-config.
Options containing secret data should be set to an attribute
set containing the attribute _secret - a
string pointing to a file containing the value the option
should be set to. See the example to get a better picture of
this: in the resulting
{file}conf/keycloak.conf file, the
https-key-store-password key will be set
to the contents of the
{file}/run/keys/store_password file.
services.keycloak.settings.hostname
The hostname part of the public URL used as base for all frontend requests.
See https://www.keycloak.org/server/hostname for more information about hostname configuration.
services.keycloak.settings.http-host
On which address Keycloak should accept new connections.
services.keycloak.settings.http-port
On which port Keycloak should listen for new HTTP connections.
services.keycloak.settings.http-relative-path
The path relative to / for serving
resources.
::: {.note}
In versions of Keycloak using Wildfly (<17),
this defaulted to /auth. If
upgrading from the Wildfly version of Keycloak,
i.e. a NixOS version before 22.05, you'll likely
want to set this to /auth to
keep compatibility with your clients.
See https://www.keycloak.org/migration/migrating-to-quarkus for more information on migrating from Wildfly to Quarkus. :::
services.keycloak.settings.https-port
On which port Keycloak should listen for new HTTPS connections. If its not set, its disabled.
services.keycloak.sslCertificate
The path to a PEM formatted certificate to use for TLS/SSL connections.
services.keycloak.sslCertificateKey
The path to a PEM formatted private key to use for TLS/SSL connections.
services.mailhog.additionalArgs
Additional arguments passed to mailhog.
services.mailhog.apiListenAddress
Listen address for API.
services.mailhog.enable
Whether to enable mailhog process.
services.mailhog.package
Which package of mailhog to use
services.mailhog.smtpListenAddress
Listen address for SMTP.
services.mailhog.uiListenAddress
Listen address for UI.
services.mailpit.additionalArgs
Additional arguments passed to mailpit.
services.mailpit.enable
Whether to enable mailpit process.
services.mailpit.package
Which package of mailpit to use
services.mailpit.smtpListenAddress
Listen address for SMTP.
services.mailpit.uiListenAddress
Listen address for UI.
services.meilisearch.enable
Whether to enable Meilisearch.
services.meilisearch.environment
Defines the running environment of Meilisearch.
services.meilisearch.listenAddress
Meilisearch listen address.
services.meilisearch.listenPort
Meilisearch port to listen on.
services.meilisearch.logLevel
Defines how much detail should be present in Meilisearch's logs. Meilisearch currently supports four log levels, listed in order of increasing verbosity:
- 'ERROR': only log unexpected events indicating Meilisearch is not functioning as expected
- 'WARN:' log all unexpected events, regardless of their severity
- 'INFO:' log all events. This is the default value
- 'DEBUG': log all events and including detailed information on Meilisearch's internal processes. Useful when diagnosing issues and debugging
services.meilisearch.maxIndexSize
Sets the maximum size of the index. Value must be given in bytes or explicitly stating a base unit. For example, the default value can be written as 107374182400, '107.7Gb', or '107374 Mb'. Default is 100 GiB
services.meilisearch.noAnalytics
Deactivates analytics. Analytics allow Meilisearch to know how many users are using Meilisearch, which versions and which platforms are used. This process is entirely anonymous.
services.meilisearch.package
Which Meilisearch package to use
services.memcached.bind
The IP interface to bind to.
null means "all interfaces".
services.memcached.enable
Whether to enable memcached process.
services.memcached.package
Which package of memcached to use
services.memcached.port
The TCP port to accept connections. If port 0 is specified memcached will not listen on a TCP socket.
services.memcached.startArgs
Additional arguments passed to memcached during startup.
services.minio.accessKey
Access key of 5 to 20 characters in length that clients use to access the server.
services.minio.afterStart
Bash code to execute after minio is running.
services.minio.browser
Enable or disable access to web UI.
services.minio.buckets
List of buckets to ensure exist on startup.
services.minio.clientConfig
Contents of the mc config.json, as a nix attribute set.
By default, local is configured to connect to the devenv minio service.
Use lib.mkForce null to use your regular mc configuration from $HOME/.mc instead.
services.minio.clientPackage
MinIO client package to use.
services.minio.consoleAddress
IP address and port of the web UI (console).
services.minio.enable
Whether to enable MinIO Object Storage.
services.minio.listenAddress
IP address and port of the server.
services.minio.package
MinIO package to use.
services.minio.region
The physical location of the server. By default it is set to us-east-1, which is same as AWS S3's and MinIO's default region.
services.minio.secretKey
Specify the Secret key of 8 to 40 characters in length that clients use to access the server.
services.mongodb.additionalArgs
Additional arguments passed to mongod.
services.mongodb.enable
Whether to enable MongoDB process and expose utilities.
services.mongodb.initDatabasePassword
This used in conjunction with initDatabaseUsername, create a new user and set that user's password. This user is created in the admin authentication database and given the role of root, which is a "superuser" role.
services.mongodb.initDatabaseUsername
This used in conjunction with initDatabasePassword, create a new user and set that user's password. This user is created in the admin authentication database and given the role of root, which is a "superuser" role.
services.mongodb.package
Which MongoDB package to use.
services.mongodb.replication.enable
Whether to enable MongoDB replication with a 1-node replica-set..
services.mongodb.replication.replSet
Replica-set name
services.mosquitto.bind
The IP interface to bind to.
null means "all interfaces".
services.mosquitto.enable
Whether to enable mosquitto MQTT broker.
services.mosquitto.extraConfig
Additional text to append to mosquitto.conf.
services.mosquitto.package
Which package of mosquitto to use
services.mosquitto.port
The TCP port to accept MQTT connections.
services.mysql.enable
Whether to enable MySQL process and expose utilities.
services.mysql.ensureUsers
Ensures that the specified users exist and have at least the ensured permissions. The MySQL users will be identified using Unix socket authentication. This authenticates the Unix user with the same name only, and that without the need for a password. This option will never delete existing users or remove permissions, especially not when the value of this option is changed. This means that users created and permissions assigned once through this option or otherwise have to be removed manually.
services.mysql.ensureUsers.*.ensurePermissions
Permissions to ensure for the user, specified as attribute set.
The attribute names specify the database and tables to grant the permissions for,
separated by a dot. You may use wildcards here.
The attribute values specfiy the permissions to grant.
You may specify one or multiple comma-separated SQL privileges here.
For more information on how to specify the target
and on which privileges exist, see the
GRANT syntax.
The attributes are used as GRANT ${attrName} ON ${attrValue}.
services.mysql.ensureUsers.*.host
Host of the user to ensure.
services.mysql.ensureUsers.*.name
Name of the user to ensure.
services.mysql.ensureUsers.*.password
Password of the user to ensure.
services.mysql.importTimeZones
Whether to import tzdata on the first startup of the mysql server
services.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.
services.mysql.initialDatabases.*.name
The name of the database to create.
services.mysql.initialDatabases.*.schema
The initial schema of the database; if null (the default), an empty database is created.
services.mysql.package
Which package of MySQL to use
services.mysql.settings
MySQL configuration.
services.mysql.useDefaultsExtraFile
Whether to use defaults-exta-file for the mysql command instead of defaults-file. This is useful if you want to provide a config file on the command line. However this can problematic if you have MySQL installed globaly because its config might leak into your environment. This option does not affect the mysqld command.
services.nats.authorization.enable
Whether to enable authorization for client connections.
services.nats.authorization.password
Password required for client connections. Only used if authorization is enabled. Warning: This will be visible in the Nix store.
services.nats.authorization.token
Token required for client connections. Alternative to user/password authentication. Warning: This will be visible in the Nix store.
services.nats.authorization.user
Username required for client connections. Only used if authorization is enabled.
services.nats.clientAdvertise
Client URL to advertise to other servers in a cluster. Useful when running behind NAT or in containers.
services.nats.debug
Enable debug logging for troubleshooting.
services.nats.enable
Whether to enable the NATS messaging server.
NATS is a simple, secure and high performance messaging system for cloud native applications, IoT messaging, and microservices architectures.
services.nats.host
Network host to listen on for client connections. Set to "0.0.0.0" to listen on all interfaces. Default is localhost for security.
services.nats.jetstream.enable
Whether to enable JetStream persistence layer for streaming and queues.
services.nats.jetstream.maxFileStore
Maximum disk space for file-based streams. Use suffixes: K, M, G, T for sizes.
services.nats.jetstream.maxMemory
Maximum memory for in-memory streams. Use suffixes: K, M, G, T for sizes.
services.nats.logFile
Path to log file. If empty, logs to stdout. Stdout is recommended for devenv as logs are captured by process manager.
services.nats.monitoring.enable
Enable HTTP monitoring endpoint. Provides /healthz, /varz, /connz, and other monitoring endpoints. Highly recommended for production deployments.
services.nats.monitoring.port
Port for HTTP monitoring endpoint.
Access monitoring at http://host:port/varz
services.nats.package
Which NATS server package to use.
services.nats.port
Port to listen on for client connections.
services.nats.serverName
Server name for identification in clusters. If empty, NATS will auto-generate a unique name.
services.nats.settings
Additional NATS server configuration as a Nix attribute set. This will be converted to NATS config file format.
Use this for advanced features like:
- TLS/SSL configuration
- Clustering with routes
- MQTT gateway
- WebSocket support
- Custom authorization
See https://docs.nats.io/running-a-nats-service/configuration
services.nats.trace
Enable protocol tracing for deep debugging. Warning: Very verbose output.
services.nginx.defaultMimeTypes
Default MIME types for NGINX, as MIME types definitions from NGINX are very incomplete, we use by default the ones bundled in the mailcap package, used by most of the other Linux distributions.
services.nginx.enable
Whether to enable nginx.
services.nginx.eventsConfig
The nginx events configuration.
services.nginx.httpConfig
The nginx configuration.
services.nginx.package
The nginx package to use.
services.nixseparatedebuginfod.cache.directory
Override the directory where files downloaded from the substituter are stored.
Default is $XDG_CACHE_DIR/nixseparatedebuginfod2.
services.nixseparatedebuginfod.cache.expiration
How long to keep cache entries. A number followed by a unit.
services.nixseparatedebuginfod.enable
Whether to enable nixseparatedebuginfod.
services.nixseparatedebuginfod.host
IP address for nixseparatedebuginfod to listen on.
services.nixseparatedebuginfod.package
nixseparatedebuginfod package to use.
services.nixseparatedebuginfod.port
Port for nixseparatedebuginfod to listen on.
services.nixseparatedebuginfod.substituters
Substituters to fetch debuginfo from.
services.opensearch.enable
Whether to enable OpenSearch.
services.opensearch.extraCmdLineOptions
Extra command line options for the OpenSearch launcher.
services.opensearch.extraJavaOptions
Extra command line options for Java.
services.opensearch.logging
OpenSearch logging configuration.
services.opensearch.package
The OpenSearch package to use.
services.opensearch.settings
OpenSearch configuration.
services.opensearch.settings."cluster.name"
The name of the cluster.
services.opensearch.settings."discovery.type"
The type of discovery to use.
services.opensearch.settings."http.port"
The port to listen on for HTTP traffic.
services.opensearch.settings."network.host"
Which port this service should listen on.
services.opensearch.settings."plugins.security.disabled"
Whether to disable the security plugin. When set to false, SSL configuration is required.
To enable SSL, set plugins.security.ssl.transport.keystore_filepath or both
plugins.security.ssl.transport.server.pemcert_filepath and
plugins.security.ssl.transport.client.pemcert_filepath.
services.opensearch.settings."transport.port"
The port to listen on for transport traffic.
services.opentelemetry-collector.configFile
Override the configuration file used by OpenTelemetry Collector.
By default, a configuration is generated from services.opentelemetry-collector.settings.
If overriding, enable the health_check extension to allow the readiness probe to check whether the Collector is ready.
Otherwise, disable the readiness probe by setting processes.opentelemetry-collector.ready = lib.mkForce null;.
services.opentelemetry-collector.enable
Whether to enable opentelemetry-collector.
services.opentelemetry-collector.package
The OpenTelemetry Collector package to use
services.opentelemetry-collector.settings
OpenTelemetry Collector configuration. Refer to https://opentelemetry.io/docs/collector/configuration/ for more information on how to configure the Collector.
services.postgres.createDatabase
Create a database named like current user on startup. Only applies when initialDatabases is an empty list.
services.postgres.enable
Whether to enable Add PostgreSQL process. .
services.postgres.extensions
Additional PostgreSQL extensions to install.
The available extensions are:
- age
- anonymizer
- apache_datasketches
- callPackage
- citus
- cstore_fdw
- h3-pg
- hypopg
- ip4r
- jsonb_deep_sum
- lantern
- omnigres
- periods
- pg-gvm
- pg-semver
- pg_auto_failover
- pg_background
- pg_bigm
- pg_byteamagic
- pg_cron
- pg_csv
- pg_ed25519
- pg_embedding
- pg_graphql
- pg_hint_plan
- pg_hll
- pg_ivm
- pg_libversion
- pg_net
- pg_partman
- pg_rational
- pg_relusage
- pg_repack
- pg_roaringbitmap
- pg_safeupdate
- pg_search
- pg_similarity
- pg_squeeze
- pg_tle
- pg_topn
- pg_uuidv7
- pgaudit
- pgddl
- pgjwt
- pgmq
- pgroonga
- pgrouting
- pgsodium
- pgsql-http
- pgtap
- pgvecto-rs
- pgvector
- pgvectorscale
- pgx_ulid
- plperl
- plpgsql_check
- plpython3
- plr
- pltcl
- plv8
- pointcloud
- postgis
- repmgr
- rum
- smlar
- sqlite_fdw
- system_stats
- tds_fdw
- temporal_tables
- timescaledb
- timescaledb-apache
- timescaledb_toolkit
- tsja
- vectorchord
- wal2json
services.postgres.hbaConf
The contents of a custom pg_hba.conf file to copy into the postgres installation. This allows for custom connection rules that you want to establish on the server.
services.postgres.initdbArgs
Additional arguments passed to initdb during data dir
initialisation.
services.postgres.initialDatabases
List of database names and their initial schemas that should be used to create databases on the first startup of Postgres. The schema attribute is optional: If not specified, an empty database is created.
services.postgres.initialDatabases.*.initialSQL
SQL commands to run on this specific database during it's initialization. Multiple SQL expressions can be separated by semicolons.
services.postgres.initialDatabases.*.name
The name of the database to create.
services.postgres.initialDatabases.*.pass
Password of the database owner role. Requires user to be set.
services.postgres.initialDatabases.*.schema
The initial schema of the database; if null (the default), an empty database is created.
services.postgres.initialDatabases.*.user
Username of owner of the database. If set, a role with this name is created and the database is owned by it. If null, the default $USER is used.
services.postgres.initialScript
Initial SQL commands to run during database initialization. This can be multiple
SQL expressions separated by a semi-colon.
Use initialScript for server-wide setup, such as creating roles or configuring
global settings. For database-specific initialization, use initialSQL within
initialDatabases. initialScript is executed after the initialDatabases
setup is done.
services.postgres.listen_addresses
A comma-separated list of TCP/IP address(es) on which the server should listen for connections.
By default, the server only accepts connections over unix sockets.
This option is parsed to set the PGHOST environment variable.
Special values:
- '*' to listen on all available network interfaces.
- '0.0.0.0' to listen on all available IPv4 network interfaces.
- '::' to listen on all available IPv6 network interfaces.
- 'localhost' to listen only on the loopback interface.
- '' (empty string) disables TCP/IP connections and listens only on the unix socket.
services.postgres.package
The PostgreSQL package to use. Use this to override the default with a specific version.
services.postgres.port
The TCP port to accept connections.
services.postgres.settings
PostgreSQL configuration. Refer to
https://www.postgresql.org/docs/11/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE
for an overview of postgresql.conf.
String values will automatically be enclosed in single quotes. Single quotes will be escaped with two single quotes as described by the upstream documentation linked above.
services.prometheus.advanced.storage
Storage configuration
services.prometheus.advanced.tsdb
TSDB configuration
services.prometheus.alerting
Alerting configuration
services.prometheus.enable
Whether to enable Prometheus monitoring system.
services.prometheus.experimentalFeatures.enableExemplars
Enable exemplar storage
services.prometheus.experimentalFeatures.enableOTLP
Enable OTLP receiver
services.prometheus.experimentalFeatures.enableTracing
Enable tracing
services.prometheus.extraArgs
Additional arguments to pass to Prometheus
services.prometheus.globalConfig
Global Prometheus configuration
services.prometheus.package
Which package of Prometheus to use
services.prometheus.port
Port for Prometheus web interface.
services.prometheus.remoteRead
Remote read configurations
services.prometheus.remoteWrite
Remote write configurations
services.prometheus.ruleFiles
List of rule files to load
services.prometheus.scrapeConfigs
List of scrape configurations
services.prometheus.storage.path
Path where Prometheus will store its database
services.prometheus.storage.retentionTime
How long to retain data
services.rabbitmq.configItems
Configuration options in RabbitMQ's new config file format,
which is a simple key-value format that can not express nested
data structures. This is known as the rabbitmq.conf file,
although outside NixOS that filename may have Erlang syntax, particularly
prior to RabbitMQ 3.7.0.
If you do need to express nested data structures, you can use
config option. Configuration from config
will be merged into these options by RabbitMQ at runtime to
form the final configuration.
See https://www.rabbitmq.com/configure.html#config-items
For the distinct formats, see https://www.rabbitmq.com/configure.html#config-file-formats
services.rabbitmq.cookie
Erlang cookie is a string of arbitrary length which must be the same for several nodes to be allowed to communicate. Leave empty to generate automatically.
services.rabbitmq.enable
Whether to enable the RabbitMQ server, an Advanced Message Queuing Protocol (AMQP) broker.
services.rabbitmq.listenAddress
IP address on which RabbitMQ will listen for AMQP
connections. Set to the empty string to listen on all
interfaces. Note that RabbitMQ creates a user named
guest with password
guest by default, so you should delete
this user if you intend to allow external access.
Together with 'port' setting it's mostly an alias for
configItems."listeners.tcp.1" and it's left for backwards
compatibility with previous version of this module.
services.rabbitmq.managementPlugin.enable
Whether to enable the management plugin.
services.rabbitmq.managementPlugin.port
On which port to run the management plugin.
services.rabbitmq.nodeName
The name of the RabbitMQ node. This is used to identify
the node in a cluster. If you are running multiple
RabbitMQ nodes on the same machine, you must give each
node a unique name. The name must be of the form
name@host, where name is an arbitrary name and
host is the domain name of the host.
services.rabbitmq.package
Which rabbitmq package to use.
services.rabbitmq.pluginDirs
The list of directories containing external plugins
services.rabbitmq.plugins
The names of plugins to enable
services.rabbitmq.port
Port on which RabbitMQ will listen for AMQP connections.
services.redis.bind
The IP interface to bind to.
null means "all interfaces".
services.redis.enable
Whether to enable Redis process and expose utilities.
services.redis.extraConfig
Additional text to be appended to redis.conf.
services.redis.package
Which package of Redis to use
services.redis.port
The TCP port to accept connections. If port 0 is specified, Redis will not listen on a TCP socket and a unix socket file will be found at $REDIS_UNIX_SOCKET.
services.rustfs.accessKey
Access key for authentication (5 to 20 characters).
services.rustfs.bind
The IP interface to bind to.
null means "all interfaces".
services.rustfs.consoleEnable
Enable or disable the web console.
services.rustfs.consolePort
The TCP port for the web console.
services.rustfs.enable
Whether to enable RustFS object storage.
services.rustfs.extraEnvironment
Additional environment variables to pass to RustFS.
See the RustFS documentation for available options
(e.g. RUSTFS_CORS_ALLOWED_ORIGINS, RUSTFS_TLS_PATH).
services.rustfs.package
Which package of RustFS to use
services.rustfs.port
The TCP port for the S3 API.
services.rustfs.secretKey
Secret key for authentication (8 to 40 characters).
services.sqld.enable
Whether to enable sqld.
services.sqld.extraArgs
Add other sqld flags.
services.sqld.port
Port number to listen on.
services.tailscale.funnel.enable
Whether to enable Tailscale funnel.
services.tailscale.funnel.target
Target host or host:port for Tailscale funnel
services.temporal.dynamicConfig
Dynamic configuration for the Temporal server.
services.temporal.enable
Whether to enable Temporal process.
services.temporal.ip
IPv4 address to bind the frontend service to.
services.temporal.namespaces
Specify namespaces that should be pre-created (namespace "default" is always created).
services.temporal.package
Which package of Temporal to use.
services.temporal.port
Port for the frontend gRPC service.
services.temporal.state
State configuration.
services.temporal.state.ephemeral
When enabled, the Temporal state gets lost when the process exists.
services.temporal.state.sqlite-pragma
Sqlite pragma statements
services.temporal.ui
UI configuration.
services.temporal.ui.enable
Enable the Web UI.
services.temporal.ui.ip
IPv4 address to bind the Web UI to.
services.temporal.ui.port
Port for the Web UI.
services.tideways.apiKey
Sets the API-Key for the Tideways Daemon.
services.tideways.cliPackage
Which package of tideways-cli to use
services.tideways.daemonPackage
Which package of tideways-daemon to use
services.tideways.enable
Whether to enable Tideways profiler daemon
It automatically installs Tideways PHP extension. .
services.tideways.environment
Sets the Environment for Tideways Daemon.
services.tideways.profilingSpace
When the profiling space is enabled, the default monitoring will be disabled.
services.tideways.service
Sets the Service name for Tideways Daemon.
services.trafficserver.cache
Caching rules that overrule the origin's caching policy.
Consult the upstream documentation for more details.
services.trafficserver.enable
Whether to enable Apache Traffic Server.
services.trafficserver.hosting
Partition the cache according to origin server or domain
Consult the upstream documentation for more details.
services.trafficserver.ipAllow
Control client access to Traffic Server and Traffic Server connections to upstream servers.
Consult the upstream documentation for more details.
services.trafficserver.logging
Configure logs.
Consult the upstream documentation for more details.
services.trafficserver.package
Apache Traffic Server package
services.trafficserver.parent
Identify the parent proxies used in an cache hierarchy.
Consult the upstream documentation for more details.
services.trafficserver.plugins
Controls run-time loadable plugins available to Traffic Server, as well as their configuration.
Consult the upstream documentation for more details.
services.trafficserver.plugins.*.arg
arguments to pass to the plugin
services.trafficserver.plugins.*.path
Path to plugin. The path can either be absolute, or relative to the plugin directory.
services.trafficserver.records
List of configurable variables used by Traffic Server.
Consult the upstream documentation for more details.
When defining the values for the option x.y, a nested attribute should
be used. Using a flat attribute set with the attribute name x.y will
result in an error.
If options for both x.y and x.y.z needs to be set, you can set
x.y._ as x.y. This only applies to Traffic Server versions prior to
10. Traffic Server 10 and onwards uses YAML configuration, which doesn't
have this kind of problem.
services.trafficserver.remap
URL remapping rules used by Traffic Server.
Consult the upstream documentation for more details.
services.trafficserver.runroot
File layout used by Traffic Server
services.trafficserver.sni
Configure aspects of TLS connection handling for both inbound and outbound connections.
Consult the upstream documentation for more details.
services.trafficserver.splitDns
Specify the DNS server that Traffic Server should use under specific conditions.
Consult the upstream documentation for more details.
services.trafficserver.sslMulticert
Configure SSL server certificates to terminate the SSL sessions.
Consult the upstream documentation for more details.
services.trafficserver.storage
List all the storage that make up the Traffic Server cache.
Consult the upstream documentation for more details.
services.trafficserver.strategies
Specify the next hop proxies used in an cache hierarchy and the algorithms used to select the next proxy.
Consult the upstream documentation for more details.
services.trafficserver.volume
Manage cache space more efficiently and restrict disk usage by creating cache volumes of different sizes.
Consult the upstream documentation for more details.
services.typesense.additionalArgs
Additional arguments passed to typesense.
services.typesense.apiKey
API Key.
services.typesense.enable
Whether to enable typesense process.
services.typesense.host
The HTTP host to accept connections.
services.typesense.package
Which package of typesense to use
services.typesense.port
The HTTP port to accept connections.
services.typesense.searchOnlyKey
Search Only Key.
services.varnish.enable
Whether to enable Varnish process and expose utilities.
services.varnish.extraModules
Varnish modules (except 'std').
services.varnish.listen
Which address to listen on.
services.varnish.memorySize
How much memory to allocate to Varnish.
services.varnish.package
Which Varnish package to use.
services.varnish.vcl
Varnish VCL configuration.
services.vault.address
Specifies the address to bind to for listening
services.vault.disableClustering
Specifies whether clustering features such as request forwarding are enabled
services.vault.disableMlock
Disables the server from executing the mlock syscall
services.vault.enable
Whether to enable vault process.
services.vault.package
Which package of Vault to use.
services.vault.ui
Enables the built-in web UI
services.wiremock.disableBanner
Whether to disable print banner logo.
services.wiremock.enable
Whether to enable WireMock.
services.wiremock.mappings
The mappings to mock. See the JSON examples on https://wiremock.org/docs/stubbing/ for more information.
services.wiremock.package
Which package of WireMock to use.
services.wiremock.port
The port number for the HTTP server to listen on.
services.wiremock.rootDir
Path to the WireMock root directory containing mappings and files.
Cannot be set together with mappings.
See https://wiremock.org/docs/standalone/java-jar/#command-line-options for more information.
services.wiremock.verbose
Whether to log verbosely to stdout.
starship
starship.config.enable
Whether to enable Starship config override.
starship.config.path
The Starship configuration file to use.
starship.config.settings
Starship configuration to use
starship.enable
Whether to enable the Starship.rs command prompt.
starship.package
The Starship package to use.
stdenv
stdenv
The stdenv to use for the developer environment.
tasks
tasks
A set of tasks.
tasks.<name>.after
List of tasks that must complete before this task runs.
Here's a helpful mnemonic to remember: This task runs after these tasks.
You can append a suffix to control dependency behavior:
task@started- wait for task to begin executiontaskortask@ready- wait for task to be ready/healthy (default for processes, processes only)task@succeeded- wait for task to exit successfully (default for tasks, tasks only)task@completed- wait for task to finish, regardless of exit code (soft dependency)
Example: after = [ "pnpm:install@completed" ]; allows this task to run
even if pnpm:install fails.
tasks.<name>.before
List of tasks that depend on this task completing first.
Here's a helpful mnemonic to remember: This task runs before these tasks.
You can append a suffix to control dependency behavior:
task@started- the dependent waits for this task to begin executiontaskortask@ready- the dependent waits for this task to be ready/healthy (default for processes, processes only)task@succeeded- the dependent waits for this task to exit successfully (default for tasks, tasks only)task@completed- the dependent waits for this task to finish (soft dependency)
tasks.<name>.binary
Override the binary name from the default package.meta.mainProgram.
tasks.<name>.cwd
Working directory to run the task in. If not specified, the current working directory will be used.
tasks.<name>.description
Description of the task.
tasks.<name>.env
Environment variables to set for this task.
tasks.<name>.exec
Command to execute the task.
tasks.<name>.execIfModified
Paths to files that should trigger a task execution if modified.
tasks.<name>.exports
List of environment variables to export.
tasks.<name>.input
Input values for the task, encoded as JSON.
tasks.<name>.package
Package to install for this task.
tasks.<name>.process
Process-specific configuration. Only used when type = "process".
tasks.<name>.process.linux
Linux-specific process configuration.
Requires devenv 2.0+.
tasks.<name>.process.linux.capabilities
Linux capabilities to add as ambient capabilities for this process (e.g., "net_bind_service", "net_admin").
Supported capabilities are net_bind_service, net_raw, net_admin, ipc_lock, sys_nice, sys_resource, sys_admin, chown, dac_override, and fowner. Starting a process with capabilities requires sudo authentication.
Requires devenv 2.0+.
tasks.<name>.process.listen
Socket activation configuration for systemd-style socket passing.
tasks.<name>.process.listen.*.address
TCP address (e.g., '127.0.0.1:8080'). Required for TCP sockets.
tasks.<name>.process.listen.*.backlog
Listen backlog size
tasks.<name>.process.listen.*.kind
Type of socket (tcp or unix_stream)
tasks.<name>.process.listen.*.mode
Unix socket file permissions (e.g., 384 for 0o600). Only for unix_stream.
tasks.<name>.process.listen.*.name
Name of the socket (e.g., 'http', 'admin')
tasks.<name>.process.listen.*.path
Unix socket path. Required for unix_stream sockets.
tasks.<name>.process.ports
Allocated ports for this process (name -> port number). Populated automatically from process port allocation.
tasks.<name>.process.proxy.hostname
Full .localhost proxy hostname for this process.
tasks.<name>.process.proxy.https.enable
Whether to enable HTTPS proxy URLs for this process.
tasks.<name>.process.proxy.port_hostnames
Full .localhost proxy hostnames keyed by port name.
tasks.<name>.process.ready
How to determine if this process task is ready to serve.
tasks.<name>.process.ready.exec
Shell command to execute. Exit 0 = ready.
tasks.<name>.process.ready.failure_threshold
Consecutive failures before marking unhealthy.
tasks.<name>.process.ready.http
HTTP readiness probe configuration.
tasks.<name>.process.ready.http.get
HTTP GET readiness check.
tasks.<name>.process.ready.http.get.host
Host to connect to.
tasks.<name>.process.ready.http.get.path
HTTP path to request.
tasks.<name>.process.ready.http.get.port
Port to connect to.
tasks.<name>.process.ready.http.get.scheme
URL scheme (http or https).
tasks.<name>.process.ready.initial_delay
Seconds to wait before first probe.
tasks.<name>.process.ready.notify
Enable systemd notify protocol for readiness signaling. The process must send READY=1 to the NOTIFY_SOCKET.
tasks.<name>.process.ready.period
Seconds between probes.
tasks.<name>.process.ready.probe_timeout
Seconds before a single probe times out.
tasks.<name>.process.ready.success_threshold
Consecutive successes needed to be considered ready.
tasks.<name>.process.ready.timeout
Overall deadline in seconds for the process to become ready. null = no deadline.
tasks.<name>.process.restart
Process restart policy.
tasks.<name>.process.restart.max
Maximum restart attempts. null = unlimited.
tasks.<name>.process.restart.on
When to restart: never, always, or on_failure.
tasks.<name>.process.restart.window
Sliding window in seconds for restart rate limiting. null = lifetime limit.
tasks.<name>.process.shutdown
Graceful shutdown signal and timeout.
tasks.<name>.process.shutdown.grace
Seconds before shutdown escalates to SIGKILL.
tasks.<name>.process.shutdown.signal
Unix signal number used for graceful shutdown.
tasks.<name>.process.start
Auto-start configuration for this process.
tasks.<name>.process.start.enable
Whether to start this process automatically with devenv up.
Disabled processes still run when pulled in as a task
dependency (for example via @completed).
tasks.<name>.process.watch
File watching configuration for automatic process restarts.
tasks.<name>.process.watch.extensions
File extensions to watch (e.g., "rs", "js", "py"). If empty, all file extensions are watched.
tasks.<name>.process.watch.ignore
Glob patterns to ignore (e.g., ".git", "target", "*.log").
tasks.<name>.process.watch.paths
Paths to watch for changes (files or directories). When files in these paths change, the process will be restarted.
tasks.<name>.process.watchdog
Systemd watchdog configuration.
tasks.<name>.process.watchdog.require_ready
Require READY=1 notification before enforcing watchdog
tasks.<name>.process.watchdog.usec
Watchdog interval in microseconds
tasks.<name>.showOutput
Always show task output (stdout and stderr), regardless of whether the task succeeds or fails.
tasks.<name>.status
Check if the command should be ran
tasks.<name>.type
Type of task:
- oneshot: Task runs once and completes (default)
- process: Task is a long-running process
treefmt
treefmt.config
treefmt configuration.
treefmt.config.build.check
Create a flake check to test that the given project tree is already formatted.
Input argument is the path to the project tree (usually 'self').
treefmt.config.build.configFile
Contains the generated config file derived from the settings.
treefmt.config.build.devShell
The development shell with treefmt and its underlying programs
treefmt.config.build.programs
Attrset of formatter programs enabled in treefmt configuration.
The key of the attrset is the formatter name, with the value being the package used to do the formatting.
treefmt.config.build.wrapper
The treefmt package, wrapped with the config file.
treefmt.config.enableDefaultExcludes
Enable the default excludes in the treefmt configuration.
treefmt.config.package
The treefmt package to use.
treefmt.config.pkgs
Nixpkgs to use in treefmt.
treefmt.config.programs.actionlint.enable
Whether to enable actionlint.
treefmt.config.programs.aiken.enable
Whether to enable aiken.
treefmt.config.programs.alejandra.enable
Whether to enable alejandra.
treefmt.config.programs.asmfmt.enable
Whether to enable asmfmt.
treefmt.config.programs.autocorrect.enable
Whether to enable autocorrect.
treefmt.config.programs.autocorrect.settings.context
Enable or disable in a specific context.
treefmt.config.programs.autocorrect.settings.context.codeblock
Enable or disable to format codeblock in Markdown or AsciiDoc etc.
treefmt.config.programs.autocorrect.settings.fileTypes
Configure the files associations, you config is higher priority than default.
treefmt.config.programs.autocorrect.settings.rules
Configure rules for autocorrect formatting.
treefmt.config.programs.autocorrect.settings.rules.fullwidth
Convert to fullwidth.
treefmt.config.programs.autocorrect.settings.rules.halfwidth-punctuation
Fullwidth punctuations to halfwidth in english.
treefmt.config.programs.autocorrect.settings.rules.halfwidth-word
Fullwidth alphanumeric characters to halfwidth.
treefmt.config.programs.autocorrect.settings.rules.no-space-fullwidth
Remove space near the fullwidth.
treefmt.config.programs.autocorrect.settings.rules.space-backticks
Add space between ``, when near the CJK.
treefmt.config.programs.autocorrect.settings.rules.space-bracket
Add space between brackets (), [] when near the CJK.
treefmt.config.programs.autocorrect.settings.rules.space-dash
Add space between dash -.
treefmt.config.programs.autocorrect.settings.rules.space-dollar
Add space between dollar $ when near the CJK.
treefmt.config.programs.autocorrect.settings.rules.space-punctuation
Add space between some punctuations.
treefmt.config.programs.autocorrect.settings.rules.space-word
Auto add spacing between CJK (Chinese, Japanese, Korean) and English words.
treefmt.config.programs.autocorrect.settings.rules.spellcheck
Spellcheck.
treefmt.config.programs.autocorrect.settings.spellcheck
Spellcheck configuration.
treefmt.config.programs.autocorrect.settings.spellcheck.words
Correct Words (Case insensitive) for by Spellcheck.
treefmt.config.programs.autocorrect.settings.textRules
Configure special rules for some texts.
treefmt.config.programs.autocorrect.threads
Number of threads, 0 - use number of CPU. [default: 0]
treefmt.config.programs.beautysh.enable
Whether to enable beautysh.
treefmt.config.programs.beautysh.indent_size
Sets the number of spaces to be used in indentation.
treefmt.config.programs.biome.enable
Whether to enable biome.
treefmt.config.programs.biome.formatCommand
The command to run Biome with.
treefmt.config.programs.biome.formatUnsafe
Allows to format a document that has unsafe fixes.
treefmt.config.programs.biome.settings
Raw Biome configuration (must conform to Biome JSON schema)
treefmt.config.programs.biome.validate.enable
Whether to validate treefmt.config.programs.biome.settings.
treefmt.config.programs.biome.validate.schema
The biome schema file to validate against
treefmt.config.programs.black.enable
Whether to enable black.
treefmt.config.programs.buf.enable
Whether to enable buf.
treefmt.config.programs.buildifier.enable
Whether to enable buildifier.
treefmt.config.programs.cabal-fmt.enable
Whether to enable cabal-fmt.
treefmt.config.programs.cabal-gild.enable
Whether to enable cabal-gild.
treefmt.config.programs.clang-format.enable
Whether to enable clang-format.
treefmt.config.programs.clang-tidy.compileCommandsPath
used to read a compile command database
treefmt.config.programs.clang-tidy.configFile
Specify the path of .clang-tidy or custom config file
treefmt.config.programs.clang-tidy.enable
Whether to enable clang-tidy.
treefmt.config.programs.clang-tidy.quiet
Run clang-tidy in quiet mode
treefmt.config.programs.cljfmt.enable
Whether to enable cljfmt.
treefmt.config.programs.cmake-format.enable
Whether to enable cmake-format.
treefmt.config.programs.csharpier.enable
Whether to enable csharpier.
treefmt.config.programs.cue.enable
Whether to enable cue.
treefmt.config.programs.d2.enable
Whether to enable d2.
treefmt.config.programs.dart-format.enable
Whether to enable dart-format.
treefmt.config.programs.deadnix.enable
Whether to enable deadnix.
treefmt.config.programs.deadnix.no-lambda-arg
Whether to enable Don't check lambda parameter arguments.
treefmt.config.programs.deadnix.no-lambda-pattern-names
Whether to enable Don't check lambda attrset pattern names (don't break nixpkgs callPackage).
treefmt.config.programs.deadnix.no-underscore
Whether to enable Don't check any bindings that start with a _.
treefmt.config.programs.deno.enable
Whether to enable deno.
treefmt.config.programs.detekt.buildUponDefaultConfig
Preconfigures detekt with a bunch of rules and some opinionated defaults for you. Allows additional provided configurations to override the defaults.
treefmt.config.programs.detekt.configFile
Path to detekt configuration file
treefmt.config.programs.detekt.enable
Whether to enable detekt.
treefmt.config.programs.dfmt.enable
Whether to enable dfmt.
treefmt.config.programs.dhall.enable
Whether to enable dhall.
treefmt.config.programs.dhall.lint
Whether to lint in addition to formatting.
treefmt.config.programs.djlint.enable
Whether to enable djlint.
treefmt.config.programs.djlint.ignoreRules
Which H-rules to ignore
treefmt.config.programs.djlint.indent
Default indentation depth in spaces
treefmt.config.programs.djlint.lint
Whether to lint in addition to formatting.
treefmt.config.programs.dnscontrol.enable
Whether to enable dnscontrol.
treefmt.config.programs.dockerfmt.enable
Whether to enable dockerfmt.
treefmt.config.programs.dockfmt.enable
Whether to enable dockfmt.
treefmt.config.programs.dos2unix.enable
Whether to enable dos2unix.
treefmt.config.programs.dprint.enable
Whether to enable dprint.
treefmt.config.programs.dprint.settings
Configuration to generate dprint.json with
treefmt.config.programs.dprint.settings.extends
Configurations to extend.
treefmt.config.programs.dprint.settings.incremental
Whether to format files only when they change.
treefmt.config.programs.dprint.settings.indentWidth
The number of characters for an indent
treefmt.config.programs.dprint.settings.lineWidth
The width of a line the printer will try to stay under. Note that the printer may exceed this width in certain cases.
treefmt.config.programs.dprint.settings.newLineKind
The kind of newline to use (one of: auto, crlf, lf, system).
treefmt.config.programs.dprint.settings.plugins
Array of plugin URLs to format files.
treefmt.config.programs.dprint.settings.useTabs
Whether to use tabs (true) or spaces (false) for indentation.
treefmt.config.programs.dscanner.enable
Whether to enable dscanner.
treefmt.config.programs.efmt.enable
Whether to enable efmt.
treefmt.config.programs.elm-format.enable
Whether to enable elm-format.
treefmt.config.programs.erlfmt.enable
Whether to enable erlfmt.
treefmt.config.programs.erlfmt.print-width
The line length that formatter would wrap on
treefmt.config.programs.fantomas.dotnet-sdk
The dotnet-sdk package to use.
treefmt.config.programs.fantomas.enable
Whether to enable fantomas.
treefmt.config.programs.fish_indent.enable
Whether to enable fish_indent.
treefmt.config.programs.flake-edit.enable
Whether to enable flake-edit.
treefmt.config.programs.flake-edit.noLock
Skip updating the lockfile after editing flake.nix
treefmt.config.programs.flake-edit.settings.follow.aliases
Mapping of canonical input names to alternative names. Allows nested inputs like "nixpkgs-lib" to follow "nixpkgs".
treefmt.config.programs.flake-edit.settings.follow.ignore
List of inputs to ignore when following. Supports simple names ("systems") or full paths ("crane.nixpkgs").
treefmt.config.programs.fnlfmt.enable
Whether to enable fnlfmt.
treefmt.config.programs.formatjson5.enable
Whether to enable formatjson5.
treefmt.config.programs.formatjson5.indent
Indent by the given number of spaces
treefmt.config.programs.formatjson5.noTrailingCommas
Suppress trailing commas (otherwise added by default)
treefmt.config.programs.formatjson5.oneElementLines
Objects or arrays with a single child should collapse to a single line
treefmt.config.programs.formatjson5.sortArrays
Sort arrays of primitive values (string, number, boolean, or null) lexicographically
treefmt.config.programs.fourmolu.enable
Whether to enable fourmolu.
treefmt.config.programs.fourmolu.ghcOpts
Which GHC language extensions to enable
treefmt.config.programs.fprettify.enable
Whether to enable fprettify.
treefmt.config.programs.gdformat.enable
Whether to enable gdformat.
treefmt.config.programs.genemichaels.enable
Whether to enable genemichaels, a Rust code formatter.
treefmt.config.programs.genemichaels.settings.comment_errors_fatal
If reformatting comments results in an error, abort formatting the document.
treefmt.config.programs.genemichaels.settings.comment_width
Maximum relative line length for comments (past the comment
indentation level). Can be null to disable relative wrapping. If
disabled, still wraps at max_width.
treefmt.config.programs.genemichaels.settings.keep_max_blank_lines
Genemichaels will replace line breaks with it's own deterministic line breaks. You can use this to keep extra line breaks (1 will keep up to 1 extra line break) during comment extraction. This is unused during formatting.
treefmt.config.programs.genemichaels.settings.max_width
Ideal maximum line width. If there's an unbreakable element the line won't be split.
treefmt.config.programs.genemichaels.settings.root_splits
When breaking a child element, also break all parent elements.
treefmt.config.programs.genemichaels.settings.split_attributes
Break a #[] on a separate line before the element it's associated
with.
treefmt.config.programs.genemichaels.settings.split_brace_threshold
Break a () or {} if it has greater than this number of children.
Set to null to disable breaking due to high child counts.
treefmt.config.programs.genemichaels.settings.split_where
Put the where clause on a new line.
treefmt.config.programs.genemichaels.settingsFile
The configuration file used by genemichaels.
treefmt.config.programs.genemichaels.threadCount
How many threads to use for formatting multiple files. Set to null to
default to the number of cores on the system.
treefmt.config.programs.gleam.enable
Whether to enable gleam.
treefmt.config.programs.gofmt.enable
Whether to enable gofmt.
treefmt.config.programs.gofumpt.enable
Whether to enable gofumpt.
treefmt.config.programs.gofumpt.extra
Whether to enable extra rules.
treefmt.config.programs.goimports.enable
Whether to enable goimports.
treefmt.config.programs.golangci-lint.buildTags
Build tags to use during analysis
treefmt.config.programs.golangci-lint.concurrency
Number of CPUs to use (auto-configured by default)
treefmt.config.programs.golangci-lint.configFile
Path to golangci-lint configuration file
treefmt.config.programs.golangci-lint.disableLinters
Disable specific linters
treefmt.config.programs.golangci-lint.enable
Whether to enable golangci-lint.
treefmt.config.programs.golangci-lint.enableLinters
Enable specific linters
treefmt.config.programs.golangci-lint.enableOnly
Override configuration to run only specific linter(s)
treefmt.config.programs.golangci-lint.fastOnly
Run only fast linters from enabled linters set
treefmt.config.programs.golangci-lint.maxIssuesPerLinter
Maximum issues per linter (default: 50)
treefmt.config.programs.golangci-lint.maxSameIssues
Maximum count of same issues (default: 3)
treefmt.config.programs.golangci-lint.newFromRev
Show only new issues created after git revision REV
treefmt.config.programs.golangci-lint.noConfig
Don't read any configuration file
treefmt.config.programs.golangci-lint.tests
Analyze test files
treefmt.config.programs.golangci-lint.timeout
Timeout for total work (e.g., '5m', '1h', '10s')
treefmt.config.programs.golangci-lint.verbose
Enable verbose output
treefmt.config.programs.golines.enable
Whether to enable golines.
treefmt.config.programs.golines.maxLength
Target maximum line length (default: 100)
treefmt.config.programs.golines.tabLength
Length of a tab (default: 4)
treefmt.config.programs.google-java-format.aospStyle
Whether to use AOSP (Android Open Source Project) indentation. In a few words, use 4-space indentation rather than the conventional 2-space indentation width that Google uses.
treefmt.config.programs.google-java-format.enable
Whether to enable google-java-format.
treefmt.config.programs.hclfmt.enable
Whether to enable hclfmt.
treefmt.config.programs.hlint.enable
Whether to enable hlint.
treefmt.config.programs.hujsonfmt.enable
Whether to enable hujsonfmt.
treefmt.config.programs.isort.enable
Whether to enable isort.
treefmt.config.programs.isort.profile
The profile to use for isort.
treefmt.config.programs.json-sort-cli.autofix
Update files with fixes instead of just reporting.
Defaults to false.
treefmt.config.programs.json-sort-cli.enable
Whether to enable json-sort-cli.
treefmt.config.programs.json-sort-cli.end-of-line
Specify the desired line ending for output.
Defaults to system line ending.
Overrides .editorconfig settings if an .editorconfig is found.
treefmt.config.programs.json-sort-cli.indent-size
Number of spaces to indent, or the string "tab" to use tabs.
Defaults to 2 spaces. Overrides .editorconfig settings if an .editorconfig is found.
treefmt.config.programs.json-sort-cli.indent-style
Specify the desired indentation style for output.
Defaults to space. Overrides .editorconfig settings if an .editorconfig is found.
treefmt.config.programs.json-sort-cli.insert-final-newline
Insert a final newline after the sort. Defaults to false.
Overrides .editorconfig settings if an .editorconfig is found.
treefmt.config.programs.jsonfmt.enable
Whether to enable jsonfmt.
treefmt.config.programs.jsonnet-lint.enable
Whether to enable jsonnet-lint.
treefmt.config.programs.jsonnetfmt.enable
Whether to enable jsonnetfmt.
treefmt.config.programs.just.enable
Whether to enable just.
treefmt.config.programs.kdlfmt.enable
Whether to enable kdlfmt.
treefmt.config.programs.keep-sorted.enable
Whether to enable keep-sorted.
treefmt.config.programs.ktfmt.enable
Whether to enable ktfmt.
treefmt.config.programs.ktlint.enable
Whether to enable ktlint.
treefmt.config.programs.latexindent.enable
Whether to enable latexindent.
treefmt.config.programs.leptosfmt.enable
Whether to enable leptosfmt.
treefmt.config.programs.mbake.enable
Whether to enable mbake.
treefmt.config.programs.mbake.settings.auto_insert_phony_declarations
Whether to automatically insert .PHONY declarations for non-file targets
treefmt.config.programs.mbake.settings.ensure_final_newline
Whether to ensure the file ends with a newline
treefmt.config.programs.mbake.settings.fix_missing_recipe_tabs
Whether to fix recipe lines that are missing tabs
treefmt.config.programs.mbake.settings.group_phony_declarations
Whether to group all .PHONY declarations together
treefmt.config.programs.mbake.settings.indent_nested_conditionals
Whether to indent nested conditional blocks (ifdef, ifndef, etc.)
treefmt.config.programs.mbake.settings.max_consecutive_empty_lines
Maximum number of consecutive empty lines allowed
treefmt.config.programs.mbake.settings.max_line_length
Maximum line length before wrapping
treefmt.config.programs.mbake.settings.normalize_empty_lines
Whether to normalize empty lines
treefmt.config.programs.mbake.settings.normalize_line_continuations
Whether to normalize line continuation backslashes
treefmt.config.programs.mbake.settings.phony_at_top
Whether to place .PHONY declarations at the top of the file
treefmt.config.programs.mbake.settings.remove_trailing_whitespace
Whether to remove trailing whitespace from lines
treefmt.config.programs.mbake.settings.space_after_colon
Whether to add a space after colons in rules
treefmt.config.programs.mbake.settings.space_around_assignment
Whether to add spaces around assignment operators (=, :=, etc.)
treefmt.config.programs.mbake.settings.space_before_colon
Whether to add a space before colons in rules
treefmt.config.programs.mbake.settings.tab_width
Tab width in spaces for display purposes
treefmt.config.programs.mdformat.enable
Whether to enable mdformat.
treefmt.config.programs.mdformat.plugins
Plugins for mdformat that extend its functionality (for Markdown extensions, formatting code blocks, etc).
See mdformat docs for a (non-exhaustive) list of plugins.
treefmt.config.programs.mdformat.settings.end-of-line
Output file line ending mode.
treefmt.config.programs.mdformat.settings.number
Apply consecutive numbering to ordered lists.
treefmt.config.programs.mdformat.settings.wrap
Paragraph word wrap mode. Set to an INTEGER to wrap at that length.
treefmt.config.programs.mdsh.enable
Whether to enable mdsh.
treefmt.config.programs.meson.editorconfig
Try to read configuration from .editorconfig
treefmt.config.programs.meson.enable
Whether to enable meson.
treefmt.config.programs.mix-format.enable
Whether to enable mix-format.
treefmt.config.programs.muon.editorconfig
Try to read configuration from .editorconfig
treefmt.config.programs.muon.enable
Whether to enable muon.
treefmt.config.programs.mypy.directories
Directories to run mypy in
treefmt.config.programs.mypy.directories.<name>.directory
Directory to run mypy in
treefmt.config.programs.mypy.directories.<name>.extraPythonPackages
Extra packages to add to PYTHONPATH
treefmt.config.programs.mypy.directories.<name>.extraPythonPaths
Extra paths to add to PYTHONPATH. Paths are interpreted relative to the directory options and are added before extraPythonPackages.
treefmt.config.programs.mypy.directories.<name>.modules
Modules to check
treefmt.config.programs.mypy.directories.<name>.options
Options to pass to mypy
treefmt.config.programs.mypy.enable
Whether to enable mypy.
treefmt.config.programs.nbstripout.enable
Whether to enable nbstripout.
treefmt.config.programs.nickel.enable
Whether to enable nickel.
treefmt.config.programs.nimpretty.enable
Whether to enable nimpretty.
treefmt.config.programs.nixf-diagnose.autoFix
Whether to automatically apply fixes to source files.
treefmt.config.programs.nixf-diagnose.enable
Whether to enable nixf-diagnose.
treefmt.config.programs.nixf-diagnose.ignore
Diagnostics to ignore, specified by their ID.
treefmt.config.programs.nixf-diagnose.only
Only run this diagnostic.
treefmt.config.programs.nixf-diagnose.variableLookup
Whether to enable variable lookup analysis.
treefmt.config.programs.nixfmt.enable
Whether to enable nixfmt.
treefmt.config.programs.nixfmt.indent
Number of spaces to use for indentation [default: 2]
treefmt.config.programs.nixfmt.strict
Enable a stricter formatting mode that isn't influenced as much by how the input is formatted.
treefmt.config.programs.nixfmt.width
Maximum width in characters [default: 100]
treefmt.config.programs.nixpkgs-fmt.enable
Whether to enable nixpkgs-fmt.
treefmt.config.programs.ocamlformat.configFile
Path to the .ocamlformat file. Used to pick the right version of ocamlformat if passed.
treefmt.config.programs.ocamlformat.enable
Whether to enable ocamlformat.
treefmt.config.programs.ocamlformat.pkgs
The package set used to get the ocamlformat package at a specific version.
treefmt.config.programs.odinfmt.enable
Whether to enable odinfmt.
treefmt.config.programs.opa.enable
Whether to enable opa.
treefmt.config.programs.ormolu.enable
Whether to enable ormolu.
treefmt.config.programs.ormolu.ghcOpts
Which GHC language extensions to enable
treefmt.config.programs.oxfmt.enable
Whether to enable oxfmt.
treefmt.config.programs.oxipng.alpha
Whether to enable Perform additional optimization on images with an alpha channel.
treefmt.config.programs.oxipng.enable
Whether to enable oxipng.
treefmt.config.programs.oxipng.opt
Set the optimization level preset
treefmt.config.programs.oxipng.scale16
Whether to enable Forcibly reduce images with 16 bits per channel to 8 bits per channel.
treefmt.config.programs.oxipng.strip
Strip metadata chunks
treefmt.config.programs.packer.enable
Whether to enable packer.
treefmt.config.programs.perltidy.enable
Whether to enable perltidy.
treefmt.config.programs.perltidy.perltidyrc
A path for perltidy's configuration file, usually named .perltidyrc
treefmt.config.programs.php-cs-fixer.configFile
Path to php-cs-fixer config file.
treefmt.config.programs.php-cs-fixer.enable
Whether to enable php-cs-fixer.
treefmt.config.programs.pinact.enable
Whether to enable pinact.
treefmt.config.programs.pinact.settings
Configuration for pinact, see
for supported values.treefmt.config.programs.pinact.update
Update actions to latest versions.
treefmt.config.programs.pinact.verify
Verify if pairs of commit SHA and version are correct.
treefmt.config.programs.prettier.enable
Whether to enable prettier.
treefmt.config.programs.prettier.settings.arrowParens
Include parentheses around a sole arrow function parameter.
treefmt.config.programs.prettier.settings.bracketSameLine
Put > of opening tags on the last line instead of on a new line.
treefmt.config.programs.prettier.settings.bracketSpacing
Print spaces between brackets
treefmt.config.programs.prettier.settings.cursorOffset
Print (to stderr) where a cursor at the given position would move to after formatting. This option cannot be used with --range-start and --range-end.
treefmt.config.programs.prettier.settings.editorconfig
Whether parse the .editorconfig file in your project and convert its properties to the corresponding Prettier configuration. This configuration will be overridden by .prettierrc, etc.
treefmt.config.programs.prettier.settings.embeddedLanguageFormatting
Control how Prettier formats quoted code embedded in the file.
treefmt.config.programs.prettier.settings.endOfLine
Which end of line characters to apply.
treefmt.config.programs.prettier.settings.filepath
Specify the input filepath. This will be used to do parser inference.
treefmt.config.programs.prettier.settings.htmlWhitespaceSensitivity
How to handle whitespaces in HTML.
treefmt.config.programs.prettier.settings.insertPragma
Insert @format pragma into file's first docblock commentypes.
treefmt.config.programs.prettier.settings.jsxSingleQuote
Use single quotes in JSX
treefmt.config.programs.prettier.settings.overrides
Provide a list of patterns to override prettier configuration.
treefmt.config.programs.prettier.settings.parser
Which parser to use.
treefmt.config.programs.prettier.settings.pluginSearchDirs
Custom directory that contains prettier plugins in node_modules subdirectory. Overrides default behavior when plugins are searched relatively to the location of Prettier.\nMultiple values are accepted.
treefmt.config.programs.prettier.settings.plugins
Add a plugin. Multiple plugins can be passed as separate --plugins.
treefmt.config.programs.prettier.settings.printWidth
The line length where Prettier will try wrap.
treefmt.config.programs.prettier.settings.proseWrap
How to wrap prose.
treefmt.config.programs.prettier.settings.quoteProps
Change when properties in objects are quoted
treefmt.config.programs.prettier.settings.rangeEnd
Format code ending at a given character offset (exclusive). The range will extend forwards to the end of the selected statementypes. This option cannot be used with --cursor-offsetypes.
treefmt.config.programs.prettier.settings.rangeStart
Format code starting at a given character offsetypes. The range will extend backwards to the start of the first line containing the selected statementypes. his option cannot be used with --cursor-offsetypes.
treefmt.config.programs.prettier.settings.requirePragma
Require either '@prettier' or '@format' to be present in the file's first docblock comment\nin order for it to be formatted.
treefmt.config.programs.prettier.settings.semi
Print semicolons.
treefmt.config.programs.prettier.settings.singleAttributePerLine
Enforce single attribute per line in HTML, Vue and JSX.
treefmt.config.programs.prettier.settings.singleQuote
Use single quotes instead of double quotes.
treefmt.config.programs.prettier.settings.tabWidth
Number of spaces per indentation level.
treefmt.config.programs.prettier.settings.trailingComma
Print trailing commas wherever possible when multi-line.
treefmt.config.programs.prettier.settings.useTabs
Indent with tabs instead of spaces
treefmt.config.programs.prettier.settings.vueIndentScriptAndStyle
Indent script and style tags in Vue files.
treefmt.config.programs.protolint.enable
Whether to enable protolint.
treefmt.config.programs.qmlformat.enable
Whether to enable qmlformat.
treefmt.config.programs.rstfmt.enable
Whether to enable rstfmt.
treefmt.config.programs.rstfmt.line_length
Sets the line length.
treefmt.config.programs.rubocop.enable
Whether to enable rubocop.
treefmt.config.programs.ruff-check.enable
Whether to enable ruff-check.
treefmt.config.programs.ruff-check.extendSelect
--extend-select options
treefmt.config.programs.ruff-format.enable
Whether to enable ruff-format.
treefmt.config.programs.ruff-format.lineLength
Set the line-length.
treefmt.config.programs.rufo.enable
Whether to enable rufo.
treefmt.config.programs.rumdl-check.enable
Whether to enable rumdl-check.
treefmt.config.programs.rumdl-format.enable
Whether to enable rumdl-format.
treefmt.config.programs.rustfmt.edition
Rust edition to target when formatting
treefmt.config.programs.rustfmt.enable
Whether to enable rustfmt.
treefmt.config.programs.scalafmt.enable
Whether to enable scalafmt.
treefmt.config.programs.shellcheck.enable
Whether to enable shellcheck.
treefmt.config.programs.shellcheck.external-sources
Whether to enable Allow sources outside of includes.
treefmt.config.programs.shellcheck.extra-checks
List of optional checks to enable (or "all")
treefmt.config.programs.shellcheck.severity
Minimum severity of errors to consider ("error", "warning", "info", "style")
treefmt.config.programs.shellcheck.source-path
Specify path when looking for sourced files ("SCRIPTDIR" for script's dir)
treefmt.config.programs.shfmt.enable
Whether to enable shfmt.
treefmt.config.programs.shfmt.indent_size
Sets the number of spaces to be used in indentation. Uses tabs if set to zero.
treefmt.config.programs.shfmt.simplify
Enables the -s (--simplify) flag, which simplifies code where possible.
treefmt.config.programs.shfmt.useEditorConfig
Whether to enable Use .editorconfig file for formatting. This is mutually exlusive with all other settings. See shfmt docs. .
treefmt.config.programs.sizelint.enable
Whether to enable sizelint.
treefmt.config.programs.sizelint.failOnWarn
Whether to enable fail-on-warn.
treefmt.config.programs.sizelint.settings
Configuration to generate sizelint.toml with
treefmt.config.programs.sql-formatter.dialect
The sql dialect to use for formatting
treefmt.config.programs.sql-formatter.enable
Whether to enable sql-formatter.
treefmt.config.programs.sqlfluff-lint.enable
Whether to enable sqlfluff-lint.
treefmt.config.programs.sqlfluff.dialect
The sql dialect to use for formatting
treefmt.config.programs.sqlfluff.enable
Whether to enable sqlfluff.
treefmt.config.programs.sqruff.enable
Whether to enable sqruff.
treefmt.config.programs.statix.disabled-lints
List of ignored lints. Run statix list to see all available lints.
treefmt.config.programs.statix.enable
Whether to enable statix.
treefmt.config.programs.stylish-haskell.enable
Whether to enable stylish-haskell.
treefmt.config.programs.stylua.enable
Whether to enable stylua.
treefmt.config.programs.stylua.settings.call_parentheses
Whether parentheses should be applied on
function calls with a single string/table
argument. Always applies parentheses in
all cases. NoSingleString omits
parentheses on calls with a single string
argument. Similarly, NoSingleTable omits
parentheses on calls with a single table
argument. None omits parentheses in both
cases.
Note: parentheses are still kept in situations
where removal can lead to obscurity
(e.g. foo "bar".setup -> foo("bar").setup,
since the index is on the call result, not the string).
Input removes all automation and preserves
parentheses only if they were present in input code:
consistency is not enforced.
treefmt.config.programs.stylua.settings.collapse_simple_statement
Specify whether to collapse simple statements.
treefmt.config.programs.stylua.settings.column_width
Approximate line length for printing.
Used as a guide for line wrapping - this is not a hard requirement: lines may fall under or over the limit.
treefmt.config.programs.stylua.settings.indent_type
Indent type.
treefmt.config.programs.stylua.settings.indent_width
Character size of single indentation.
If indent_type is set to Tabs,
this option is used as a heuristic to
determine column width only.
treefmt.config.programs.stylua.settings.line_endings
Line endings type.
treefmt.config.programs.stylua.settings.quote_style
Quote style for string literals.
AutoPrefer styles will prefer the
specified quote style, but fall back to
the alternative if it has fewer string
escapes. Force styles always use the
specified style regardless of escapes.
treefmt.config.programs.stylua.settings.sort_requires.enabled
StyLua has built-in support for sorting require statements. We group consecutive require statements into a single "block", and then requires are sorted only within that block. Blocks of requires do not move around the file.
We only include requires of the form
local NAME = require(EXPR), and sort
lexicographically based on NAME.
(We also sort Roblox services of the form
local NAME = game:GetService(EXPR))
treefmt.config.programs.swift-format.enable
Whether to enable swift-format.
treefmt.config.programs.taplo.enable
Whether to enable taplo.
treefmt.config.programs.taplo.settings
Configuration to generate taplo.toml with
treefmt.config.programs.templ.enable
Whether to enable templ.
treefmt.config.programs.terraform.enable
Whether to enable terraform.
treefmt.config.programs.texfmt.enable
Whether to enable texfmt.
treefmt.config.programs.tilt.enable
Whether to enable tilt.
treefmt.config.programs.toml-sort.all
Whether to enable sort ALL keys.
treefmt.config.programs.toml-sort.enable
Whether to enable toml-sort.
treefmt.config.programs.typos.binary
Search binary files
treefmt.config.programs.typos.configFile
Custom config file
treefmt.config.programs.typos.enable
Whether to enable typos.
treefmt.config.programs.typos.isolated
Ignore implicit configuration files
treefmt.config.programs.typos.locale
Language locale to suggest corrections for [possible values: en, en-us, en-gb, en-ca, en-au]
treefmt.config.programs.typos.noCheckFilenames
Skip verifying spelling in file names
treefmt.config.programs.typos.noCheckFiles
Skip verifying spelling in files
treefmt.config.programs.typos.noIgnore
Don't respect ignore files
treefmt.config.programs.typos.noIgnoreDot
Don't respect .ignore files
treefmt.config.programs.typos.noIgnoreGlobal
Don't respect global ignore files
treefmt.config.programs.typos.noIgnoreParent
Don't respect ignore files in parent directories
treefmt.config.programs.typos.noIgnoreVCS
Don't respect ignore files in vsc directories
treefmt.config.programs.typos.noUnicode
Only allow ASCII characters in identifiers
treefmt.config.programs.typos.sort
Sort results
treefmt.config.programs.typos.threads
The approximate number of threads to use [default: 0]
treefmt.config.programs.typstyle.enable
Whether to enable typstyle.
treefmt.config.programs.typstyle.indentWidth
Number of spaces per indent level (default: 2).
treefmt.config.programs.typstyle.lineWidth
Maximum line width in characters (default: 80).
treefmt.config.programs.typstyle.wrapText
Whether to enable line wrapping of markup text.
treefmt.config.programs.wgslfmt.enable
Whether to enable wgslfmt.
treefmt.config.programs.wgslfmt.tabs
Whether to enable Use tabs for indentation (instead of spaces).
treefmt.config.programs.xmllint.enable
Whether to enable xmllint.
treefmt.config.programs.yamlfmt.enable
Whether to enable yamlfmt.
treefmt.config.programs.yamlfmt.settings
Configuration for yamlfmt, see
for supported values.treefmt.config.programs.yamllint.enable
Whether to enable yamllint.
treefmt.config.programs.yamllint.settings
Configuration for yamllint, see
for supported values.treefmt.config.programs.yapf.enable
Whether to enable yapf.
treefmt.config.programs.zig.enable
Whether to enable zig.
treefmt.config.programs.zizmor.enable
Whether to enable zizmor.
treefmt.config.programs.zprint.enable
Whether to enable zprint.
treefmt.config.programs.zprint.zprintOpts
Clojure map containing zprint options.
treefmt.config.projectRootFile
File to look for to determine the root of the project in the build.wrapper. Set to null to let treefmt use its native detection.
treefmt.config.settings
The contents of treefmt.toml
treefmt.config.settings.excludes
A global list of paths to exclude. Supports glob.
treefmt.config.settings.formatter
Set of formatters to use
treefmt.config.settings.formatter.<name>.command
Executable obeying the treefmt formatter spec
treefmt.config.settings.formatter.<name>.excludes
List of files to exclude for formatting. Supports globbing. Takes precedence over the includes.
treefmt.config.settings.formatter.<name>.includes
List of files to include for formatting. Supports globbing.
treefmt.config.settings.formatter.<name>.options
List of arguments to pass to the command
treefmt.config.settings.on-unmatched
Log paths that did not match any formatters at the specified log level.
treefmt.enable
Whether to enable treefmt integration (through treefmt-nix).
unsetEnvVars
unsetEnvVars
A list of removed environment variables to make the shell/direnv more lean.

