diff --git a/documentation/docs/getting-started/installation.md b/documentation/docs/getting-started/installation.md index a23a2a21e4a..19568907100 100644 --- a/documentation/docs/getting-started/installation.md +++ b/documentation/docs/getting-started/installation.md @@ -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'; @@ -147,25 +147,47 @@ import { PanelLeft } from 'lucide-react'; - 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: + +
+ For Git Bash/MSYS2 + ```bash + echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc + source ~/.bashrc + ``` +
+ +
+ For PowerShell + ```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 + ``` +
+ + After updating your PATH, you can run `goose` commands from any directory. :::
@@ -203,6 +225,14 @@ 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 + ``` +
@@ -210,73 +240,56 @@ import { PanelLeft } from 'lucide-react'; ## 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. - + On the welcome screen, choose how to configure a provider: + - 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. - ::: + - 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 ``` @@ -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. diff --git a/documentation/docs/guides/handling-llm-rate-limits-with-goose.md b/documentation/docs/guides/handling-llm-rate-limits-with-goose.md index 8b3fb6df6bb..9f3fae3714c 100644 --- a/documentation/docs/guides/handling-llm-rate-limits-with-goose.md +++ b/documentation/docs/guides/handling-llm-rate-limits-with-goose.md @@ -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). - - - - 1. Click the 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`. - - - 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. - - - - -Now Goose will send your requests through OpenRouter which will automatically switch models when necessary to avoid interruptions due to rate limiting. \ No newline at end of file +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. diff --git a/documentation/docs/quickstart.md b/documentation/docs/quickstart.md index ab457b13749..32a844b4559 100644 --- a/documentation/docs/quickstart.md +++ b/documentation/docs/quickstart.md @@ -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'; @@ -98,6 +97,12 @@ 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. + ::: + @@ -105,51 +110,43 @@ Let's begin 🚀 ## 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. - + + 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. + - 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 - ``` - + 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. + -:::tip - -::: - ## Start Session Sessions are single, continuous conversations between you and Goose. Let's start one. - 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. @@ -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. @@ -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 │ @@ -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 @@ -233,7 +226,7 @@ While you're able to manually navigate to your working directory and open the HT ``` -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! diff --git a/documentation/src/components/DesktopProviderSetup.js b/documentation/src/components/DesktopProviderSetup.js deleted file mode 100644 index 0c77aea3892..00000000000 --- a/documentation/src/components/DesktopProviderSetup.js +++ /dev/null @@ -1,14 +0,0 @@ -import React from "react"; - -export const DesktopProviderSetup = () => { - return ( - <> -

On the welcome screen, choose how to configure a provider:

- - - ); -}; diff --git a/documentation/src/components/OnboardingProviderSetup.js b/documentation/src/components/OnboardingProviderSetup.js new file mode 100644 index 00000000000..3922db2ead1 --- /dev/null +++ b/documentation/src/components/OnboardingProviderSetup.js @@ -0,0 +1,30 @@ +import React from "react"; + +export const OnboardingProviderSetup = () => { + return ( + <> + + + ); +};