Skill v1.0.0
currentAutomated scan100/100version: "1.0.0" 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 shelldevenv -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 modedevenv mcp --http # HTTP mode on port 8080
To wire it up automatically in a project, add to devenv.nix:
{# For Claude Codeclaude.code.mcpServers.devenv = {type = "stdio";command = "devenv";args = [ "mcp" ];};# For OpenCodeopencode.mcp.devenv = {type = "local";command = [ "devenv" "mcp" ];};}
A hosted instance is also available at https://mcp.devenv.sh.