2025-01-24 13:04:43 -08:00
---
sidebar_position: 1
---
import Tabs from '@theme/Tabs ';
import TabItem from '@theme/TabItem ';
2025-01-27 17:53:21 -05:00
import SupportedEnvironments from '@site/src/components/SupportedEnvironments ';
import RateLimits from '@site/src/components/RateLimits ';
2025-03-04 15:24:27 -06:00
import DesktopInstallButtons from '@site/src/components/DesktopInstallButtons ';
2025-01-24 13:04:43 -08:00
2025-01-25 10:14:27 -06:00
# Install Goose
2025-01-24 13:04:43 -08:00
2025-04-07 14:43:23 -07:00
<SupportedEnvironments />
2025-01-24 13:04:43 -08:00
2025-01-30 05:37:39 +01:00
<Tabs>
2025-01-30 10:48:01 -08:00
<TabItem value="mac" label="macOS" default>
2025-01-30 05:37:39 +01:00
Choose to install Goose on CLI and/or Desktop:
2025-01-24 13:04:43 -08:00
2025-01-30 05:37:39 +01:00
<Tabs groupId="interface">
<TabItem value="cli" label="Goose CLI" default>
2025-01-30 10:48:01 -08:00
Run the following command to install the latest version of Goose on macOS:
2025-01-24 13:04:43 -08:00
2025-01-30 05:37:39 +01:00
```sh
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
` ``
This script will fetch the latest version of Goose and set it up on your system.
2025-01-30 08:29:15 -08:00
2025-01-30 10:48:01 -08:00
If you'd like to install without interactive configuration, disable ` CONFIGURE`:
` ``sh
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | CONFIGURE=false bash
` ``
2025-02-27 11:19:25 -05:00
:::tip Updating Goose
It's best to keep Goose updated. To update Goose, run:
` ``sh
goose update
` ``
:::
2025-01-30 05:37:39 +01:00
</TabItem>
<TabItem value="ui" label="Goose Desktop">
2025-03-04 15:21:43 -08:00
Install Goose directly from the browser or with [Homebrew](https://brew.sh/).
<h3 style={{ marginTop: '1rem' }}>Option 1: Install via Download</h3>
2025-03-04 15:24:27 -06:00
<DesktopInstallButtons/>
2025-01-30 08:29:15 -08:00
<div style={{ marginTop: '1rem' }}>
2025-03-04 15:24:27 -06:00
1. Unzip the downloaded zip file.
2025-01-30 05:37:39 +01:00
2. Run the executable file to launch the Goose desktop application.
2025-02-10 16:44:00 -05:00
2025-02-27 11:19:25 -05:00
:::tip Updating Goose
2025-04-07 14:43:23 -07:00
It's best to keep Goose updated by periodically running the installation steps again.
2025-02-27 11:19:25 -05:00
:::
2025-03-04 15:21:43 -08:00
</div>
<h3>Option 2: Install via Homebrew</h3>
Homebrew downloads the [same app](https://github.com/Homebrew/homebrew-cask/blob/master/Casks/b/block-goose.rb) but can take care of updates too.
` ``bash
brew install --cask block-goose
` ``
---
<div style={{ marginTop: '1rem' }}>
2025-02-10 16:44:00 -05:00
:::note Permissions
2025-03-04 15:24:27 -06:00
If you’ re on an Apple Mac M3 and the Goose desktop app shows no window on launch, check and update the following:
2025-02-10 16:44:00 -05:00
2025-03-04 15:24:27 -06:00
Ensure the ` ~/.config` directory has read and write access.
2025-02-10 16:44:00 -05:00
2025-03-04 15:24:27 -06:00
Goose needs this access to create the log directory and file. Once permissions are granted, the app should load correctly. For steps on how to do this, refer to the [Troubleshooting Guide](/docs/troubleshooting.md#macos-permission-issues-m3-macs)
2025-02-10 16:44:00 -05:00
:::
2025-01-30 08:29:15 -08:00
</div>
2025-01-30 05:37:39 +01:00
</TabItem>
</Tabs>
2025-01-30 10:48:01 -08:00
</TabItem>
<TabItem value="linux" label="Linux" default>
Run the following command to install the Goose CLI on Linux:
2025-01-30 05:37:39 +01:00
2025-01-30 10:48:01 -08:00
` ``sh
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
` ``
This script will fetch the latest version of Goose and set it up on your system.
If you'd like to install without interactive configuration, disable ` CONFIGURE`:
` ``sh
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | CONFIGURE=false bash
` ``
2025-01-30 05:37:39 +01:00
</TabItem>
<TabItem value="windows" label="Windows">
There isn't native installation support for Windows, however you can run Goose using WSL (Windows Subsystem for Linux).
1. Open [PowerShell](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows) as Administrator and install WSL and the default Ubuntu distribution:
` ``bash
wsl --install
` ``
2. Restart your computer if prompted.
3. Run the Goose installation script:
` ``bash
2025-01-28 19:23:55 -07:00
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
2025-01-24 13:04:43 -08:00
` ``
2025-01-30 05:37:39 +01:00
:::tip
If you encounter any issues on download, you might need to install ` bzip2` to extract the downloaded file:
` ``bash
sudo apt update && sudo apt install bzip2 -y
` ``
2025-01-24 13:04:43 -08:00
:::
2025-01-30 10:48:01 -08:00
If you'd like to install without interactive configuration, disable ` CONFIGURE`:
` ``sh
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | CONFIGURE=false bash
` ``
2025-01-24 13:04:43 -08:00
</TabItem>
</Tabs>
2025-01-30 05:37:39 +01:00
## Set LLM Provider
2025-01-24 13:04:43 -08:00
Goose works with a set of [supported LLM providers][providers], and you’ ll need an API key to get started. When you use Goose for the first time, you’ ll be prompted to select a provider and enter your API key.
<Tabs groupId="interface">
<TabItem value="cli" label="Goose CLI" default>
2025-01-26 02:08:39 -06:00
Upon installing, Goose will automatically enter its configuration screen. Here is where you can set up your LLM provider.
2025-01-30 05:37:39 +01:00
:::tip Windows Users
Choose to not store to keyring when prompted.
:::
Example:
2025-01-26 02:08:39 -06:00
` ``
┌ goose-configure
│
◇ What would you like to configure?
│ Configure Providers
│
◇ Which model provider should we use?
│ OpenAI
│
◇ Provider openai requires OPENAI_API_KEY, please enter a value
│▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪
2025-01-30 08:29:15 -08:00
│
2025-01-26 02:08:39 -06:00
◇ Enter a model from that provider:
│ gpt-4o
│
◇ Welcome aboard! You're all set to start using this agent—let's achieve great things together!
│
└ Configuration saved successfully
` ``
2025-01-30 05:37:39 +01:00
:::info Windows Users
On initial run, you may encounter errors about keyrings when setting your API Keys. Set the needed environment variables manually, e.g.:
` ``bash
2025-01-30 16:23:49 -06:00
export OPENAI_API_KEY={your_api_key}
2025-01-30 05:37:39 +01:00
` ``
To make the changes persist in WSL across sessions, add the goose path and export commands to your ` .bashrc` or ` .bash_profile` file so you can load it later.
` ``bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
2025-01-30 16:23:49 -06:00
echo 'export OPENAI_API_KEY=your_api_key' >> ~/.bashrc
2025-01-30 05:37:39 +01:00
source ~/.bashrc
` ``
:::
2025-01-24 13:04:43 -08:00
</TabItem>
2025-01-25 10:14:27 -06:00
<TabItem value="ui" label="Goose Desktop">
2025-01-26 02:08:39 -06:00
Upon installing, the Provider screen will appear. Here is where you can choose your LLM Provider.
2025-01-25 10:14:27 -06:00

2025-01-26 02:08:39 -06:00
Once selecting your provider, you'll be prompted to enter an API key if applicable. Do so, and click ` Submit`.
2025-01-24 13:04:43 -08:00
</TabItem>
</Tabs>
2025-01-30 05:37:39 +01:00
## Update Provider
2025-01-24 13:04:43 -08:00
<Tabs groupId="interface">
<TabItem value="cli" label="Goose CLI" default>
2025-01-30 08:29:15 -08:00
**To update your LLM provider and API key:**
1. Run the following command:
2025-01-24 13:04:43 -08:00
` ``sh
goose configure
` ``
2. Select ` Configure Providers` from the menu.
2025-01-30 08:29:15 -08:00
3. Follow the prompts to choose your LLM provider and enter or update your API key.
2025-01-24 13:04:43 -08:00
**Example:**
2025-01-26 02:08:39 -06:00
To select an option during configuration, use the up and down arrows to highlight your choice then press Enter.
2025-01-24 13:04:43 -08:00
2025-01-26 02:08:39 -06:00
` ``
┌ goose-configure
│
◇ What would you like to configure?
│ Configure Providers
│
◇ Which model provider should we use?
│ Google Gemini
│
◇ Provider Google Gemini requires GOOGLE_API_KEY, please enter a value
│▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪
2025-01-30 08:29:15 -08:00
│
2025-01-26 02:08:39 -06:00
◇ Enter a model from that provider:
│ gemini-2.0-flash-exp
│
◇ Hello there! You're all set to use me, so please ask away!
│
└ Configuration saved successfully
2025-01-24 13:04:43 -08:00
` ``
</TabItem>
2025-01-25 10:14:27 -06:00
<TabItem value="ui" label="Goose Desktop">
2025-01-30 08:29:15 -08:00
**To update your LLM provider and API key:**
2025-01-24 13:04:43 -08:00
1. Click on the three dots in the top-right corner.
2. Select ` Provider Settings` from the menu.
2. Choose a provider from the list.
3. Click Edit, enter your API key, and click ` Set as Active`.
</TabItem>
</Tabs>
2025-01-27 17:53:21 -05:00
<RateLimits />
2025-01-24 13:04:43 -08:00
## Running Goose
<Tabs groupId="interface">
<TabItem value="cli" label="Goose CLI" default>
From your terminal, navigate to the directory you'd like to start from and run:
` ``sh
2025-01-30 08:29:15 -08:00
goose session
2025-01-24 13:04:43 -08:00
` ``
</TabItem>
2025-01-25 10:14:27 -06:00
<TabItem value="ui" label="Goose Desktop">
Starting a session in the Goose Desktop is straightforward. After choosing your provider, you’ ll see the session interface ready for use.
2025-01-30 08:29:15 -08:00
Type your questions, tasks, or instructions directly into the input field, and Goose will get to work immediately.
2025-01-24 13:04:43 -08:00
</TabItem>
</Tabs>
## Additional Resources
You can also configure Extensions to extend Goose's functionality, including adding new ones or toggling them on and off. For detailed instructions, visit the [Using Extensions Guide][using-extensions].
2025-01-25 10:14:27 -06:00
[using-extensions]: /docs/getting-started/using-extensions
[providers]: /docs/getting-started/providers
2025-01-24 13:04:43 -08:00
[handling-rate-limits]: /docs/guides/handling-llm-rate-limits-with-goose
[mcp]: https://www.anthropic.com/news/model-context-protocol