devenv-tasks-run(1)

๐Ÿ“ฆ
version 2.4.0 ยท 2 versions
, in nixpkgs unstable

๐Ÿ’… devenv-tasks-run โ€” Run tasks

okay so this is the devenv-tasks-run(1) page, from the General Commands Manual bestie, and it does exactly one thing but does it thoroughly: it runs tasks โœจ


๐ŸŒธ NAME ๐ŸŒธ

devenv-tasks-run โ€” Run tasks.

๐ŸŽ€ SYNOPSIS ๐ŸŽ€

devenv tasks run [-m|--mode] [--show-output] [--input] [--input-json]
[--user-config] [--from] [-o|--override-input] [-O|--option]
[-j|--max-jobs] [-u|--cores] [-s|--system] [-i|--impure] [--no-impure]
[--offline] [--nix-option] [--nix-debugger] [-c|--clean] [-P|--profile]
[--reload] [--no-reload] [--shell] [--eval-cache] [--no-eval-cache]
[--refresh-eval-cache] [--refresh-task-cache] [--secretspec-provider]
[--secretspec-profile] [--trace-to] [-v|--verbose] [-q|--quiet] [--tui]
[--no-tui] [-h|--help] [TASKS]

like, the whole guest list is here. iconic.

๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

Run tasks.

