Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 65 additions & 52 deletions documentation/docs/getting-started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_position: 1
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { RateLimits } from '@site/src/components/RateLimits';
import { DesktopProviderSetup } from '@site/src/components/DesktopProviderSetup';
import { OnboardingProviderSetup } from '@site/src/components/OnboardingProviderSetup';
import { ModelSelectionTip } from '@site/src/components/ModelSelectionTip';
import MacDesktopInstallButtons from '@site/src/components/MacDesktopInstallButtons';
import WindowsDesktopInstallButtons from '@site/src/components/WindowsDesktopInstallButtons';
Expand Down Expand Up @@ -147,25 +147,47 @@ import { PanelLeft } from 'lucide-react';
</div>
</TabItem>
<TabItem value="cli" label="Goose CLI">
Run the following command in **Git Bash**, **MSYS2**, or **PowerShell** to install the Goose CLI natively on Windows:
To install Goose natively on Windows, you need one of the following environments:
- **Git Bash** (recommended): Comes with [Git for Windows](https://git-scm.com/download/win)
- **MSYS2**: Available from [msys2.org](https://www.msys2.org/)
- **PowerShell**: Available on Windows 10/11 by default

Run the installation command in your chosen environment:

```bash
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`:
To install without interactive configuration, disable `CONFIGURE`:

```bash
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | CONFIGURE=false bash
```

:::note Prerequisites
- **Git Bash** (recommended): Comes with [Git for Windows](https://git-scm.com/download/win)
- **MSYS2**: Available from [msys2.org](https://www.msys2.org/)
- **PowerShell**: Available on Windows 10/11 by default

The script requires `curl` and `unzip` to be available in your environment.
:::info Windows PATH Setup
If you see a warning that Goose is not in your PATH, you need to add Goose to your PATH:

<details>
<summary>For Git Bash/MSYS2</summary>
```bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
```
</details>

<details>
<summary>For PowerShell</summary>
```powershell
# Add to your PowerShell profile
$profilePath = $PROFILE
if (!(Test-Path $profilePath)) { New-Item -Path $profilePath -ItemType File -Force }
Add-Content -Path $profilePath -Value '$env:PATH = "$env:USERPROFILE\.local\bin;$env:PATH"'
# Reload profile or restart PowerShell
. $PROFILE
```
</details>

After updating your PATH, you can run `goose` commands from any directory.
:::

<details>
Expand Down Expand Up @@ -203,80 +225,71 @@ import { PanelLeft } from 'lucide-react';
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | CONFIGURE=false bash
```

If needed, add Goose to your path:

```
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
echo 'export OPENAI_API_KEY=your_api_key' >> ~/.bashrc
source ~/.bashrc
```

</details>
</TabItem>
</Tabs>
</TabItem>
</Tabs>

## Set LLM Provider
Goose works with [supported LLM providers][providers]. On first use, you'll be prompted to configure your preferred provider.
Goose works with [supported LLM providers][providers] that give Goose the AI intelligence it needs to understand your requests. On first use, you'll be prompted to configure your preferred provider.

<Tabs groupId="interface">
<TabItem value="ui" label="Goose Desktop" default>
<DesktopProviderSetup />
On the welcome screen, choose how to configure a provider:
<OnboardingProviderSetup />
</TabItem>
<TabItem value="cli" label="Goose CLI">
The CLI automatically enters configuration mode on first run. You'll be prompted to select from [supported LLM providers][providers] and enter your API key.
The CLI automatically enters configuration mode where you can choose how to configure a provider:

:::tip Windows Users
When using the native Windows CLI, choose to not store to keyring when prompted during initial configuration.
:::
<OnboardingProviderSetup />

Example:
Example configuration flow:

```
┌ 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
│▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪
◇ How would you like to set up your provider?
│ Tetrate Agent Router Service Login
◇ 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
```
Opening browser for Tetrate Agent Router Service authentication...
[Goose opens the browser and prints details]

:::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.:
Authentication complete!

**For Native Windows CLI (Git Bash/MSYS2):**
```bash
export OPENAI_API_KEY={your_api_key}
Configuring Tetrate Agent Router Service...
✓ Tetrate Agent Router Service configuration complete
✓ Models configured successfully

Testing configuration...
✓ Configuration test passed!
✓ Developer extension enabled!
└ Tetrate Agent Router Service setup complete! You can now use Goose.
```

**For WSL:**
:::info Windows Users
If you choose to manually configure a provider, when prompted during configuration, choose to not store to keyring. If you encounter keyring errors when setting API keys, you can set environment variables manually instead:

```bash
export OPENAI_API_KEY={your_api_key}
```

Run `goose configure` again and proceed through the prompts. When you reach the step for entering the API key, Goose will detect that the key is already set as an environment variable and display a message like:
Then run `goose configure` again. Goose will detect the environment variable and display:

```
● OPENAI_API_KEY is set via environment variable
```

**To make the changes persist across sessions:**

**For Native Windows CLI (Git Bash):**
Add the goose path and export commands to your `~/.bashrc` or `~/.bash_profile` file:
```bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
echo 'export OPENAI_API_KEY=your_api_key' >> ~/.bashrc
source ~/.bashrc
```

**For WSL:**
To make API keys persist across sessions, add them to your shell profile:
```bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
echo 'export OPENAI_API_KEY=your_api_key' >> ~/.bashrc
source ~/.bashrc
```
Expand All @@ -289,7 +302,7 @@ Goose works with [supported LLM providers][providers]. On first use, you'll be p
:::

## Update Provider
You can change your LLM provider or update your API key at any time.
You can change your LLM provider and/or model or update your API key at any time.

<Tabs groupId="interface">
<TabItem value="ui" label="Goose Desktop" default>
Expand Down
46 changes: 15 additions & 31 deletions documentation/docs/guides/handling-llm-rate-limits-with-goose.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,34 +11,18 @@ import { PanelLeft } from 'lucide-react';

Rate limiting is the process of restricting the number of requests a user or application can send to an LLM API within a specific timeframe. LLM providers enforce this with the purpose of managing resources and preventing abuse.

Since Goose is working very quickly to implement your tasks, you may need to manage rate limits imposed by the provider. If you frequently hit rate limits, consider upgrading your LLM plan to access higher tier limits or using OpenRouter.

## Using OpenRouter

OpenRouter provides a unified interface for LLMs that allows you to select and switch between different providers automatically - all under a single billing plan. With OpenRouter, you can utilize free models or purchase credits for paid models.

1. Go to [openrouter.ai](https://openrouter.ai) and create an account.
2. Once verified, create your [API key](https://openrouter.ai/settings/keys).

<Tabs groupId="interface">
<TabItem value="ui" label="Goose Desktop" default>
1. Click the <PanelLeft className="inline" size={16} /> button in the top-left to open the sidebar.
2. Click the `Settings` button on the sidebar.
3. Click the `Models` tab.
3. Click `Configure Providers`.
5. Click `Configure` under `OpenRouter` to edit your OpenRouter settings.
6. Enter your OpenRouter API key.
7. Click `Submit`.
</TabItem>
<TabItem value="cli" label="Goose CLI">
1. Run the Goose configuration command:
```sh
goose configure
```
2. Select `Configure Providers` from the menu.
3. Follow the prompts to choose OpenRouter as your provider and enter your OpenRouter API key when prompted.
</TabItem>
</Tabs>


Now Goose will send your requests through OpenRouter which will automatically switch models when necessary to avoid interruptions due to rate limiting.
Since Goose is working very quickly to implement your tasks, you may need to manage rate limits imposed by the provider. If you frequently hit rate limits, consider upgrading your LLM plan to access higher tier limits or [configure a provider](/docs/getting-started/providers#configure-provider) that has built-in rate limiting:

:::info
Goose supports automatic setup for both providers that takes you through OAuth account creation and secure API key generation.
:::

- **Tetrate Agent Router**: Unified API gateway for AI models including Claude, Gemini, GPT, open-weight models, and others. The developer's shortest path to models with enterprise-grade routing, built-in rate limiting, and automatic failover.

Manage your account at [router.tetrate.ai](https://router.tetrate.ai/dashboard).

- **OpenRouter**: Provides a unified interface for LLMs that allows you to select and switch between different providers automatically - all under a single billing plan. With OpenRouter, you can utilize free models or purchase credits for paid models.

Manage your account at [openrouter.ai](https://openrouter.ai).

When Goose sends your requests through one of these providers, the provider will automatically switch models when necessary to avoid interruptions due to rate limiting.
77 changes: 35 additions & 42 deletions documentation/docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import TabItem from '@theme/TabItem';
import Link from "@docusaurus/Link";
import { IconDownload } from "@site/src/components/icons/download";
import { RateLimits } from '@site/src/components/RateLimits';
import { DesktopProviderSetup } from '@site/src/components/DesktopProviderSetup';
import { ModelSelectionTip } from '@site/src/components/ModelSelectionTip';
import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed';
import MacDesktopInstallButtons from '@site/src/components/MacDesktopInstallButtons';
Expand Down Expand Up @@ -98,58 +97,56 @@ Let's begin 🚀

Learn about prerequisites in the [installation guide](/docs/getting-started/installation).

:::info PATH Warning And Keyring
If you see a PATH warning after installation, you'll need to add Goose to your PATH before running `goose configure`. See the [Windows CLI installation instructions](/docs/getting-started/installation) for detailed steps.

If prompted during configuration, choose to not store to keyring. If you encounter keyring errors, see the [Windows setup instructions](/docs/getting-started/installation#set-llm-provider) for more information.
:::

</TabItem>
</Tabs>
</TabItem>
</Tabs>

## Configure Provider

Goose works with [supported LLM providers][providers]. On first use, you'll be prompted to configure your preferred provider.
Goose works with [supported LLM providers][providers] that give Goose the AI intelligence it needs to understand your requests. On first use, you'll be prompted to configure your preferred provider.

<Tabs groupId="interface">
<TabItem value="ui" label="Goose Desktop" default>
<DesktopProviderSetup />

On the welcome screen, choose `Automatic setup with Tetrate Agent Router`.

Goose will open a browser for you to authenticate.

:::info Free Credits Offer
You'll receive $10 in free credits the first time you automatically authenticate with Tetrate through Goose. This offer is available to both new and existing Tetrate users and is valid through October 2, 2025.
:::

Tetrate provides access to multiple AI models with built-in rate limiting and automatic failover. If you prefer a different provider, choose automatic setup with OpenRouter or manually configure a provider.

</TabItem>
<TabItem value="cli" label="Goose CLI">
Use the up and down arrow keys to navigate the CLI menu, and press Enter once you've selected a choice. Be ready to provide your API key.

Example configuration flow:

```
┌ 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
│▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪
◇ Enter a model from that provider:
│ gemini-2.0-flash-exp
◇ Hello! You're all set and ready to go, feel free to ask me anything!
└ Configuration saved successfully
```

<RateLimits />
On the welcome screen, choose `Tetrate Agent Router Service Login`. Use the up and down arrow keys to navigate the options, then press `Enter` to select.

Goose will open a browser for you to authenticate.

:::info Free Credits Offer
You'll receive $10 in free credits the first time you automatically authenticate with Tetrate through Goose. This offer is available to both new and existing Tetrate users and is valid through October 2, 2025.
:::

Tetrate provides access to multiple AI models with built-in rate limiting and automatic failover. If you prefer a different provider, choose automatic setup with OpenRouter or manually configure a provider.

</TabItem>
</Tabs>

:::tip
<ModelSelectionTip />
:::

## Start Session
Sessions are single, continuous conversations between you and Goose. Let's start one.

<Tabs groupId="interface">
<TabItem value="ui" label="Goose Desktop" default>
After choosing an LLM provider, you’ll see the session interface ready for use.
After choosing an LLM provider, click the `Home` button in the sidebar.

Type your questions, tasks, or instructions directly into the input field, and Goose will immediately get to work.
</TabItem>
Expand Down Expand Up @@ -183,7 +180,7 @@ create an interactive browser-based tic-tac-toe game in javascript where a playe
Goose will create a plan and then get right to work on implementing it. Once done, your directory should contain a JavaScript file as well as an HTML page for playing.


## Install an Extension
## Enable an Extension

While you're able to manually navigate to your working directory and open the HTML file in a browser, wouldn't it be better if Goose did that for you? Let's give Goose the ability to open a web browser by enabling the `Computer Controller` extension.

Expand All @@ -202,7 +199,7 @@ While you're able to manually navigate to your working directory and open the HT
```sh
goose configure
```
3. Choose `Add extension` > `Built-in Extension` > `Computer Controller`, and set timeout to 300s. This [extension](https://block.github.io/goose/v1/extensions/detail/nondeveloper) enables webscraping, file caching, and automations.
3. Choose `Add Extension` > `Built-in Extension` > `Computer Controller`, and set the timeout to 300s. This [extension](/docs/mcp/computer-controller-mcp) enables webscraping, file caching, and automations.
```
┌ goose-configure
Expand All @@ -213,16 +210,12 @@ While you're able to manually navigate to your working directory and open the HT
│ Built-in Extension
◇ Which built-in extension would you like to enable?
│ ○ Developer Tools
│ ● Computer Controller (controls for webscraping, file caching, and automations)
│ ○ Google Drive
│ ○ Memory
│ ○ JetBrains
│ Computer Controller
◇ Please set the timeout for this tool (in secs):
│ 300
└ Enabled Computer Controller extension
└ Enabled computercontroller extension
```
4. Now that Goose has browser capabilities, let's resume your last session:
```sh
Expand All @@ -233,7 +226,7 @@ While you're able to manually navigate to your working directory and open the HT
</Tabs>

```
open index.html in a browser
open the tic-tac-toe game in a browser
```

Go ahead and play your game, I know you want to 😂 ... good luck!
Expand Down
14 changes: 0 additions & 14 deletions documentation/src/components/DesktopProviderSetup.js

This file was deleted.

Loading