{
 "name": "goose",
 "repo": "https://github.com/aaif-goose/goose (https://github.com/block/goose redirects here; GitHub API returned 301 to repository id 846698999)",
 "docs": "https://block.github.io/goose/docs/ (docs source: https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/)",
 "headless": {
  "finding": "`goose run -t \"<text>\"` or `goose run -i <file>` (`-i -` reads stdin) runs one task and exits. No working-directory flag found on `run`: the CLI source uses std::env::current_dir(), so set cwd by launching the process in the target directory (`-w/--working_dir` exists only for `session list` filtering). Approval prompts: default mode is autonomous (GOOSE_MODE=auto), so no approvals are asked; `--max-turns` (default 1000) bounds the run; `--no-session` avoids session storage; `--output-format json|stream-json` for machine output; `-q` quiet. Exit codes: no table documented; source calls std::process::exit(1) on errors (cli.rs), not verified for every failure path.",
  "quote": "The `goose run` command starts a new session, begins executing using any arguments provided and exits the session automatically once the task is complete. | `-i, --instructions <FILE>`: Path to instruction file containing commands. Use `-` for stdin | `GOOSE_MODE` ... \"auto\", \"approve\", \"chat\", \"smart_approve\" | \"auto\"",
  "url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/running-tasks.md (also https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/goose-cli-commands.md, https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/environment-variables.md, https://raw.githubusercontent.com/aaif-goose/goose/main/crates/goose-cli/src/cli.rs)",
  "third_party": false
 },
 "confinement": {
  "finding": "Permission modes: auto, approve, smart_approve, chat (chat = no tool use). Per-tool Always Allow / Ask Before / Never Allow overrides apply in approve/smart modes (configured via `goose configure`). No built-in OS-level sandbox (seatbelt/bubblewrap/gVisor) or network on/off switch found in the CLI docs; `--container <id>` runs extensions inside an existing Docker container, and goose itself can be run inside Docker. GOOSE_ALLOWLIST restricts which extensions may load (URL list). Shell/file/network restriction by command pattern was not found; a worker must supply OS-level confinement (container, bwrap, network namespace) and use `--with-builtin` to limit enabled extensions. In unattended runs, approve-mode prompts would need a human, so Never Allow rules are the only deny mechanism not requiring a person; not verified how approve mode behaves with no TTY.",
  "quote": "Autonomous Mode is applied by default. | Each tool can be set to one of three permission levels | `--container <container_id>`: Run extensions inside a Docker container",
  "url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/managing-tools/goose-permissions.md (also tool-permissions.md, goose-cli-commands.md, allowlist.md in same folder; Docker: https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/tutorials/goose-in-docker.md)",
  "third_party": false
 },
 "token_reporting": {
  "finding": "Yes. `--output-format json` emits {messages, metadata} with metadata fields total_tokens, input_tokens, output_tokens, cache_read_input_tokens, cache_write_input_tokens, cost_usd, status. `stream-json` ends with a Complete event carrying the same fields. No separate reasoning-token field found. Also: session usage in session store, and llm_request.N.jsonl logs include token usage. Fields are Option, so may be absent depending on provider.",
  "quote": "struct JsonMetadata { total_tokens: Option<i32>, input_tokens, output_tokens, cache_read_input_tokens, cache_write_input_tokens, cost_usd: Option<f64>, status: String }",
  "url": "https://raw.githubusercontent.com/aaif-goose/goose/main/crates/goose-cli/src/session/mod.rs (also https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/logs.md)",
  "third_party": false
 },
 "parallelism": {
  "finding": "Yes. Subagents can run sequentially or in parallel, triggered by natural-language prompts; default max concurrent subagents is 5 per parent session, set via GOOSE_MAX_CONCURRENT_SUBAGENTS; subagent timeout 5 minutes; turn limit via GOOSE_SUBAGENT_MAX_TURNS; subagent provider/model via GOOSE_SUBAGENT_PROVIDER/GOOSE_SUBAGENT_MODEL; subrecipes also supported. Many separate `goose run` processes can be launched concurrently (named sessions via -n); no doc stating limits for that was found.",
  "quote": "Maximum Concurrent Subagents | 5 | Set `GOOSE_MAX_CONCURRENT_SUBAGENTS` to a positive integer.",
  "url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/subagents.mdx",
  "third_party": false
 },
 "providers": {
  "finding": "15+ providers: Anthropic, OpenAI, Gemini, Azure OpenAI, Azure AI Foundry, Amazon Bedrock, GCP Vertex AI, OpenRouter, LiteLLM, GitHub Copilot, ChatGPT Codex, plus local backends Ollama, LM Studio, Docker Model Runner, Ramalama, Atomic Chat; CLI-wrapping providers (Cursor Agent) and ACP providers (Claude ACP, Codex ACP).",
  "quote": "goose works with 15+ providers — Anthropic, OpenAI, Google, Ollama, OpenRouter, Azure, Bedrock, and more.",
  "url": "https://raw.githubusercontent.com/aaif-goose/goose/main/README.md (full list: https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/providers.md)",
  "third_party": false
 },
 "subscription_login": {
  "finding": "Yes. ChatGPT Plus/Pro via browser OAuth (ChatGPT Codex provider); GitHub Copilot via device flow; Claude Code and Codex subscriptions via ACP providers (claude-acp, codex-acp); Cursor subscription via cursor-agent. Native Gemini subscription login not confirmed (a gemini_oauth.rs file exists in crates/goose/src/providers but its docs were not read); README says Gemini subscriptions work via ACP. Whether OAuth login works on a headless machine was not tested (browser is opened).",
  "quote": "Requires a ChatGPT Plus/Pro subscription. | No manual key. Uses browser-based OAuth authentication for both CLI and Desktop. | Uses GitHub's device flow authentication",
  "url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/providers.md",
  "third_party": false
 },
 "license": {
  "finding": "Apache-2.0 (GitHub API spdx_id; LICENSE file begins 'Apache License Version 2.0, January 2004')",
  "quote": "Apache License\n Version 2.0, January 2004",
  "url": "https://raw.githubusercontent.com/aaif-goose/goose/main/LICENSE (API: https://api.github.com/repos/aaif-goose/goose)",
  "third_party": false
 },
 "latest_stable": {
  "finding": "v1.56.0, published 2026-10-23T15:49:34Z (checked 2026-10-27; list shows no draft). crates.io `goose-cli` shows an unrelated-looking 0.2.0 (single version, created 2026-05-21): not confirmed as the official package, so no registry version is claimed.",
  "quote": "v1.56.0 prerelease=false published_at 2026-10-23T15:49:34Z",
  "url": "https://api.github.com/repos/block/goose/releases?per_page=30 (redirects to repo id 846698999)",
  "third_party": false
 },
 "latest_prerelease": {
  "finding": "v2.0.0-rc-04-27-0, published 2026-04-27T14:23:16Z (only prerelease within the 30 newest releases fetched; older ones not checked)",
  "quote": "v2.0.0-rc-04-27-0 prerelease=true 2026-04-27T14:23:16Z",
  "url": "https://api.github.com/repos/block/goose/releases?per_page=30",
  "third_party": false
 },
 "last_commit": {
  "finding": "2026-10-27T02:39:11Z on main, sha 2c6812a358db1b11953b9fafc05c6126eb818788; repo pushed_at 2026-10-27T03:53:11Z",
  "quote": "committer date 2026-10-27T02:39:11Z",
  "url": "https://api.github.com/repos/aaif-goose/goose/commits?per_page=1",
  "third_party": false
 },
 "fork_of": {
  "finding": "not a fork (API fork=false); the repository moved from the block organisation to aaif-goose, and README says it is part of the Agentic AI Foundation at the Linux Foundation",
  "quote": "goose is part of the [Agentic AI Foundation (AAIF)] at the Linux Foundation.",
  "url": "https://api.github.com/repos/aaif-goose/goose",
  "third_party": false
 },
 "maintenance": {
  "finding": "Active: archived=false, last commit 2026-10-27, releases roughly weekly (v1.55.0 on 2026-10-16, v1.56.0 on 2026-10-23). Not marked unmaintained.",
  "quote": "archived: false",
  "url": "https://api.github.com/repos/aaif-goose/goose",
  "third_party": false
 },
 "gaps": [
  "No documented exit-code table found (checked running-tasks.md, goose-cli-commands.md); only std::process::exit(1) occurrences in cli.rs seen.",
  "No working-directory flag on `goose run` found (checked goose-cli-commands.md, cli.rs); only `session list -w`.",
  "No OS sandbox or network switch found (checked goose-permissions.md, tool-permissions.md, goose-cli-commands.md, environment-variables.md, goose-in-docker.md grep); the security guide folder (guides/security/) was not read.",
  "Behaviour of approve/smart_approve with no TTY not tested or documented in pages read.",
  "Reasoning-token field not found in JsonMetadata.",
  "Nothing was run locally; all findings are from docs and source text.",
  "Releases list limited to the 30 newest; latest prerelease may be incomplete as a search of older ones. Official crates.io/npm package not verified.",
  "Changelog page of docs site and block.github.io pages were not fetched; raw docs source from the repository was used instead."
 ],
 "sources": [
  "https://api.github.com/repos/block/goose/releases?per_page=30",
  "https://api.github.com/repos/aaif-goose/goose",
  "https://api.github.com/repos/aaif-goose/goose/commits?per_page=1",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/running-tasks.md",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/goose-cli-commands.md",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/environment-variables.md",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/managing-tools/goose-permissions.md",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/managing-tools/tool-permissions.md",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/subagents.mdx",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/logs.md",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/providers.md",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/tutorials/goose-in-docker.md",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/crates/goose-cli/src/cli.rs",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/crates/goose-cli/src/session/mod.rs",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/README.md",
  "https://raw.githubusercontent.com/aaif-goose/goose/main/LICENSE",
  "https://crates.io/api/v1/crates/goose-cli"
 ]
}