id = "block-goose-cli" name = "Goose" homepage = "https://block-goose.mintlify.app/" description = "An open-source AI agent that automates complex development tasks." executables = ["goose"] [dotfiles] # https://block-goose.mintlify.app/configuration — Goose stores provider and # extension configuration in ~/.config/goose/config.yaml. Its environment # variable guide documents ~/.config/goose/secrets.yaml as the encrypted-file # fallback when the OS keyring is unavailable. paths = ["~/.config/goose/config.yaml"] secret = [ "~/.config/goose/secrets.yaml", "%APPDATA%/Block/goose/config/secrets.yaml", ] side_effect = false [commands] format = 1 label = "goose" description = "Run goose non-interactively with a prompt or instruction file. Recipes, extensions and the other subcommands are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["run"] label = "Run a task" description = "Give goose text or an instruction file and let it work." [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://goose-docs.ai/docs/guides/goose-cli-commands" revision = "main 2026-10-27" evidence = """ - **`-i, --instructions `**: Path to instruction file containing commands. Use `-` for stdin - **`-t, --text `**: Input text to provide to goose directly - **`-s, --interactive`**: Continue in interactive mode after processing initial input - **`-n, --name `**: Name for this run session (e.g. `daily-tasks`) - **`-r, --resume`**: Resume from a previous run - **`--no-session`**: Run goose commands without creating or storing a session file - **`--debug`**: Output complete tool responses, detailed parameter values, and full file paths - **`--max-turns `**: Maximum number of turns allowed without user input (default: 1000) - **`-q, --quiet`**: Quiet mode. Suppress non-response output, printing only the model response to stdout - **`--output-format `**: Output format (`text`, `json`, or `stream-json`). Default is `text`. Use JSON structured output for automation and scripting: `json` for results after completion, `stream-json` for events as they occur - **`--provider`**: Specify the provider to use for this session (overrides environment variable) - **`--model`**: Specify the model to use for this session (overrides environment variable) """ [[commands.subcommand.field]] id = "text" label = "Prompt text" type = "string" option = ["--text", "-t"] sources = ["docs"] [[commands.subcommand.field]] id = "instructions" label = "Instruction file" type = "path" option = ["--instructions", "-i"] path = { kind = "file", role = "input", must_exist = true } sources = ["docs"] [[commands.subcommand.field]] id = "interactive" label = "Stay interactive afterwards" type = "boolean" option = ["--interactive", "-s"] sources = ["docs"] [[commands.subcommand.field]] id = "name" label = "Session name" type = "string" option = ["--name", "-n"] sources = ["docs"] [[commands.subcommand.field]] id = "resume" label = "Resume previous run" type = "boolean" option = ["--resume", "-r"] sources = ["docs"] [[commands.subcommand.field]] id = "no_session" label = "Don't store a session" type = "boolean" option = ["--no-session"] sources = ["docs"] [[commands.subcommand.field]] id = "quiet" label = "Quiet (response only)" type = "boolean" option = ["--quiet", "-q"] sources = ["docs"] [[commands.subcommand.field]] id = "output_format" label = "Output format" type = "enum" option = ["--output-format"] choices = [ { value = "text", label = "Text" }, { value = "json", label = "JSON" }, { value = "stream-json", label = "Streaming JSON" }, ] sources = ["docs"] [[commands.subcommand.field]] id = "provider" label = "Provider" type = "string" option = ["--provider"] sources = ["docs"] [[commands.subcommand.field]] id = "model" label = "Model" type = "string" option = ["--model"] sources = ["docs"] [[commands.subcommand.field]] id = "max_turns" label = "Max turns without input" type = "integer" option = ["--max-turns"] sources = ["docs"] [[commands.subcommand.field]] id = "debug" label = "Debug output" type = "boolean" option = ["--debug"] sources = ["docs"] [[commands.subcommand.task]] id = "prompt" label = "Run a prompt" fields = ["text", "quiet", "no_session"] required = ["text"] [[commands.subcommand.task]] id = "file" label = "Run an instruction file" fields = ["instructions", "name", "quiet"] required = ["instructions"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["text", "instructions", "interactive", "name", "quiet"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["resume", "no_session", "output_format", "provider", "model", "max_turns", "debug"]