One agent spans desktop, terminal, and an API
Goose is a local agent rather than a code-completion plug-in. It can edit files, execute commands, research a topic, analyze data, and run saved recipes from a native desktop app or terminal. An API lets other software embed the same agent loop. The project supports more than 15 model providers and over 70 MCP extensions according to its README, giving one installation access to cloud accounts, local model servers, and external tools.
That breadth is the reason to choose Goose and the first reason to slow down. A coding request can cross the model provider, agent history, filesystem, shell, and one or more MCP servers before it completes. Each layer carries separate credentials and failure modes. The UI can make this feel like one conversation, but an operator should still decide which directories, commands, network services, and extensions the session may reach. A good model does not replace those boundaries.
The packaged install avoids a 360.4 MB source tree
Desktop builds are available for macOS, Linux, and Windows. The CLI has a download script, Homebrew packages, and Windows routes through Git Bash, MSYS2, or PowerShell. First use configures a model provider. That may mean an API key, browser login for a supported subscription, cloud credentials already present in the environment, or a local server such as Ollama with a model downloaded and running.
Source contributors face a much larger project. commit 9a4e043 contained 2,365 files, roughly 384,063 source lines, and occupied 360.4 MB before the Rust dependency install. Our scan found 41 CI workflow files and a Dockerfile, but no separate tests directory. The install resolved 1,281 packages. That scale is consistent with a cross-platform desktop app, CLI, API, provider layer, and extension system, but it demands more patience than the binary installation path.
What happened when we ran it
Our sandbox installed 1,281 Rust packages in 46 seconds. The build then reached our 900-second limit and was stopped without a success result. Tests also reached 900 seconds without finishing. The run used a fresh unprivileged Debian container with 3 CPUs and 12 GB of RAM at commit 9a4e043. We did not record a completed build or test suite for this checkout.
The final test lines were active rather than an immediate crash. They showed several Langfuse tracing tests passing, along with observation-layer tests and title-generation cases. There was no final total, failure count, or summary before the timeout, so those lines cannot be converted into a pass rate. The useful finding is simple: Goose's available checks did not fit inside 15 minutes per build and test step on our box. Contributors should expect a long first cycle or use more capable hardware and narrower crate-level commands.
Shared recipes can start commands before model work
Recipes package prompts, activities, retry rules, and extensions so a workflow can be reused or shared. That is useful for repeatable development and operational tasks. It also gives the recipe authority outside natural-language instructions. A stdio MCP extension names a local command and arguments, while a retry check can run a shell command to decide whether work succeeded. These fields should be treated as executable code.
Open issue 10325 reports that version 1.37.0 ran a recipe's stdio extension command without a CLI consent prompt or command preview. The reporter also found that the recipe security scan inspected hidden Unicode in instructions, prompts, and activities, but did not inspect extension commands or retry shell checks. The proof wrote command output as the current user even though the MCP handshake later failed. The issue remained open and was updated on August 26, 2026. Inspect local files and resolved recipe content before every first run.
Long tool loops can exhaust context inside one turn
Goose supports several provider families, though the official provider guide says tool calling is central and that Claude 4 models currently work best. Compatibility is therefore more demanding than accepting chat text. A model must return the expected tool structure, handle results, and continue coherently. Provider credentials differ too: Bedrock and SageMaker require preconfigured cloud state, subscription providers use login flows, and local providers require a separate running model service.
Context handling has a current edge case. Issue 11072 reproduces auto-compaction only being checked at user-turn boundaries. In the reported version 1.45.0 session, one tool-heavy turn grew from 17,189 input tokens to the 49,152-token ceiling without another compaction check, leaving only 32 output tokens. The issue concerns one provider setup, yet the mechanism matters to any autonomous task that makes many tool calls before returning control. Set budgets and require checkpoints outside the agent rather than assuming compaction will always rescue a run.
Version 1.47.0 is active, with sharp desktop edges
The canonical GitHub repository now reports the name aaif-goose/goose; the requested block/goose URL redirects there. GitHub recorded 53,544 stars and 195 combined issues and pull requests, with code pushed on August 27, 2026. Release v1.47.0 arrived on August 21 with OAuth, provider, recipe, context, file-read, and session fixes. This is an actively changing agent, not an abandoned experiment.
Active does not mean every desktop wrapper is settled. Issue 11586 reports Goose Desktop 1.47.0 changing Node and npx commands to the MCP Hermit directory, so project-relative paths resolve incorrectly. Its reproduction also exits a Node child with status 37 while the wrapper logs success and returns 0. For an agent that judges work by command results, masking failure is serious. Verify working directories and exit propagation in any recipe that depends on bundled launchers.
Goose is worth testing when one local agent must cross coding and general workflows, especially across several providers or MCP systems. The 900-second source timeouts and open execution concerns keep it from being a casual recommendation. Start with a prebuilt release, a disposable repository, a narrow extension list, and explicit approval for commands. Promote it only after the exact provider, recipe, and tool chain reports failures honestly.

