{
  "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": {
    "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
    },
    "subcommand": [
      {
        "path": [
          "run"
        ],
        "label": "Run a task",
        "description": "Give goose text or an instruction file and let it work.",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://goose-docs.ai/docs/guides/goose-cli-commands",
            "revision": "main 2026-10-27",
            "evidence": "- **`-i, --instructions <FILE>`**: Path to instruction file containing commands. Use `-` for stdin\n- **`-t, --text <TEXT>`**: Input text to provide to goose directly\n- **`-s, --interactive`**: Continue in interactive mode after processing initial input\n- **`-n, --name <name>`**: Name for this run session (e.g. `daily-tasks`)\n- **`-r, --resume`**: Resume from a previous run\n- **`--no-session`**: Run goose commands without creating or storing a session file\n- **`--debug`**: Output complete tool responses, detailed parameter values, and full file paths\n- **`--max-turns <NUMBER>`**: Maximum number of turns allowed without user input (default: 1000)\n- **`-q, --quiet`**: Quiet mode. Suppress non-response output, printing only the model response to stdout\n- **`--output-format <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\n- **`--provider`**: Specify the provider to use for this session (overrides environment variable)\n- **`--model`**: Specify the model to use for this session (overrides environment variable)\n"
          }
        ],
        "field": [
          {
            "id": "text",
            "label": "Prompt text",
            "type": "string",
            "option": [
              "--text",
              "-t"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "instructions",
            "label": "Instruction file",
            "type": "path",
            "option": [
              "--instructions",
              "-i"
            ],
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "docs"
            ]
          },
          {
            "id": "interactive",
            "label": "Stay interactive afterwards",
            "type": "boolean",
            "option": [
              "--interactive",
              "-s"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "name",
            "label": "Session name",
            "type": "string",
            "option": [
              "--name",
              "-n"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "resume",
            "label": "Resume previous run",
            "type": "boolean",
            "option": [
              "--resume",
              "-r"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "no_session",
            "label": "Don't store a session",
            "type": "boolean",
            "option": [
              "--no-session"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "quiet",
            "label": "Quiet (response only)",
            "type": "boolean",
            "option": [
              "--quiet",
              "-q"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "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"
            ]
          },
          {
            "id": "provider",
            "label": "Provider",
            "type": "string",
            "option": [
              "--provider"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "model",
            "label": "Model",
            "type": "string",
            "option": [
              "--model"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "max_turns",
            "label": "Max turns without input",
            "type": "integer",
            "option": [
              "--max-turns"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "debug",
            "label": "Debug output",
            "type": "boolean",
            "option": [
              "--debug"
            ],
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "prompt",
            "label": "Run a prompt",
            "fields": [
              "text",
              "quiet",
              "no_session"
            ],
            "required": [
              "text"
            ]
          },
          {
            "id": "file",
            "label": "Run an instruction file",
            "fields": [
              "instructions",
              "name",
              "quiet"
            ],
            "required": [
              "instructions"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "text",
              "instructions",
              "interactive",
              "name",
              "quiet"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "resume",
              "no_session",
              "output_format",
              "provider",
              "model",
              "max_turns",
              "debug"
            ]
          }
        ]
      }
    ]
  }
}
