Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is goose?
goose is an open-source, general-purpose AI agent that runs locally on your machine. It is not limited to coding: the same tool can handle research, writing, automation, and data analysis. It ships as a native desktop app for macOS, Linux, and Windows, a command-line interface for terminal workflows, and an API for embedding it into other software. It is written in Rust.
What makes it distinctive
- Provider flexibility. It works with 15+ LLM providers, including Anthropic, OpenAI, Google, Ollama, OpenRouter, Azure, and Bedrock. You can use API keys or connect existing Claude, ChatGPT, or Gemini subscriptions through ACP.
- Extensibility via MCP. goose was an early adopter of the Model Context Protocol and supports 70+ extensions covering databases, APIs, browsers, GitHub, Google Drive, and more. You can also add skills or build your own extension.
- Recipes. Workflows can be captured as portable YAML files with instructions, extensions, parameters, and subrecipes, then shared with a team or run in CI.
- Subagents. Independent subagents can run tasks in parallel — code review, research, file processing — without cluttering the main conversation.
- MCP Apps. Extensions can render interactive interfaces such as buttons, forms, and visualizations directly inside the desktop app.
- Security controls. Prompt-injection detection, tool permission controls, sandbox mode, and an adversary reviewer that watches for unsafe actions.
Who it suits
A developer who wants a local agent that can reach into a database and a GitHub repo in the same session; a writer or analyst who prefers running an agent on their own machine rather than in a hosted chat product; a team that wants to version-control and share repeatable agent workflows as YAML. If you only need a hosted chatbot for occasional questions, the setup effort may not be worth it.
Next step
Pick one recurring task — a weekly data pull, a code-review pass, a research summary — and try reproducing it as a recipe. If you want to see how others have done it, browse the community extensions and recipes on GitHub or ask in the project's Discord.
How do I install and set up goose on my computer?
goose is an open-source AI agent that runs locally on macOS, Linux, and Windows, available as a desktop app, a CLI, and an API. The intended setup path is: install the app, connect a model provider, then add the extensions you need.
H3 Before you install
- Check your OS: macOS, Linux, or Windows are supported.
- Decide how you want to run it: the native desktop app if you prefer a GUI, the CLI if you live in a terminal, or the API if you plan to embed it in your own tooling.
- Decide which model you'll use. goose works with multiple providers, and you can either supply an API key or connect an existing Claude, ChatGPT, or Gemini subscription. Having that credential ready is the step people most often get stuck on.
H3 Setup steps
- Install goose for your platform from the official project site: goose.
- Launch the desktop app, or run the CLI if you chose the terminal route.
- Connect a model provider — enter an API key or authenticate your existing subscription.
- Add extensions for the tools you actually use. There are 70+ documented extensions covering things like databases, APIs, browsers, GitHub, and Google Drive, connected through the Model Context Protocol.
- Save your first recipe if you'll repeat the same task. Recipes are portable YAML configs you can share with a team or run in CI.
H3 Choosing between the three interfaces
| Interface | Best for | Trade-off |
|---|---|---|
| Desktop app | First-time users, visual work, interactive extension UIs | Heavier than a terminal tool |
| CLI | Scripting, terminal workflows, CI | No graphical surface |
| API | Embedding goose in your own software | Requires development work |
H3 A practical first session Pick one narrow, real task rather than exploring every feature. For example: connect the GitHub extension, ask goose to summarise open issues in one repository, then save that as a recipe so you can rerun it. This exercises the model connection, an extension, and the recipe system in a single pass — the three parts most likely to need adjustment.
H3 Security settings worth reviewing early goose includes prompt injection detection, tool permission controls, a sandbox mode, and an adversary reviewer that watches for unsafe actions. Because the agent runs on your machine and can reach your files and connected services, review these controls before granting broad tool access rather than after.
H3 Where to get help The project has an active community on Discord and GitHub, where you can ask questions, report issues, and find community-built extensions. For reference material and extension browsing, start with goose. If you use an editor with agent support, note that goose can act as an ACP server for tools such as Zed, JetBrains, and VS Code.
Can I use goose with my existing ChatGPT or Claude subscription instead of paying for API keys?
Yes. goose supports using existing Claude, ChatGPT, or Gemini subscriptions through ACP (Agent Client Protocol), alongside API keys from 15+ providers. You are not locked into pay-per-token API billing if you already have a qualifying subscription.
How the two routes differ in practice
| Route | What you supply | Best for |
|---|---|---|
| API key | Key from Anthropic, OpenAI, Google, Azure, Bedrock, OpenRouter, etc. | Automation, CI runs, predictable programmatic access |
| Existing subscription via ACP | Your Claude, ChatGPT, or Gemini subscription | Interactive desktop or CLI use where you already pay monthly |
Practical scenario: a developer with a ChatGPT Plus or Claude Pro plan opens goose Desktop, connects the subscription through ACP, and runs research, writing, and file tasks without creating separate API billing. The same person might still add an API key later for a recipe running unattended in CI, where subscription auth is not the right fit.
What to check before relying on it
- Subscription terms and rate limits: consumer chat plans are not the same as API access, and providers can change what third-party agents may do.
- Which providers you actually hold: goose lists Anthropic, OpenAI, and Google among 15+ options, but your specific plan tier matters.
- Task type: long autonomous runs and parallel subagents can hit limits faster than interactive chat.
Next step: install goose on macOS, Linux, or Windows, open the provider settings, and try connecting your existing subscription before adding any API key. If the connection works for a small task, you have your answer without spending on tokens.
For setup details, see goose.
What are goose recipes and how can I use them to automate workflows?
Goose recipes are portable YAML configuration files that capture a workflow so it can be rerun, shared, or scheduled. Instead of re-explaining a task to the agent each time, you define it once: the instructions, which extensions to load, any parameters the run needs, and even subrecipes for multi-step jobs. Because they're plain YAML, they live in version control alongside your code and can be handed to a teammate or invoked from CI.
What a recipe typically bundles
- Instructions — the prompt or task definition the agent follows.
- Extensions — the connections the task needs, such as a database, GitHub, a browser, or Google Drive, drawn from the 70+ MCP extensions goose supports.
- Parameters — values you supply per run, so one recipe can target different repos, branches, or datasets.
- Subrecipes — smaller recipes called from a parent, useful for breaking a long pipeline into reusable pieces.
Practical ways to use them
- Repeatable code chores — a recipe that reviews a pull request diff, checks style, and posts findings, run the same way every time.
- Onboarding and docs — a recipe that reads a repo and drafts setup notes, so a new contributor gets a consistent starting point.
- Scheduled or CI runs — because recipes are files, a pipeline can invoke one for nightly checks, release notes, or report generation.
- Team handoff — commit the recipe; a colleague runs it without reconstructing your prompt or extension setup.
- Parallel work — pair a recipe with subagents to fan out tasks like code review or file processing without cluttering the main conversation.
Choosing between a recipe and a one-off prompt
| Situation | Better fit |
|---|---|
| Task you'll run once, exploratory | Plain prompt in the desktop app or CLI |
| Task repeated by you or others | Recipe |
| Task needs specific tools every time | Recipe with extensions declared |
| Task varies by input (repo, date, dataset) | Recipe with parameters |
| Long multi-stage job | Parent recipe with subrecipes |
A concrete scenario: a small team wants a weekly dependency-check summary. They write one recipe that loads a GitHub extension, reads the manifest files, and produces a short report. A parameter selects the repository; a subrecipe handles the write-up. Anyone on the team runs it, or CI does, and the output format stays consistent because the instructions aren't retyped.
Next step: start with the smallest recurring task you have — something you've prompted more than twice — and convert just that into a recipe. Add extensions only as needed, then introduce parameters once you notice you're editing the same values each run. If you want to see how others structure theirs, browse the community extensions and shared recipes through goose or the project's GitHub presence.
How does goose keep my data and system secure when running AI agents locally?
Goose's security model rests on a simple fact: the agent runs on your machine, so your files and prompts don't have to leave it unless you connect a cloud model. The page lists several concrete safeguards: prompt-injection detection, tool permission controls, a sandbox mode, and an "adversary reviewer" that watches for unsafe actions.
What each layer does for you
- Prompt-injection detection targets the classic agent risk: a web page, file, or tool output that tries to hijack the agent's instructions. Detection is a filter, not a guarantee, so treat untrusted content as untrusted even with it on.
- Tool permission controls decide which extensions the agent may call — databases, browsers, GitHub, Google Drive, and so on. Fewer enabled extensions means a smaller blast radius.
- Sandbox mode limits what a running task can touch, which matters when you point the agent at unfamiliar code or data.
- Adversary reviewer acts as a second pass over planned actions, flagging ones that look unsafe before they run.
Where your data actually goes
Local execution keeps the agent process on your machine, but model choice decides what leaves it. Goose supports 15+ providers, including local options like Ollama, plus Anthropic, OpenAI, Google, Azure, and Bedrock. Using a local model keeps prompts and file contents on-device; using a hosted provider sends whatever the agent reads to that provider under their terms. That trade-off is the main lever you control.
Extension choice is the second lever. An extension connected to Google Drive or a database can read from it, so enable only what a task needs and disable the rest when you're done.
A practical starting setup
For a first sensitive task — say, reviewing a private repository — try: Ollama as the provider, only the filesystem and Git extensions enabled, sandbox mode on, and permission prompts left in place rather than auto-approved. Then loosen one setting at a time as you learn what the agent actually needs.
Compare that with a low-stakes research task, where a hosted model and browser extension are reasonable and speed matters more than isolation.
Learn more at goose.
How can I connect goose to external tools like databases, GitHub, or Google Drive?
Connect goose to external tools through extensions built on the Model Context Protocol (MCP). goose ships with access to 70+ documented extensions covering databases, APIs, browsers, GitHub, Google Drive, and more. You add the extension you need, and the agent can then call those tools during a session. Because MCP is an open standard, the same extension model works across the desktop app, CLI, and API.
Ways to connect
- Install an existing extension. Browse the community and documented MCP extensions, then add the ones matching your stack — a database driver, GitHub, Google Drive, and so on.
- Add skills. For narrower capabilities, skills let you extend behavior without building a full extension.
- Build your own extension. If nothing fits, write a custom MCP extension and reuse it across your team.
- Use MCP Apps. Extensions can render interactive UIs inside goose Desktop — buttons, forms, visualizations — so a tool can present a form or chart rather than only returning text.
A concrete scenario
Suppose you want a weekly report that pulls closed issues from GitHub and rows from a Postgres database. You add the GitHub and database extensions, then capture the whole task as a Recipe — a portable YAML config with instructions, extensions, and parameters. You run it yourself, share it with teammates, or execute it in CI. For heavier jobs, spawn subagents to handle research or file processing in parallel while the main conversation stays clean.
Trade-offs to weigh
| Approach | Best for | Cost |
|---|---|---|
| Existing extension | Common tools (GitHub, Drive, databases) | Least effort; depends on community maintenance |
| Skill | Small, repeatable behaviors | Limited scope |
| Custom extension | Internal or unusual systems | You build and maintain it |
| MCP App | Tools needing forms or visual output | More design work |
More connected tools widen what the agent can touch, so pair each addition with goose's security controls — tool permission controls, sandbox mode, prompt injection detection, and an adversary reviewer that watches for unsafe actions. Grant the narrowest permissions a task needs.
Next step: pick one recurring task, add just the extensions it requires, and save it as a Recipe before expanding further.
User reviews (0)