name: devenv-setup description: Set up and configure devenv developer environments. Use when the user wants to create a devenv.nix, add languages, services, packages, or configure a reproducible development environment.
devenv Setup
When to use
Use this skill when:
- Creating a new
devenv.nixconfiguration - Adding programming languages, services, or packages
- Configuring processes, tasks, or git hooks
- Setting up a reproducible developer environment
Quick start
Initialize a new project:
devenv init
This creates devenv.nix and devenv.yaml in the current directory.
For installation instructions, see https://devenv.sh/getting-started/.
Configuration
devenv.nix
The main configuration file. Example:
{ pkgs, ... }:
{
packages = [ pkgs.git pkgs.curl ];
languages.rust.enable = true;
services.postgres.enable = true;
processes.server.exec = "cargo run";
}
devenv.yaml
Defines inputs and imports:
inputs:
nixpkgs:
url: github:cachix/devenv-nixpkgs/rolling
Key features
- Languages:
languages.<name>.enable = true;— supports 50+ languages - Services:
services.<name>.enable = true;— supports 100+ services (postgres, redis, etc.) - Packages:
packages = [ pkgs.<name> ];— any package from nixpkgs - Processes:
processes.<name>.exec = "command";— managed background processes - Scripts:
scripts.<name>.exec = "command";— custom shell scripts - Tasks:
tasks.<name>.exec = "command";— DAG-based task execution - Git hooks:
git-hooks.hooks.<name>.enable = true;— pre-commit hooks - Containers:
containers."<name>" = { ... };— OCI containers
Ad-hoc environments
Run commands in a temporary environment without creating files:
devenv -O languages.rust.enable:bool true shell
devenv -O languages.python.enable:bool true -O packages:pkgs "nodejs git" shell -- node --version
Commands
devenv shell— enter the development shelldevenv up— start all processesdevenv test— run testsdevenv build— build outputsdevenv search <query>— search for packagesdevenv update— update all inputsdevenv update <name>— update a specific input
MCP server
devenv provides an MCP server with search_packages and search_options tools.
Use it for looking up available packages and configuration options.
devenv mcp # stdio mode
devenv mcp --http # HTTP mode on port 8080
To wire it up automatically in a project, add to devenv.nix:
{
# For Claude Code
claude.code.mcpServers.devenv = {
type = "stdio";
command = "devenv";
args = [ "mcp" ];
};
# For OpenCode
opencode.mcp.devenv = {
type = "local";
command = [ "devenv" "mcp" ];
};
}
A hosted instance is also available at https://mcp.devenv.sh.