AI prompts
base on Fast, Declarative, Reproducible, and Composable Developer Environments using Nix <p align="center">
<a href="https://devenv.sh">
<picture>
<source media="(prefers-color-scheme: light)" srcset="logos/devenv-horizontal-light-bg.svg">
<source media="(prefers-color-scheme: dark)" srcset="logos/devenv-horizontal-dark-bg.svg">
<img src="logos/devenv-horizontal-light-bg.svg" width="500px" alt="devenv logo">
</picture>
</a>
</p>
# [devenv.sh](https://devenv.sh) - Fast, Declarative, Reproducible, and Composable Developer Environments
[](https://builtwithnix.org)
[](https://discord.gg/naMgvexb6q)

[](https://github.com/cachix/devenv/releases)
[](https://github.com/cachix/devenv/actions/workflows/buildtest.yml?branch=main)
Running ``devenv init`` generates ``devenv.nix``:
```nix
{ pkgs, ... }:
{
# https://devenv.sh/basics/
env.GREET = "devenv";
# https://devenv.sh/packages/
packages = [ pkgs.git ];
enterShell = ''
hello
'';
# https://devenv.sh/tests/
enterTest = ''
echo "Running tests"
git --version | grep --color=auto "${pkgs.git.version}"
'';
# https://devenv.sh/languages/
languages.nix.enable = true;
# https://devenv.sh/scripts/
scripts.hello.exec = "echo hello from $GREET";
# https://devenv.sh/services/
services.postgres.enable = true;
# https://devenv.sh/git-hooks/
git-hooks.hooks.shellcheck.enable = true;
# https://devenv.sh/processes/
processes.ping.exec = "ping localhost";
}
```
And ``devenv shell`` activates the environment.
## Commands
```
$ devenv
https://devenv.sh 1.6.0: Fast, Declarative, Reproducible, and Composable Developer Environments
Usage: devenv [OPTIONS] [COMMAND]
Commands:
init Scaffold devenv.yaml, devenv.nix, .gitignore and .envrc.
generate Generate devenv.yaml and devenv.nix using AI
shell Activate the developer environment. https://devenv.sh/basics/
update Update devenv.lock from devenv.yaml inputs. http://devenv.sh/inputs/
search Search for packages and options in nixpkgs. https://devenv.sh/packages/#searching-for-a-file
info Print information about this developer environment.
up Start processes in the foreground. https://devenv.sh/processes/
processes Start or stop processes. https://devenv.sh/processes/
tasks Run tasks. https://devenv.sh/tasks/
test Run tests. http://devenv.sh/tests/
container Build, copy, or run a container. https://devenv.sh/containers/
inputs Add an input to devenv.yaml. https://devenv.sh/inputs/
repl Launch an interactive environment for inspecting the devenv configuration.
gc Delete previous shell generations. See https://devenv.sh/garbage-collection
build Build any attribute in devenv.nix.
direnvrc Print a direnvrc that adds devenv support to direnv. See https://devenv.sh/automatic-shell-activation.
version Print the version of devenv.
help Print this message or the help of the given subcommand(s)
Options:
-V, --version
Print version information and exit
-v, --verbose
Enable additional debug logs.
-q, --quiet
Silence all logs
--log-format <LOG_FORMAT>
Configure the output format of the logs.
[default: cli]
Possible values:
- cli: The default human-readable log format used in the CLI
- tracing-full: A verbose structured log format used for debugging
- tracing-pretty: A pretty human-readable log format used for debugging
-j, --max-jobs <MAX_JOBS>
Maximum number of Nix builds at any time.
[default: 8]
-u, --cores <CORES>
Maximum number CPU cores being used by a single build.
[default: 2]
-s, --system <SYSTEM>
[default: x86_64-linux]
-i, --impure
Relax the hermeticity of the environment.
--no-eval-cache
Disable caching of Nix evaluation results.
--refresh-eval-cache
Force a refresh of the Nix evaluation cache.
--offline
Disable substituters and consider all previously downloaded files up-to-date.
-c, --clean [<CLEAN>...]
Ignore existing environment variables when entering the shell. Pass a list of comma-separated environment variables to let through.
--nix-debugger
Enter the Nix debugger on failure.
-n, --nix-option <NAME> <VALUE>
Pass additional options to nix commands.
These options are passed directly to Nix using the --option flag.
See `man nix.conf` for the full list of available options.
Examples:
--nix-option sandbox false
--nix-option keep-outputs true
--nix-option system x86_64-darwin
-o, --override-input <NAME> <URI>
Override inputs in devenv.yaml.
Examples:
--override-input nixpkgs github:NixOS/nixpkgs/nixos-unstable
--override-input nixpkgs path:/path/to/local/nixpkgs
-O, --option <OPTION> <VALUE>
Override configuration options with typed values.
OPTION must include a type: <attribute>:<type>
Supported types: string, int, float, bool, path
Examples:
--option languages.rust.channel:string beta
--option services.postgres.enable:bool true
--option languages.python.version:string 3.10
-h, --help
Print help (see a summary with '-h')
```
## Documentation
- [Getting Started](https://devenv.sh/getting-started/)
- [Basics](https://devenv.sh/basics/)
- [Roadmap](https://devenv.sh/roadmap/)
- [Blog](https://devenv.sh/blog/)
- [`devenv.yaml` reference](https://devenv.sh/reference/yaml-options/)
- [`devenv.nix` reference](https://devenv.sh/reference/options/)
- [Contributing](https://devenv.sh/community/contributing/)
", Assign "at most 3 tags" to the expected json: {"id":"14355","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"