[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5604":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":14,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},5604,"devenv","cachix\u002Fdevenv","cachix","Fast, Declarative, Reproducible, and Composable Developer Environments using Nix","https:\u002F\u002Fdevenv.sh",null,"Rust",6983,495,26,304,0,7,36,211,106.09,"Apache License 2.0",false,"main",[25,5,26],"developer-tools","nix","2026-06-12 04:00:25","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdevenv.sh\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"logos\u002Fdevenv-horizontal-light-bg.svg\">\n      \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"logos\u002Fdevenv-horizontal-dark-bg.svg\">\n      \u003Cimg src=\"logos\u002Fdevenv-horizontal-light-bg.svg\" width=\"500px\" alt=\"devenv logo\">\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n# [devenv.sh](https:\u002F\u002Fdevenv.sh) - Fast, Declarative, Reproducible, and Composable Developer Environments\n\n[![Built with devenv](https:\u002F\u002Fdevenv.sh\u002Fassets\u002Fdevenv-badge.svg)](https:\u002F\u002Fdevenv.sh)\n[![Built with Nix](https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?logo=nixos&logoColor=white&label=&message=Built%20with%20Nix&color=41439a)](https:\u002F\u002Fbuiltwithnix.org)\n[![Discord channel](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdynamic\u002Fjson?url=https%3A%2F%2Fdiscord.com%2Fapi%2Finvites%2FnaMgvexb6q%3Fwith_counts%3Dtrue&query=%24.approximate_member_count&logo=discord&logoColor=white&label=Discord%20users&color=green&style=flat)](https:\u002F\u002Fdiscord.gg\u002FnaMgvexb6q)\n![License: Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fcachix\u002Fdevenv)\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fcachix\u002Fdevenv?color=green&label=version&sort=semver)](https:\u002F\u002Fgithub.com\u002Fcachix\u002Fdevenv\u002Freleases)\n[![CI](https:\u002F\u002Fgithub.com\u002Fcachix\u002Fdevenv\u002Factions\u002Fworkflows\u002Frelease.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fcachix\u002Fdevenv\u002Factions\u002Fworkflows\u002Frelease.yml?branch=main)\n\n## Features\n\n### Developer experience\n\n- **[Terminal UI](https:\u002F\u002Fdevenv.sh\u002Fblog\u002F2025\u002F03\u002F05\u002Fdevenv-v20-a-fresh-interface-to-nix\u002F#terminal-ui)** with live build progress, task hierarchy, and error details\n- **[Native shell reloading](https:\u002F\u002Fdevenv.sh\u002Fblog\u002F2025\u002F03\u002F05\u002Fdevenv-v20-a-fresh-interface-to-nix\u002F#native-shell-reloading)** that rebuilds in the background while your shell stays interactive\n- **[Instant environments](https:\u002F\u002Fdevenv.sh\u002Fblog\u002F2024\u002F10\u002F03\u002Fdevenv-13-instant-developer-environments-with-nix-caching\u002F)** with incremental Nix evaluation caching (sub 100ms when nothing changed)\n- **[LSP for devenv.nix](https:\u002F\u002Fdevenv.sh\u002Flsp\u002F)** with autocomplete, hover docs, and go to definition via bundled nixd\n- **[Ad hoc environments](https:\u002F\u002Fdevenv.sh\u002Fad-hoc-developer-environments\u002F)** from the CLI without any config files (`--option languages.rust.enable:bool true`)\n- **[Out of tree devenvs](https:\u002F\u002Fdevenv.sh\u002Fad-hoc-developer-environments\u002F)** to use configs from other repos (`--from github:myorg\u002Fconfigs`)\n\n### Languages, packages, and services\n\n- **[50+ languages](https:\u002F\u002Fdevenv.sh\u002Flanguages\u002F)** with built in tooling: compilers, LSP servers, formatters, linters, and version selection\n- **[100,000+ packages](https:\u002F\u002Fdevenv.sh\u002Fpackages\u002F)** from Nixpkgs for Linux, macOS, x64, and ARM64 (including WSL2)\n- **[40+ services](https:\u002F\u002Fdevenv.sh\u002Fservices\u002F)** like PostgreSQL, Redis, MySQL, MongoDB, Elasticsearch, Caddy, and more\n\n### Processes and tasks\n\n- **[Native process manager](https:\u002F\u002Fdevenv.sh\u002Fprocesses\u002F)** written in Rust with dependency ordering, restart policies, readiness probes (exec, HTTP, systemd notify), socket activation, watchdog heartbeats, and file watching\n- **[Automatic port allocation](https:\u002F\u002Fdevenv.sh\u002Fprocesses\u002F#automatic-port-allocation)** that finds free ports so parallel environments never collide\n- **[Tasks](https:\u002F\u002Fdevenv.sh\u002Ftasks\u002F)** with DAG based execution, caching, parallel runs, and namespace support\n- **[Scripts](https:\u002F\u002Fdevenv.sh\u002Fscripts\u002F)** with access to all environment packages\n\n### Packaging and deployment\n\n- **[OCI containers](https:\u002F\u002Fdevenv.sh\u002Fcontainers\u002F)** built from your environment without Docker\n- **[Outputs](https:\u002F\u002Fdevenv.sh\u002Foutputs\u002F)** for packaging apps using each language's best tools (crate2nix, uv2nix, ...)\n- **[Polyrepo support](https:\u002F\u002Fdevenv.sh\u002Fguides\u002Fpolyrepo\u002F)** to reference outputs and options across repositories\n\n### Composition and configuration\n\n- **[Profiles](https:\u002F\u002Fdevenv.sh\u002Fprofiles\u002F)** for environment variants (`--profile backend --profile testing`)\n- **[Composable via imports](https:\u002F\u002Fdevenv.sh\u002Fcomposing-using-imports\u002F)** to share and reuse environments across projects\n- **[Inputs](https:\u002F\u002Fdevenv.sh\u002Finputs\u002F)** for pinning and overriding Nix dependencies\n\n### Security and integrations\n\n- **[SecretSpec](https:\u002F\u002Fdevenv.sh\u002Fintegrations\u002Fsecretspec\u002F)** for declarative, provider agnostic secrets management (keyring, 1Password, dotenv)\n- **[Git hooks](https:\u002F\u002Fdevenv.sh\u002Fgit-hooks\u002F)** via git-hooks.nix with pre configured formatters and linters\n- **[Testing](https:\u002F\u002Fdevenv.sh\u002Ftests\u002F)** with `devenv test` that automatically starts and stops processes\n- **[direnv integration](https:\u002F\u002Fdevenv.sh\u002Fintegrations\u002Fdirenv\u002F)** for automatic shell activation when entering a directory\n- **[MCP server](https:\u002F\u002Fdevenv.sh\u002Fmcp\u002F)** for AI assistant integration (package and option search)\n- **[AI generation](https:\u002F\u002Fdevenv.new)** to scaffold environments from a natural language description\n\n## Quick start\n\nRunning ``devenv init`` generates ``devenv.nix``:\n\n```nix\n{ pkgs, lib, config, inputs, ... }:\n\n{\n  # https:\u002F\u002Fdevenv.sh\u002Fbasics\u002F\n  env.GREET = \"devenv\";\n\n  # https:\u002F\u002Fdevenv.sh\u002Fpackages\u002F\n  packages = [ pkgs.git ];\n\n  # https:\u002F\u002Fdevenv.sh\u002Flanguages\u002F\n  # languages.rust.enable = true;\n\n  # https:\u002F\u002Fdevenv.sh\u002Fprocesses\u002F\n  # processes.dev.exec = \"${lib.getExe pkgs.watchexec} -n -- ls -la\";\n\n  # https:\u002F\u002Fdevenv.sh\u002Fservices\u002F\n  # services.postgres.enable = true;\n\n  # https:\u002F\u002Fdevenv.sh\u002Fscripts\u002F\n  scripts.hello.exec = ''\n    echo hello from $GREET\n  '';\n\n  # https:\u002F\u002Fdevenv.sh\u002Fbasics\u002F\n  enterShell = ''\n    hello         # Run scripts directly\n    git --version # Use packages\n  '';\n\n  # https:\u002F\u002Fdevenv.sh\u002Ftasks\u002F\n  # tasks = {\n  #   \"myproj:setup\".exec = \"mytool build\";\n  #   \"devenv:enterShell\".after = [ \"myproj:setup\" ];\n  # };\n\n  # https:\u002F\u002Fdevenv.sh\u002Ftests\u002F\n  enterTest = ''\n    echo \"Running tests\"\n    git --version | grep --color=auto \"${pkgs.git.version}\"\n  '';\n\n  # https:\u002F\u002Fdevenv.sh\u002Foutputs\u002F\n  # outputs = {\n  #   rust-app = config.languages.rust.import .\u002Frust-app {};\n  #   python-app = config.languages.python.import .\u002Fpython-app {};\n  # };\n\n  # https:\u002F\u002Fdevenv.sh\u002Fgit-hooks\u002F\n  # git-hooks.hooks.shellcheck.enable = true;\n\n  # See full reference at https:\u002F\u002Fdevenv.sh\u002Freference\u002Foptions\u002F\n}\n\n```\n\nAnd ``devenv shell`` activates the environment.\n\n## Commands\n\n```\n$ devenv\nhttps:\u002F\u002Fdevenv.sh 2.0.0: Fast, Declarative, Reproducible, and Composable Developer Environments\n\nUsage: devenv [OPTIONS] [COMMAND]\n\nCommands:\n  init        Scaffold devenv.yaml, devenv.nix, and .gitignore.\n  generate    Generate devenv.yaml and devenv.nix using AI\n  shell       Activate the developer environment. https:\u002F\u002Fdevenv.sh\u002Fbasics\u002F\n  update      Update devenv.lock from devenv.yaml inputs. http:\u002F\u002Fdevenv.sh\u002Finputs\u002F\n  search      Search for packages and options in nixpkgs. https:\u002F\u002Fdevenv.sh\u002Fpackages\u002F#searching-for-a-file\n  info        Print information about this developer environment.\n  up          Start processes in the foreground. https:\u002F\u002Fdevenv.sh\u002Fprocesses\u002F\n  processes   Start or stop processes. https:\u002F\u002Fdevenv.sh\u002Fprocesses\u002F\n  tasks       Run tasks. https:\u002F\u002Fdevenv.sh\u002Ftasks\u002F\n  test        Run tests. http:\u002F\u002Fdevenv.sh\u002Ftests\u002F\n  container   Build, copy, or run a container. https:\u002F\u002Fdevenv.sh\u002Fcontainers\u002F\n  inputs      Add an input to devenv.yaml. https:\u002F\u002Fdevenv.sh\u002Finputs\u002F\n  changelogs  Show relevant changelogs.\n  repl        Launch an interactive environment for inspecting the devenv configuration.\n  gc          Delete previous shell generations. See https:\u002F\u002Fdevenv.sh\u002Fgarbage-collection\n  build       Build any attribute in devenv.nix.\n  eval        Evaluate any attribute in devenv.nix and return JSON.\n  direnvrc    Print a direnvrc that adds devenv support to direnv. See https:\u002F\u002Fdevenv.sh\u002Fintegrations\u002Fdirenv\u002F.\n  version     Print the version of devenv.\n  mcp         Launch Model Context Protocol server for AI assistants\n  lsp         Start the nixd language server for devenv.nix.\n  help        Print this message or the help of the given subcommand(s)\n\nInput overrides:\n      --from \u003CFROM>\n          Source for devenv.nix.\n\n          Can be either a filesystem path (with path: prefix) or a flake input reference.\n\n          Examples:\n            --from github:cachix\u002Fdevenv\n            --from github:cachix\u002Fdevenv?dir=examples\u002Fsimple\n            --from path:\u002Fabsolute\u002Fpath\u002Fto\u002Fproject\n            --from path:.\u002Frelative\u002Fpath\n\n  -o, --override-input \u003CNAME> \u003CURI>\n          Override inputs in devenv.yaml.\n\n          Examples:\n            --override-input nixpkgs github:NixOS\u002Fnixpkgs\u002Fnixos-unstable\n            --override-input nixpkgs path:\u002Fpath\u002Fto\u002Flocal\u002Fnixpkgs\n\n  -O, --option \u003COPTION:TYPE> \u003CVALUE>\n          Override configuration options with typed values.\n\n          OPTION must include a type: \u003Cattribute>:\u003Ctype>\n          Supported types: string, int, float, bool, path, pkg, pkgs\n\n          List types (pkgs) append to existing values by default.\n          Add a ! suffix to replace instead: pkgs!\n\n          Examples:\n            --option languages.rust.channel:string beta\n            --option services.postgres.enable:bool true\n            --option languages.python.version:string 3.10\n            --option packages:pkgs \"ncdu git\"       (appends to packages)\n            --option packages:pkgs! \"ncdu git\"      (replaces all packages)\n\nNix options:\n  -j, --max-jobs \u003CMAX_JOBS>\n          Maximum number of Nix builds to run concurrently.\n\n          Defaults to 1\u002F4 of available CPU cores (minimum 1).\n\n          [env: DEVENV_MAX_JOBS=]\n\n  -u, --cores \u003CCORES>\n          Number of CPU cores available to each build.\n\n          Defaults to available cores divided by max-jobs (minimum 1).\n\n          [env: DEVENV_CORES=]\n\n  -s, --system \u003CSYSTEM>\n          Override the target system.\n\n          Defaults to the host system (e.g. aarch64-darwin, x86_64-linux).\n\n  -i, --impure\n          Relax the hermeticity of the environment.\n\n      --no-impure\n          Force a hermetic environment, overriding config.\n\n      --offline\n          Disable substituters and consider all previously downloaded files up-to-date.\n\n      --nix-option \u003CNAME> \u003CVALUE>\n          Pass additional options to nix commands.\n\n          These options are passed directly to Nix using the --option flag.\n          See `man nix.conf` for the full list of available options.\n\n          Examples:\n            --nix-option sandbox false\n            --nix-option keep-outputs true\n            --nix-option system x86_64-darwin\n\n      --nix-debugger\n          Enter the Nix debugger on failure.\n\nShell options:\n  -c, --clean [\u003CCLEAN>...]\n          Ignore existing environment variables when entering the shell. Pass a list of comma-separated environment variables to let through.\n\n  -P, --profile \u003CPROFILES>\n          Activate one or more profiles defined in devenv.nix.\n\n          Profiles allow you to define different configurations that can be merged with your base configuration.\n\n          See https:\u002F\u002Fdevenv.sh\u002Fprofiles for more information.\n\n          Examples:\n            --profile python-3.14\n            --profile backend --profile fast-startup\n\n      --reload\n          Enable auto-reload when config files change (default).\n\n      --no-reload\n          Disable auto-reload when config files change.\n\nCache options:\n      --eval-cache\n          Enable caching of Nix evaluation results (default).\n\n      --no-eval-cache\n          Disable caching of Nix evaluation results.\n\n      --refresh-eval-cache\n          Force a refresh of the Nix evaluation cache.\n\n      --refresh-task-cache\n          Force a refresh of the task cache.\n\nSecretspec options:\n      --secretspec-provider \u003CSECRETSPEC_PROVIDER>\n          Override the secretspec provider\n\n          [env: SECRETSPEC_PROVIDER=]\n\n      --secretspec-profile \u003CSECRETSPEC_PROFILE>\n          Override the secretspec profile\n\n          [env: SECRETSPEC_PROFILE=]\n\nTracing options:\n      --trace-output \u003CTRACE_OUTPUT>\n          Enable tracing and set the output destination: stdout, stderr, or file:\u003Cpath>. Tracing is disabled by default.\n\n          [env: DEVENV_TRACE_OUTPUT=]\n\n      --trace-format \u003CTRACE_FORMAT>\n          Set the trace output format. Only takes effect when tracing is enabled via --trace-output.\n\n          Possible values:\n          - full:   A verbose structured log format used for debugging\n          - json:   A JSON log format used for machine consumption\n          - pretty: A pretty human-readable log format used for debugging\n\n          [env: DEVENV_TRACE_FORMAT=]\n          [default: json]\n\nGlobal options:\n  -v, --verbose\n          Enable additional debug logs.\n\n  -q, --quiet\n          Silence all logs\n\n      --tui\n          Enable the interactive terminal interface (default when interactive).\n\n          [env: DEVENV_TUI=]\n\n      --no-tui\n          Disable the interactive terminal interface.\n\n  -h, --help\n          Print help (see a summary with '-h')\n\n  -V, --version\n          Print version information and exit\n```\n\n## Documentation\n\n- [Getting Started](https:\u002F\u002Fdevenv.sh\u002Fgetting-started\u002F)\n- [Basics](https:\u002F\u002Fdevenv.sh\u002Fbasics\u002F)\n- [Roadmap](https:\u002F\u002Fdevenv.sh\u002Froadmap\u002F)\n- [Blog](https:\u002F\u002Fdevenv.sh\u002Fblog\u002F)\n- [`devenv.yaml` reference](https:\u002F\u002Fdevenv.sh\u002Freference\u002Fyaml-options\u002F)\n- [`devenv.nix` reference](https:\u002F\u002Fdevenv.sh\u002Freference\u002Foptions\u002F)\n- [Contributing](https:\u002F\u002Fdevenv.sh\u002Fcommunity\u002Fcontributing\u002F)\n","cachix\u002Fdevenv 是一个基于 Nix 的快速、声明式、可复现且可组合的开发者环境工具。它利用 Rust 语言开发，提供终端用户界面以实时显示构建进度和错误详情，支持原生 shell 重载使得在后台重建时保持交互性，并通过增量 Nix 评估缓存实现几乎即时的环境启动。此外，它还为 `devenv.nix` 文件提供了 LSP 支持，包括自动补全、悬停文档等功能。该项目内置了超过 50 种编程语言及其工具链，以及来自 Nixpkgs 的数十万种软件包和服务，适用于多种操作系统平台。devenv 非常适合需要高度一致性和快速部署开发环境的团队和个人使用，在保证开发效率的同时减少因环境差异导致的问题。",2,"2026-06-11 03:04:19","top_language"]