← Back to archive

Repo of the Day

block/goose

Published: Jan 30, 2025

Open repository ↗

an open-source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM

Summary

Goose is an open-source AI agent written in Rust that runs locally and goes beyond code suggestions, with the ability to install, execute, edit, and test against various LLMs. It is distributed as a native desktop app, a command-line interface, and an embeddable API, and it supports more than 15 model providers plus connections to external tools through the Model Context Protocol (MCP).

What it is useful for

Goose is aimed at engineers who want a single, flexible agent that can operate across the development loop rather than a chat-only assistant. The README positions it for general-purpose tasks such as code, research, writing, automation, and data analysis, so the same runtime can drive shell commands, edit project files, and script terminal workflows. Because it talks to backends including Anthropic, OpenAI, Google, Ollama, OpenRouter, Azure, and Bedrock, and can plug into 70+ tools via MCP, it fits teams that want to mix hosted APIs with local models such as Ollama without rewriting glue code. The CLI and API surfaces also make it usable headlessly in scripts or CI jobs, not just inside a GUI.

How engineers can use it

Engineers can start by choosing a frontend. The README links to a desktop installer for macOS, Linux, and Windows, or a one-line CLI install:

curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash

After installation, configure a provider (an API key, or an existing Claude, ChatGPT, or Gemini subscription via ACP) and enable any MCP extensions needed for tools like filesystem or shell access. Step-by-step walkthroughs live in the linked Quickstart and Tutorials sections of the documentation rather than the README itself, so users should consult those for first-session setup. For embedding, the API form lets other services drive goose programmatically. The project maintains a Known Issues page under its troubleshooting docs, so users should check that section before committing to a specific provider or extension combination.