id = "invoke" name = "Invoke" homepage = "https://docs.pyinvoke.org/" description = "Invoke is a Python task execution tool and library." executables = ["invoke", "inv"] [dotfiles] # Invoke's official configuration hierarchy # (https://docs.pyinvoke.org/en/latest/concepts/configuration.html) names the # user file as ~/.invoke.yaml and says YAML, YML, JSON and Python extensions # are searched in that order. paths = ["~/.invoke.yaml", "~/.invoke.yml", "~/.invoke.json", "~/.invoke.py"] exclude = [] secret = [] [commands] format = 1 label = "Run tasks" description = "Run one or more tasks from tasks.py with Invoke's core options. Per-task options are written after each task name and are not part of this form; --list and --help are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "posix", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "docs" kind = "manual" url = "https://docs.pyinvoke.org/en/stable/invoke.html" revision = "2026-10-27" evidence = """ $ inv[oke] [--core-opts] task1 [--task1-opts] ... taskN [--taskN-opts] [-- remainder-opts-or-values] -c STRING , --collection =STRING Specify collection name to load. -d , --debug Enable debug output. --dry Echo commands instead of actually running them -e , --echo Echo executed commands before running. -f , --config Specify a runtime configuration file to load. -p , --pty Use a pty when executing shell commands. -r STRING , --search-root =STRING Change root directory used for finding task modules. -T INT , --command-timeout =INT Set a default command execution timeout of INT seconds. -w , --warn-only Warn, instead of failing, when shell commands fail. """ [[commands.field]] id = "tasks" label = "Tasks" description = "One or more task names, in order." type = "string" position = 0 multiple = true sources = ["docs"] [[commands.field]] id = "echo" label = "Echo commands" type = "boolean" option = ["--echo", "-e"] sources = ["docs"] [[commands.field]] id = "dry" label = "Dry run" description = "Print commands instead of running them." type = "boolean" option = ["--dry"] sources = ["docs"] [[commands.field]] id = "pty" label = "Use a pty" type = "boolean" option = ["--pty", "-p"] sources = ["docs"] [[commands.field]] id = "warn_only" label = "Warn only on failure" type = "boolean" option = ["--warn-only", "-w"] sources = ["docs"] [[commands.field]] id = "debug" label = "Debug output" type = "boolean" option = ["--debug", "-d"] sources = ["docs"] [[commands.field]] id = "collection" label = "Collection name" type = "string" option = ["--collection", "-c"] sources = ["docs"] [[commands.field]] id = "search_root" label = "Search root" type = "path" path = { kind = "directory", role = "input" } option = ["--search-root", "-r"] sources = ["docs"] [[commands.field]] id = "config" label = "Runtime config file" type = "path" path = { kind = "file", role = "input" } option = ["--config", "-f"] sources = ["docs"] [[commands.field]] id = "command_timeout" label = "Command timeout (seconds)" type = "integer" option = ["--command-timeout", "-T"] sources = ["docs"] [[commands.task]] id = "run" label = "Run tasks" fields = ["tasks", "echo"] required = ["tasks"] [[commands.task]] id = "dry_run" label = "Dry run tasks" fields = ["tasks", "dry", "echo"] required = ["tasks"] set = { dry = [true], echo = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["tasks", "echo", "dry", "pty", "warn_only"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["debug", "collection", "search_root", "config", "command_timeout"]