(that's the whole description in the original, and honestly? she said it all. main character energy, minimal words ๐Ÿ’…)

โœจ OPTIONS โœจ

  • -m, --mode <MODE> โ€” the execution mode for tasks (it affects dependency resolution). default: before. the possible values are giving choose your adventure:
    • single: run only the specified task, no dependencies, you're on your own bestie
    • after: run the specified task and the tasks that run after it (downstream tasks)
    • before: run all dependency tasks first, then the specified task (upstream tasks)
    • all: run the specified task together with its upstream and downstream tasks, the whole squad
  • --show-output โ€” show task output for all tasks (it's equivalent to --verbose for tasks). lowkey just "let me see everything" mode ๐Ÿซถ
  • --input <KEY=VALUE> โ€” set a task input value. repeatable! the value gets parsed as JSON if it's valid, otherwise it's treated as a string. flexible king.
  • --input-json <JSON> โ€” set task inputs from a JSON object string. one blob, all the inputs ๐Ÿ’–
  • --user-config <USER_CONFIG> โ€” use this user configuration file instead of the XDG default. pick your own file, no default behavior for you โœจ
  • [TASKS] โ€” the tasks. the actual tasks. yeah.

๐ŸŒˆ INPUT OVERRIDES ๐ŸŒˆ

  • --from <FROM> โ€” source for devenv.nix.

can be either a filesystem path (with a path: prefix) or a flake input reference. slay, both options.

examples:

--from github:cachix/devenv
--from github:cachix/devenv?dir=examples/simple
--from path:/absolute/path/to/project
--from path:./relative/path
  • -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:TYPE> <VALUE> โ€” override configuration options with typed values. ngl this one's the โœจfancyโœจ one.

OPTION must include a type, in the form <attribute>:<type>. supported types: string, int, float, bool, path, pkg, pkgs.

list types (pkgs) append to existing values by default. add a ! suffix to replace instead: pkgs!

examples:

--option languages.rust.channel:string beta
--option services.postgres.enable:bool true
--option languages.python.version:string 3.10
--option packages:pkgs "ncdu git"       (appends to packages)
--option packages:pkgs! "ncdu git"      (replaces all packages)

see that !? that's the difference between "add to my collection" and "burn it all down and start fresh" ๐Ÿ’€

๐Ÿ”ฅ NIX OPTIONS ๐Ÿ”ฅ

  • -j, --max-jobs <MAX_JOBS> โ€” maximum number of Nix builds to run concurrently.

defaults to 1/4 of the available CPU cores (minimum 1). yes, minimum 1, she's not letting you set it to zero.

  • -u, --cores <CORES> โ€” number of CPU cores available to each build.

defaults to the available cores divided by max-jobs (minimum 1). math! ๐Ÿงฎ

  • -s, --system <SYSTEM> โ€” override the target system.

defaults to the host system (e.g. aarch64-darwin, x86_64-linux).

  • -i, --impure โ€” relax the hermeticity of the environment. breaking out of the clean room, respectfully.
  • --no-impure โ€” force a hermetic environment, overriding config. back in the clean room, no cap.
  • --offline โ€” disable substituters and consider all previously downloaded files up-to-date. airplane mode realness โœˆ๏ธ
  • --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
  • --nix-debugger โ€” enter the Nix debugger on failure. when things go sideways, you go in ๐Ÿ•ต๏ธโ€โ™€๏ธ

๐Ÿš SHELL OPTIONS ๐Ÿš

  • -c, --clean [<CLEAN>...] โ€” ignore existing environment variables when entering the shell. pass a list of comma-separated environment variables to let through. spring cleaning but you get to pick who survives ๐Ÿงน
  • -P, --profile <PROFILES> โ€” activate one or more profiles defined in devenv.nix.

profiles let you define different configurations that can be merged with your base configuration.

see https://devenv.sh/profiles for more information.

examples:

--profile python-3.14
--profile backend --profile fast-startup
  • --reload โ€” enable auto-reload when config files change (default). she's always watching.
  • --no-reload โ€” disable auto-reload when config files change. she's off duty.
  • --shell <SHELL_TYPE> โ€” shell to use for interactive sessions (bash, zsh, fish, nu).

possible values:

  • bash
  • zsh
  • fish
  • nu

๐Ÿ’œ CACHE OPTIONS ๐Ÿ’œ

  • --eval-cache โ€” enable caching of Nix evaluation results (default). work smarter etc.
  • --no-eval-cache โ€” disable caching of Nix evaluation results. doing it the hard way fr.
  • --refresh-eval-cache โ€” force a refresh of the Nix evaluation cache. out with the old.
  • --refresh-task-cache โ€” force a refresh of the task cache. also out with the old, but for tasks.

๐Ÿ” SECRETSPEC OPTIONS ๐Ÿ”

  • --secretspec-provider <SECRETSPEC_PROVIDER> โ€” override the secretspec provider.
  • --secretspec-profile <SECRETSPEC_PROFILE> โ€” override the secretspec profile.

(secrets stay secret, bestie ๐Ÿคซ)

โญ TRACING OPTIONS โญ

  • --trace-to <TRACE_TO> โ€” enable tracing and set output destination(s). can be repeated for multiple outputs ๐Ÿ”

syntax: [format:]destination

examples:

--trace-to stderr                              # json to stderr
--trace-to pretty:stderr                       # pretty format to stderr
--trace-to json:file:/tmp/trace.json           # JSON to file
--trace-to otlp-grpc                           # OTLP gRPC to default endpoint
--trace-to otlp-grpc:http://collector:4317     # OTLP gRPC to custom endpoint

multiple outputs:

--trace-to pretty:stderr --trace-to json:file:/tmp/t.json

destinations: stdout, stderr, file:<path>, http(s)://<host>:<port>. formats: json (default), pretty, full, otlp-grpc, otlp-http-protobuf, otlp-http-json.

when format is omitted, it defaults to json. tracing is disabled by default.

[env: DEVENV_TRACE_TO=] (comma-separated) [env: DEVENV_TRACE_DEFAULT_TO=] (comma-separated, used only when no explicit tracing is configured; set to empty string to suppress)

okay so those two env vars matter: DEVENV_TRACE_TO is the comma-separated one, and DEVENV_TRACE_DEFAULT_TO is also comma-separated but only used when you haven't configured explicit tracing โ€” set it to an empty string if you want to suppress it ๐Ÿซก

๐Ÿ‘‘ GLOBAL OPTIONS ๐Ÿ‘‘

  • -v, --verbose โ€” enable additional debug logs. she's telling you everything.
  • -q, --quiet โ€” silence all logs ๐Ÿค
  • --tui <TUI> โ€” enable the interactive terminal interface (default when interactive). possible values: true, false.
  • --no-tui โ€” disable the interactive terminal interface.
  • -h, --help โ€” print help (see a summary with -h).

and that's the page, bestie ๐ŸŽ€ every flag, every default, every example, preserved like a limited-edition collector's item. the manual is from run (that's the source/version chilling in the footer, right next to devenv-tasks-run(1)) and the date slot is literally empty in there โ€” not me leaving a blank in the group chat, that's just how the page ships ๐Ÿ™ˆ๐Ÿ’–

go run your tasks. periodt ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from