- Category
- Developer Tools
- Rank
- No. 17Tools index
- Listed in
- #4 Code with an agent
- Pricing
- Open Source
- Type
- TOOL
- Builder
- @jack
- GitHub
- 54.0k stars
- Latest release
- v1.49.0
- Date
About
An open-source AI agent that runs locally and automates complex development tasks from start to finish. Beyond code suggestions, it can build entire projects, write and execute code, debug issues, and interact with external APIs autonomously.
What it does
goose is an open AI agent written in Rust that you can run three ways: as a terminal command, as a native desktop app, or as a background server that other programs drive over the Agent Client Protocol. Tools plug in as Model Context Protocol extensions rather than hardcoded functions, and models plug in through a provider layer that covers the major hosted vendors plus fully local inference. Repeatable jobs are written as recipes, parameterised agent configurations that can pull in sub-recipes.
Why it's ranked here
Governance and protocol discipline are the argument here. The project is Apache-2.0 licensed, and its README places it under the Agentic AI Foundation at the Linux Foundation, a stronger continuity signal than a single-vendor repository. The model and the toolset swap independently, both through published protocols rather than bespoke adapters, and local inference sits inside the provider layer rather than beside it. HTTP-level test scaffolding is wired into the build, though this read could not establish how far that coverage actually reaches.
What's good
The agent-safety controls are real flags, not documentation: you can cap total turns, cap consecutive identical tool calls, and run extensions inside a Docker container. Local execution is genuinely local, with two inference backends, one general-purpose and one for Apple silicon, behind a cache that loads, evicts and recommends models based on available memory, so it runs with no hosted provider at all. The published container image builds only the command-line package, pins its runtime base by digest, and drops to a non-root user. Even unusual build settings are explained in comments.
Tradeoffs
This is a large surface to depend on: the core library exposes more than forty public modules, covering everything from scheduling to dictation. The build is heavy and toolchain-sensitive, with a vendored JavaScript engine, one dependency pulled from a pinned git revision, and another exact-pinned next to a note that it ships breaking changes in patch releases. The shipped container image also builds with an older Rust toolchain than the workspace declares it requires. Documentation points entirely at an external site, and the repository badges name a different GitHub organisation than the catalogue entry links to.
How to use it well
Treat the guardrails as day-one configuration: cap turns and repeated tool calls before pointing it at anything that costs money or writes to a real repository. The container option runs extensions inside a Docker image you name, but the extension must already exist in that image, so build it before relying on it. Move repeatable prompts into recipes and pass values as parameters; built-in commands show what a recipe expands to before you run it. When a run must be reproducible, pin the extension set to exactly what you pass on the command line, and for scripting, request structured JSON events instead of prose.
Technical notes+
The Cargo workspace, at version 1.45.0, splits into a core library (crates/goose, over forty pub mod declarations in lib.rs), a clap-driven CLI (crates/goose-cli), a provider layer (crates/goose-providers enumerates anthropic, openai, google, ollama, databricks, snowflake and azure_foundry plus a declarative provider module), bundled MCP servers, and an SDK crate of ACP wire types. Cargo.toml names both protocol crates: rmcp for MCP and agent-client-protocol for ACP. crates/goose-mcp/src/lib.rs registers autovisualiser, computercontroller, memory and tutorial as in-process servers over duplex streams, so builtin tools speak the same MCP wire protocol as external stdio servers; a peekaboo module compiles on macOS only. crates/goose-acp-macros/src/lib.rs derives the JSON-RPC dispatcher and JSON Schema from the request types, extracting the method name at compile time. crates/goose-cli/src/cli.rs exposes --max-turns, --max-tool-repetitions, --container, --no-profile, --explain, --render-recipe, --params and --output-format stream-json. crates/goose-local-inference/src/lib.rs carries llama.cpp and MLX backends behind a model-slot cache, default model bartowski/Llama-3.2-1B-Instruct-GGUF:Q4_K_M. Cargo.toml patches v8 to a vendored path, pins cudaforge to a git revision, exact-pins llama-cpp-sys-2, declares rust-version 1.94.1, and carries wiremock, serial_test, test-case and tree-sitter grammars for nine languages. The Dockerfile builds on rust:1.82-bookworm and runs on digest-pinned debian:bookworm-slim as uid 1000.
Observed
- License
- Apache-2.0, declared in the workspace manifest
- Language and packaging
- Rust, built as a multi-crate Cargo workspace
- Interfaces
- Terminal CLI, native desktop app, and a JSON-RPC server speaking the Agent Client Protocol
- Local inference
- Two local backends, llama.cpp and MLX, so no hosted provider is required
- Core library surface
- Over forty public modules declared in the core crate
Read from README.md, Cargo.toml, crates/goose/src/lib.rs, crates/goose-cli/src/main.rs, crates/goose-cli/src/cli.rs, crates/goose-cli/src/lib.rs, crates/goose-mcp/src/lib.rs, crates/goose-providers/src/lib.rs, crates/goose-provider-types/src/lib.rs, crates/goose-sdk/src/lib.rs, crates/goose-sdk-types/src/lib.rs, crates/goose-local-inference/src/lib.rs, crates/goose-acp-macros/src/lib.rs, Dockerfile.
What it can do
Build complete software projects from scratch
Project requirements or specifications → Fully functional software project with code files and structure
Write and execute code automatically
Development task description or coding requirements → Executable code files and execution results
Debug software issues and failures
Code with bugs or error messages → Fixed code and debugging solutions
Interact with external APIs autonomously
API endpoints and integration requirements → API integration code and response handling
Orchestrate complex development workflows
Multi-step development task descriptions → Completed workflow with all intermediate steps executed
Generate code from natural language prompts
Natural language description of desired functionality → Source code implementing the described functionality
Intel on goose
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
