diff --git a/documentation/docs/assets/guides/gemini-config-cli.png b/documentation/docs/assets/guides/gemini-config-cli.png index 0360c30d2..c8297f258 100644 Binary files a/documentation/docs/assets/guides/gemini-config-cli.png and b/documentation/docs/assets/guides/gemini-config-cli.png differ diff --git a/documentation/docs/assets/guides/set-up-provider-ui.png b/documentation/docs/assets/guides/set-up-provider-ui.png index 1ad7c2931..ccd1ba7e1 100644 Binary files a/documentation/docs/assets/guides/set-up-provider-ui.png and b/documentation/docs/assets/guides/set-up-provider-ui.png differ diff --git a/documentation/docs/getting-started/installation.md b/documentation/docs/getting-started/installation.md index 8e8ee9d96..2f76af215 100644 --- a/documentation/docs/getting-started/installation.md +++ b/documentation/docs/getting-started/installation.md @@ -10,14 +10,13 @@ import { IconDownload } from "@site/src/components/icons/download"; # Install Goose :::info Supported Environments -Goose currently works on **macOS** and **Linux** systems, and supports both **ARM** and **x86** architectures. If you'd like to request support for additional operating systems, please [open an issue on GitHub](https://github.com/block/goose/issues/new?template=Blank+issue). +Goose currently works on **macOS** and **Linux** systems and supports both **ARM** and **x86** architectures. If you'd like to request support for additional operating systems, please [open an issue on GitHub](https://github.com/block/goose/issues/new?template=Blank+issue). ::: - #### Installing the Goose CLI - To install Goose, run the following script on macOS or Linux. + Run the following command to install the latest version of Goose: ```sh curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | sh @@ -29,7 +28,6 @@ Goose currently works on **macOS** and **Linux** systems, and supports both **AR ::: - #### Installing the Goose Desktop Application To install Goose, click the **button** below:
-### Set Up a Provider +### Set LLM Provider 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. -The process will look similar to the example below: - - ![Set Up a Provider](../assets/guides/set-up-provider.png) + Upon installing, Goose will automatically enter its configuration screen. Here is where you can set up your LLM provider. + + ``` + ┌ 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 + │▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ + │ + ◇ 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 + ``` + Upon installing, the Provider screen will appear. Here is where you can choose your LLM Provider. + ![Set Up a Provider UI](../assets/guides/set-up-provider-ui.png) + + Once selecting your provider, you'll be prompted to enter an API key if applicable. Do so, and click `Submit`. @@ -77,22 +97,26 @@ The process will look similar to the example below: **Example:** - To select an option during configuration, hover over it and press Enter. + To select an option during configuration, use the up and down arrows to highlight your choice then press Enter. - ```sh - What would you like to configure? - > Configure Providers - Toggle Extensions - Add Extension - - Which Model provider should we use? - > OpenAI - Databricks - Ollama - ..... - - Enter Api Key: - > sk-1234abcd5678efgh + ``` + ┌ 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 there! You're all set to use me, so please ask away! + │ + └ Configuration saved successfully ``` diff --git a/documentation/docs/getting-started/providers.md b/documentation/docs/getting-started/providers.md index 617b240c4..71fdc7de8 100644 --- a/documentation/docs/getting-started/providers.md +++ b/documentation/docs/getting-started/providers.md @@ -13,105 +13,127 @@ You can use Goose with your preferred LLM. Goose supports a variety of LLM provi 1. Run the following command: + ```sh goose configure ``` - 2. Select `Configure Providers` from the menu. - ![Provider Config](../assets/guides/goose-providers-cli.png) - - - - **To update your LLM provider and API key:** + 2. Select `Configure Providers` from the menu and press Enter. - 1. Click on the three dots in the top-right corner. - 2. Select `Provider Settings` from the menu. - 3. Click Edit, enter your API key, and click `Set as Active`. + ``` + ┌ goose-configure + │ + ◆ What would you like to configure? + │ ● Configure Providers (Change provider or update credentials) + │ ○ Toggle Extensions + │ ○ Add Extension + └ + ``` + 3. Choose a model provider and press Enter. - - + ``` + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Configure Providers + │ + ◆ Which model provider should we use? + │ ● Anthropic (Claude and other models from Anthropic) + │ ○ Databricks + │ ○ Google Gemini + │ ○ Groq + │ ○ Ollama + │ ○ OpenAI + │ ○ OpenRouter + └ + ``` + 4. Enter you API key when prompted. Get more info on [how to obtain your API key](/docs/getting-started/providers#available-providers). -## Available Providers + + + ## Available Providers -- OpenAI -- Databricks -- Ollama -- Anthropic -- Google Gemini -- Groq -- OpenRouter + ### OpenAI + OpenAI offers powerful language models that include GPT-4, GPT-3.5-turbo, and more. -### OpenAI + 1. Run the following command and choose `Configure Providers`: + ```sh + goose configure + ``` + 2. Select `OpenAI` from the list of available providers. + 3. Enter your `OPENAI_API_KEY` when prompted, which you can obtain by registering at [OpenAI's platform](https://platform.openai.com/api-keys). -OpenAI offers powerful language models that include GPT-4, GPT-3.5-turbo, and more. + ### Databricks -1. Run the following command and choose "Configure Providers": - ```sh - goose configure - ``` -2. Select `OpenAI` from the list of available providers. -3. Enter your `OPENAI_API_KEY` when prompted, which you can obtain by registering at [OpenAI's platform](https://platform.openai.com/api-keys). + Databricks is a data analytics and AI platform that provides access to various AI models and tools. They offer integration with popular models and custom model deployment. -### Databricks + 1. Run the following command and choose `Configure Providers`: + ```sh + goose configure + ``` + 2. Select `Databricks` as your provider. + 3. Enter your `DATABRICKS_HOST` and `DATABRICKS_TOKEN`, which can be generated in your [Databricks Account Settings](https://www.databricks.com/). -Databricks is a data analytics and AI platform that provides access to various AI models and tools. They offer integration with popular models and custom model deployment. + ### Ollama -1. Run the following command and choose "Configure Providers": - ```sh - goose configure - ``` -2. Select `Databricks` as your provider. -3. Enter your `DATABRICKS_HOST` and `DATABRICKS_TOKEN`, which can be generated in your [Databricks Account Settings](https://www.databricks.com/). + Ollama is an open-source project that allows running large language models locally. It supports various open-source models and provides an API for integration. -### Ollama + 1. Run the following command and choose `Configure Providers`: + ```sh + goose configure + ``` + 2. Select `Ollama` and follow the steps to download and set up your models as detailed on [Ollama's site](https://ollama.com/). Requires `OLLAMA_HOST`. -Ollama is an open-source project that allows running large language models locally. It supports various open-source models and provides an API for integration. + ### Anthropic -1. Run the following command and choose "Configure Providers": - ```sh - goose configure - ``` -2. Select `Ollama` and follow the steps to download and set up your models as detailed on [Ollama's site](https://ollama.com/). Requires `OLLAMA_HOST`. + Anthropic is an AI research company that offers advanced language models through its API. Their primary model is Claude, which comes in various versions. -### Anthropic + 1. Run the following command and choose `Configure Providers`: + ```sh + goose configure + ``` + 2. Choose `Anthropic` and provide the `ANTHROPIC_API_KEY`, obtainable via [Anthropic's platform](https://www.anthropic.com/). -Anthropic is an AI research company that offers advanced language models through its API. Their primary model is Claude, which comes in various versions. + ### Google Gemini -1. Run the following command and choose "Configure Providers": - ```sh - goose configure - ``` -2. Choose `Anthropic` and provide the `ANTHROPIC_API_KEY`, obtainable via [Anthropic's platform](https://www.anthropic.com/). + Google Gemini is a suite of large language models developed by Google. It offers multimodal capabilities and can be accessed through the [Google AI Studio](https://ai.google.dev/gemini-api/docs). -### Google Gemini + 1. Run the following command and choose `Configure Providers`: + ```sh + goose configure + ``` + 2. Pick `Google Gemini` from the list of providers and input your `GOOGLE_API_KEY`. -Google Gemini is a suite of large language models developed by Google. It offers multimodal capabilities and can be accessed through the [Google AI Studio](https://ai.google.dev/gemini-api/docs). + ### Groq -1. Run the following command and choose "Configure Providers": - ```sh - goose configure - ``` -2. Pick `Google Gemini` from the list of providers and input your `GOOGLE_API_KEY`. . + Groq is an AI company that offers high-performance inference for large language models. They provide access to various models through their API. -### Groq + 1. Run the following command and choose `Configure Providers`: + ```sh + goose configure + ``` + 2. Select `Groq` from the list of providers and input your `GROQ_API_KEY`, set up via the [Groq Console](https://groq.com/). -Groq is an AI company that offers high-performance inference for large language models. They provide access to various models through their API. + ### OpenRouter -1. Run the following command and choose "Configure Providers": - ```sh - goose configure - ``` -2. Select `Groq` from the list of providers and input your `GROQ_API_KEY`, set up via the [Groq Console](https://groq.com/). + OpenRouter is a platform that provides access to multiple AI models from various providers through a single API. It simplifies the process of using different AI models in applications. -### OpenRouter + 1. Run the following command and choose `Configure Providers`: + ```sh + goose configure + ``` -OpenRouter is a platform that provides access to multiple AI models from various providers through a single API. It simplifies the process of using different AI models in applications. + 2. Select `OpenRouter` from the list of providers and input your `OPENROUTER_API_KEY`, set up via the [OpenRouter Console](https://openrouter.ai/). -1. Run the following command and choose "Configure Providers": - ```sh - goose configure - ``` + + + + **To update your LLM provider and API key:** -2. Select `OpenRouter` from the list of providers and input your `OPENROUTER_API_KEY`, set up via the [OpenRouter Console](https://openrouter.ai/). + 1. Click the three dots (`...`) in the top-right corner. + 2. Select `Provider Settings` from the menu. + 3. Click Edit, enter your API key, and click `Set as Active`. + + diff --git a/documentation/docs/getting-started/using-extensions.md b/documentation/docs/getting-started/using-extensions.md index 3a9dbe807..b667d9bff 100644 --- a/documentation/docs/getting-started/using-extensions.md +++ b/documentation/docs/getting-started/using-extensions.md @@ -17,7 +17,7 @@ Out of the box, Goose is installed with a few extensions but with only the `Deve Here are the built-in extensions: 1. **Developer**: provides a set of general development tools that are useful for software development. -2. **Non-Developer**: provides general computer control tools that doesn't require you to be a developer or engineer. +2. **Computer Controller**: provides general computer control tools for webscraping, file caching, and automations. 3. **Memory**: teaches goose to remember your preferences as you use it 4. **JetBrains**: provides an integration for working with JetBrains IDEs. 5. **Google Drive**: provides an integration for working with Google Drive for file management and access. @@ -52,26 +52,26 @@ Here are the built-in extensions: To select an option during configuration, hover over it and press Enter. - ```sh - What would you like to configure? - Configure Providers - Toggle Extensions - > Add Extension - - - What type of extension would you like to add? - > Built-in Extension - Command-line Extension - Remote Extension - - Which Built-in extension would you like to enable? - Developer Tools - Non Developer - > Jetbrains + ``` + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ 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 + └ ``` - 1. Locate the menu (...) in the top right corner of the Goose Desktop. + 1. Click `...` in the top right corner of the Goose Desktop. 2. Select `Settings` from the menu. 3. Under `Extensions`, you can toggle the built-in extensions on or off. @@ -110,11 +110,34 @@ For advanced users, you can also edit the `~/.config/goose/config.yaml` file dir - `Command-Line Extension`: Add a local command or script to run as an extension. - `Remote Extension`: Connect to a remote system via SSE (Server-Sent Events). 4. Follow the prompts based on the type of extension you selected. + + Example of adding Command-Line Extension: + + ``` + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ Command-line Extension + │ + ◇ What would you like to call this extension? + │ fetch + │ + ◇ What command should be run? + │ uvx mcp-server-fetch + │ + ◇ Would you like to add environment variables? + │ No + │ + └ Added fetch extension + ``` + - - 1. Locate the menu (...) in the top right corner of the Goose Desktop. + 1. Click `...` in the top right corner of the Goose Desktop. 2. Select `Settings` from the menu. 3. Under `Extensions`, you can toggle the built-in extensions on or off. @@ -178,20 +201,20 @@ You can enable or disable installed extensions based on your workflow needs. ``` 2. Select `Toggle Extensions` from the menu. 3. A list of already installed extensions will populate. - 4. Press the `space bar` to toggle the extension `enabled` or `disabled`. + 4. Press the `space bar` to toggle the extension. Solid means enabled. **Example:** - To select an option during configuration, hover over it and press Enter. - ```sh - What would you like to configure? - Configure Providers - > Toggle Extensions - Add Extension - - Enable systems: (use "space" to toggle and "enter" to submit) - [ ] Developer Tools - [X] JetBrains + ``` + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Toggle Extensions + │ + ◆ enable extensions: (use "space" to toggle and "enter" to submit) + │ ◼ developer + │ ◻ fetch + └ ``` diff --git a/documentation/docs/getting-started/using-goose-free.md b/documentation/docs/getting-started/using-goose-free.md index 44d0f6176..9394e91c6 100644 --- a/documentation/docs/getting-started/using-goose-free.md +++ b/documentation/docs/getting-started/using-goose-free.md @@ -31,7 +31,25 @@ To set up Google Gemini with Goose, follow these steps: 2. Select `Configure Providers` from the menu. 3. Follow the prompts to choose `Google Gemini` as the provider and enter your API key. - ![Gemini Config](../assets/guides/gemini-config-cli.png) + ``` + ┌ 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 + ``` diff --git a/documentation/docs/quickstart.md b/documentation/docs/quickstart.md index a19dcba90..ca7b14c9d 100644 --- a/documentation/docs/quickstart.md +++ b/documentation/docs/quickstart.md @@ -11,27 +11,26 @@ import { IconDownload } from "@site/src/components/icons/download"; # Goose in 5 minutes :::info Supported Environments -Goose currently works only on **macOS** and **Linux** systems, and supports both **ARM** and **x86** architectures. If you'd like to request support for additional operating systems, please [open an issue on GitHub](https://github.com/block/goose/issues/new?template=Blank+issue). +Goose currently works on **macOS** and **Linux** systems and supports both **ARM** and **x86** architectures. If you'd like to request support for additional operating systems, please [open an issue on GitHub](https://github.com/block/goose/issues/new?template=Blank+issue). ::: -Goose is a developer AI agent that supercharges your software development by automating coding tasks. This Quickstart will guide you through getting started with Goose and covers using both the CLI and Desktop UI. +Goose is an open source AI agent that supercharges your software development by automating coding tasks. This quick tutorial will guide you through getting started with Goose! ## Install Goose +You can use Goose via CLI or Desktop application. + - #### Installing the Goose CLI - To install Goose, run the following script on macOS or Linux. + Run the following command to install the latest version of Goose: ```sh curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | sh ``` - This script will fetch the latest version of Goose and set it up on your system. - #### Installing the Goose Desktop Application - To install Goose, click the **button** below: + To install the latest version of Goose, click the **button** below:
- ![Set Up a Provider](./assets/guides/set-up-provider.png) + Use the up and down arrow keys to navigate the CLI menu, and press Enter once you've selected a choice. + + ``` + ┌ 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 + ``` ![Set Up a Provider UI](./assets/guides/set-up-provider-ui.png) @@ -64,13 +81,18 @@ The process will look similar to the example below: :::info Billing - You will need to have credits in your LLM Provider account (when necessary) to be able to successfully make requests. Some providers also have rate limits on API usage, which can affect your experience. Check out our [Handling Rate Limits][handling-rate-limits] guide to learn how to efficiently manage these limits while using Goose. + [Google Gemini](https://aistudio.google.com/app/apikey) offers a free tier you can get started with. Otherwise, you'll need to ensure that you have credits available in your LLM Provider account to successfully make requests. + + Some providers also have rate limits on API usage, which can affect your experience. Check out our [Handling Rate Limits][handling-rate-limits] guide to learn how to efficiently manage these limits while using Goose. ::: ## Start Session +Sessions are single, continuous conversations between you and Goose. Let's start one. + - From your terminal, navigate to the directory from which you'd like to start, and run: + 1. Make an empty directory (e.g. `goose-demo`) and navigate to that directory from the terminal. + 2. To start a new session, run: ```sh goose session ``` @@ -86,23 +108,74 @@ The process will look similar to the example below: ## Write Prompt -You will see the Goose prompt `( O)>`. From here, you can interact with Goose in conversational sessions. Think of it as you're giving directions to a junior developer. +From the prompt, you can interact with Goose by typing your instructions exactly as you would speak to a developer. + +Let's ask Goose to make a tic-tac-toe game! ``` -( O)> type your instructions here exactly as you would speak to a developer. +create an interactive browser-based tic-tac-toe game in javascript where a player competes against a bot ``` -Here's an example: +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 + +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. + + + + 1. End the current session by entering `Ctrl+C` so that you can return to the terminal's command prompt. + 2. Run the configuration command + ```sh + goose configure + ``` + 3. Choose `Add extension` > `Built-in Extension` > `Computer Controller`. This [extension](https://block.github.io/goose/v1/extensions/detail/nondeveloper) enables webscraping, file caching, and automations. + ``` + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Add Extension + │ + ◇ What type of extension would you like to add? + │ 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 + └ + ``` + 4. Now that Goose has browser capabilities, let's resume your last session: + ```sh + goose session -r + ``` + 5. Ask Goose to launch your game in a browser: + + + 1. Locate the menu (`...`) in the top right corner of the Goose Desktop. + 2. Select `Settings` from the menu. + 3. Under the `Extensions` section, toggle the `Computer Controller` extension to enable it. This [extension](https://block.github.io/goose/v1/extensions/detail/nondeveloper) enables webscraping, file caching, and automations. + 4. Click `<- Back` in the upper left corner to return to your session. + 5. Now that Goose has browser capabilities, let's ask it to launch your game in a browser: + + + ``` -Create a JavaScript project that fetches and displays weather for a user-specified city using a public API +open index.html in a browser ``` -You can interrupt Goose with `CTRL+C` while it is running to help redirect its efforts. +Go ahead and play your game, I know you want to 😂 ... good luck! + ## Next Steps +Congrats, you've successfully used Goose to develop a web app! 🎉 -* Install [Extensions][extensions-guide] to enhance Goose's functionality. +Here are some ideas for next steps: +* Continue your session with Goose and it improve your game (styling, functionality, etc). +* Browse other available [extensions][extensions-guide] and install more to enhance Goose's functionality even further. * Provide Goose with a [set of hints](/docs/guides/using-goosehints) to use within your sessions. diff --git a/documentation/src/css/custom.css b/documentation/src/css/custom.css index 38f7d772b..115a17583 100644 --- a/documentation/src/css/custom.css +++ b/documentation/src/css/custom.css @@ -225,3 +225,10 @@ html { .pill-button p { margin: 0; } + +/* Enable word-wrap for code blocks */ +.theme-code-block pre { + white-space: pre-wrap; + word-wrap: break-word; + overflow-wrap: break-word; +}