Sobre o projeto

devenv cria ambientes de desenvolvimento reproduzíveis sobre Nix, configurados por meio de devenv.nix e devenv.yaml. Ele prioriza iteração rápida: cache incremental de avaliação Nix, uma interface de terminal com progresso de build ao vivo e recarregamento nativo do shell que reconstrói em segundo plano enquanto o shell permanece interativo. Um LSP integrado baseado em nixd fornece autocompletar, documentação ao passar o mouse e ir para definição para devenv.nix. Ambientes podem ser criados ad hoc a partir da CLI sem arquivos de configuração, ou obtidos de outros repositórios com --from, e opções de configuração podem ser sobrescritas com valores tipados, como --option services.postgres.enable:bool true. A cobertura inclui mais de 50 linguagens com compiladores, servidores LSP, formatadores, linters e seleção de versão; mais de 100.000 pacotes do Nixpkgs para Linux, macOS, x64 e ARM64, incluindo WSL2; e mais de 40 serviços como PostgreSQL, Redis, MySQL, MongoDB, Elasticsearch e Caddy. Um gerenciador de processos nativo escrito em Rust lida com ordenação de dependências, políticas de reinício, sondas de prontidão (exec, HTTP, systemd notify), ativação por socket, heartbeats de watchdog e observação de arquivos, além de alocação automática de portas livres. Tarefas suportam execução baseada em DAG, cache, execuções paralelas e namespaces, e scripts são executados com acesso a todos os pacotes do ambiente. Recursos de empacotamento e implantação incluem construir contêineres OCI a partir do ambiente sem Docker, saídas para empacotar aplicativos com ferramentas específicas de linguagem e suporte a polyrepo para referenciar saídas e opções entre repositórios. A composição é tratada por meio de profiles, imports e inputs fixados ou sobrescritos. As integrações abrangem SecretSpec para gerenciamento declarativo de segredos, git hooks via git-hooks.nix, testes com devenv test que inicia e para processos automaticamente, direnv para ativação automática do shell, um servidor MCP para integração com assistentes de IA e geração de ambientes baseada em IA a partir de uma descrição em linguagem natural. A CLI oferece comandos incluindo init, generate, shell, update, search, info, up, processes, tasks, test, container, inputs, changelogs, repl, gc, build, eval, direnvrc, version, mcp e lsp, além de opções para concorrência de build Nix, hermeticidade, modo offline, profiles, cache de avaliação e saída de rastreamento.