mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-17 22:24:21 +01:00
docs: restructure menu (#769)
This commit is contained in:
138
documentation/docs/getting-started/installation.md
Normal file
138
documentation/docs/getting-started/installation.md
Normal file
@@ -0,0 +1,138 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
import Link from "@docusaurus/Link";
|
||||
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).
|
||||
:::
|
||||
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
#### Installing the Goose CLI
|
||||
To install Goose, run the following script on macOS or Linux.
|
||||
|
||||
```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.
|
||||
|
||||
:::tip Best Practice
|
||||
It’s best to keep Goose updated. You can update it by re-running the installation script.
|
||||
:::
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
#### Installing the Goose Desktop Application
|
||||
To install Goose, click the **button** below:
|
||||
<div className="pill-button">
|
||||
<Link
|
||||
className="button button--primary button--lg"
|
||||
to="https://github.com/block/goose/releases/download/stable/Goose.zip"
|
||||
>
|
||||
<IconDownload />
|
||||
download goose desktop
|
||||
</Link>
|
||||
</div>
|
||||
<div style={{ marginTop: '1rem' }}>
|
||||
1. Unzip the downloaded `Goose.zip` file.
|
||||
2. Run the executable file to launch the Goose desktop application.
|
||||
:::tip Best Practice
|
||||
It’s best to keep Goose updated. You can do this by checking the [Goose GitHub Release page](https://github.com/block/goose/releases/stable) and downloading updates when available.
|
||||
:::
|
||||
</div>
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### Set Up a 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:
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||

|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||

|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### Update a Provider
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
**To update your LLM provider and API key:**
|
||||
1. Run the following command:
|
||||
```sh
|
||||
goose configure
|
||||
```
|
||||
2. Select `Configure Providers` from the menu.
|
||||
3. Follow the prompts to choose your LLM provider and enter or update your API key.
|
||||
|
||||
**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
|
||||
|
||||
Which Model provider should we use?
|
||||
> OpenAI
|
||||
Databricks
|
||||
Ollama
|
||||
.....
|
||||
|
||||
Enter Api Key:
|
||||
> sk-1234abcd5678efgh
|
||||
```
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
**To update your LLM provider and API key:**
|
||||
|
||||
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>
|
||||
|
||||
:::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 the [Handling Rate Limits][handling-rate-limits] guide to learn how to efficiently manage these limits while using Goose.
|
||||
:::
|
||||
|
||||
## 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
|
||||
goose session
|
||||
```
|
||||
</TabItem>
|
||||
<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.
|
||||
|
||||
Type your questions, tasks, or instructions directly into the input field, and Goose will get to work immediately.
|
||||
|
||||

|
||||
</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].
|
||||
|
||||
[using-extensions]: /docs/getting-started/using-extensions
|
||||
[providers]: /docs/getting-started/providers
|
||||
[handling-rate-limits]: /docs/guides/handling-llm-rate-limits-with-goose
|
||||
[mcp]: https://www.anthropic.com/news/model-context-protocol
|
||||
117
documentation/docs/getting-started/providers.md
Normal file
117
documentation/docs/getting-started/providers.md
Normal file
@@ -0,0 +1,117 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
title: Configure LLM Provider
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Supported LLM Providers
|
||||
|
||||
You can use Goose with your preferred LLM. Goose supports a variety of LLM providers. To configure your chosen provider or see available options, run `goose configure` in the CLI or visit the `Provider Settings` page in the Goose Desktop.
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
1. Run the following command:
|
||||
```sh
|
||||
goose configure
|
||||
```
|
||||
2. Select `Configure Providers` from the menu.
|
||||
|
||||

|
||||
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
**To update your LLM provider and API key:**
|
||||
|
||||
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`.
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## 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.
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
Anthropic is an AI research company that offers advanced language models through its API. Their primary model is Claude, which comes in various versions.
|
||||
|
||||
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
|
||||
|
||||
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).
|
||||
|
||||
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
|
||||
|
||||
Groq is an AI company that offers high-performance inference for large language models. They provide access to various models through their API.
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
1. Run the following command and choose "Configure Providers":
|
||||
```sh
|
||||
goose configure
|
||||
```
|
||||
|
||||
2. Select `OpenRouter` from the list of providers and input your `OPENROUTER_API_KEY`, set up via the [OpenRouter Console](https://openrouter.ai/).
|
||||
|
||||
@@ -1,25 +1,41 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
sidebar_position: 3
|
||||
title: Using Extensions
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Using Extensions
|
||||
Extensions are add-ons that provide a way to extend the functionality of Goose by connecting with applications and tools you already use in your workflow. These extensions can be used to add new features, access data and resources, or integrate with other systems.
|
||||
|
||||
:::info Supported Environments
|
||||
Goose currently works only on **OSX** 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) to let us know.
|
||||
:::
|
||||
Extensions are based on the [Model Context Protocol (MCP)](https://github.com/modelcontextprotocol), so you can connect
|
||||
Goose to a wide ecosystem of capabilities.
|
||||
|
||||
Goose Extensions are add-ons that provide a way to extend the functionality of Goose by connecting with applications and tools you already use in your workflow. These extensions can be used to add new features, access data and resources, or integrate with other systems.
|
||||
## Built-in Extensions
|
||||
Out of the box, Goose is installed with a few extensions but with only the `Developer` extension enabled by default.
|
||||
|
||||
### Adding An Extension
|
||||
When you install Goose, a few built-in extensions are included. In addition, you can add external extensions that were developed on the [Model Context Protocol (MCP)][mcp].
|
||||
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.
|
||||
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.
|
||||
|
||||
|
||||
#### Toggling Built-in Extensions
|
||||
|
||||
<Tabs groupId="interface">
|
||||
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
|
||||
**To add an extension:**
|
||||
If you know the exact name of the extension you'd like to add, run:
|
||||
|
||||
```sh
|
||||
goose mcp {name}
|
||||
```
|
||||
|
||||
To navigate through available extensions:
|
||||
|
||||
1. Run the following command:
|
||||
```sh
|
||||
@@ -54,21 +70,108 @@ When you install Goose, a few built-in extensions are included. In addition, you
|
||||
> Jetbrains
|
||||
```
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
**Extensions can be installed directly from the [directory page][extensions-directory] to the Goose UI as shown below.**
|
||||
|
||||

|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
1. Locate the menu (...) 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.
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### Toggle Extensions
|
||||
|
||||
You can manage extensions by enabling or disabling them based on your workflow needs. Both, the CLI and UI, allow you to toggle extensions on or off as necessary.
|
||||
:::tip
|
||||
All of Goose's built-in extensions are MCP servers in their own right. If you'd like
|
||||
to use the MCP servers included with Goose with any other agent, you are free to do so.
|
||||
:::
|
||||
|
||||
|
||||
## Discovering Extensions
|
||||
|
||||
Goose provides a [central directory][extensions-directory] of extensions that you can install and use. The page will give you a test command to try out extensions before installing them.
|
||||
|
||||
## Adding Extensions
|
||||
|
||||
Extensions can be installed directly via the [extensions directory][extensions-directory], CLI, or UI.
|
||||
|
||||
:::tip
|
||||
For advanced users, you can also edit the `~/.config/goose/config.yaml` file directly to add an extension.
|
||||
:::
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
**To enable or disable extensions that are already installed:**
|
||||
|
||||
1. Run the following command:
|
||||
|
||||
```
|
||||
goose configure
|
||||
```
|
||||
2. Select `Add Extension` from the menu.
|
||||
3. Choose the type of extension you’d like to add:
|
||||
- `Built-In Extension`: Use an extension that comes pre-installed with Goose.
|
||||
- `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.
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
|
||||
|
||||
1. Locate the menu (...) 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.
|
||||
|
||||

|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### MCP Servers
|
||||
|
||||
You can install [any MCP server](https://github.com/modelcontextprotocol/servers?tab=readme-ov-file#model-context-protocol-servers) as a Goose extension.
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
|
||||
1. Run
|
||||
```sh
|
||||
goose configure
|
||||
```
|
||||
2. Choose `Add Extension`
|
||||
3. Choose `Command-line Extension`
|
||||
|
||||
You'll then be prompted to enter a command and any environment variables needed. For example, to connect to the [Fetch Server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch), enter `uvx mcp-server-fetch` as the command.
|
||||
|
||||
:::tip
|
||||
You can also directly edit the resulting config entry (`~/.config/goose/config.yaml`), which would look like this:
|
||||
|
||||
```yaml
|
||||
extensions:
|
||||
fetch:
|
||||
name: fetch
|
||||
cmd: uvx
|
||||
args: [mcp-server-fetch]
|
||||
enabled: true
|
||||
envs: {}
|
||||
type: stdio
|
||||
```
|
||||
:::
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
|
||||
1. Click `...` in the top right corner of the Goose Desktop.
|
||||
2. Select `Settings` from the menu.
|
||||
3. Under `Extensions`, you can add a MCP server as an extension manually by clicking on the (+) button to the right.
|
||||
4. In the dialog that appears, enter the details of the MCP server including any environment variables needed.
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Enabling/Disabling Extensions
|
||||
|
||||
You can enable or disable installed extensions based on your workflow needs.
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
1. Run the following command to open up Goose's configurations:
|
||||
```sh
|
||||
goose configure
|
||||
@@ -91,9 +194,7 @@ You can manage extensions by enabling or disabling them based on your workflow n
|
||||
[X] JetBrains
|
||||
```
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
**To enable or disable extensions that are already installed:**
|
||||
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
1. Click the three dots in the top-right corner of the application.
|
||||
2. Select `Settings` from the menu, then click on the `Extensions` section.
|
||||
2. Use the toggle switch next to each extension to enable or disable it.
|
||||
@@ -103,12 +204,46 @@ You can manage extensions by enabling or disabling them based on your workflow n
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## Additional Resources
|
||||
|
||||
Visit the [Installation Guide][installation-guide] for detailed instructions on how to update your LLM provider.
|
||||
## Removing Extensions
|
||||
|
||||
[providers]: /docs/configuration/providers
|
||||
[handling-rate-limits]: /docs/guides/handling-llm-rate-limits-with-goose
|
||||
[mcp]: https://www.anthropic.com/news/model-context-protocol
|
||||
[installation-guide]: /docs/installation/#update-a-provider
|
||||
[extensions-directory]: https://silver-disco-nvm6v4e.pages.github.io/
|
||||
You can remove installed extensions.
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Config file" default>
|
||||
To remove extensions, open `~/.config/goose/config.yaml` and delete the extensions.
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
|
||||
1. Click `...` in the top right corner of the Goose Desktop.
|
||||
2. Select `Settings` from the menu.
|
||||
3. Under `Extensions`, find the extension you'd like to remove and click on the settings icon beside it.
|
||||
4. In the dialog that appears, click `Remove Extension`.
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Starting a Session with Extensions
|
||||
|
||||
You can start a tailored goose session with specific extensions directly from the CLI. To do this, run the following command:
|
||||
|
||||
```bash
|
||||
goose session --with-extension "{extension command}"
|
||||
```
|
||||
|
||||
:::note
|
||||
You may need to set necessary environment variables for the extension to work correctly.
|
||||
```bash
|
||||
goose session --with-extension "VAR=value command arg1 arg2"
|
||||
```
|
||||
:::
|
||||
|
||||
## Developing Extensions
|
||||
Goose extensions are implemented with MCP, a standard protocol that allows AI models and agents to securely connect with local or remote resources. Learn how to build your own [extension as an MCP server](https://modelcontextprotocol.io/quickstart/server).
|
||||
|
||||
|
||||
[extensions-directory]: https://block.github.io/goose/v1/extensions
|
||||
@@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem';
|
||||
# Using Goose for Free
|
||||
|
||||
:::info Supported Environments
|
||||
Goose currently works only on **OSX** 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) to let us know.
|
||||
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 is a free and open source developer AI agent that you can start using right away, but not all supported [LLM Providers][providers] provide a free tier.
|
||||
@@ -34,7 +34,7 @@ To set up Google Gemini with Goose, follow these steps:
|
||||

|
||||
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
**To update your LLM provider and API key:**
|
||||
|
||||
1. Click on the three dots in the top-right corner.
|
||||
@@ -54,4 +54,4 @@ These free options are a great way to get started with Goose and explore its cap
|
||||
If you have any questions or need help with a specific provider, feel free to reach out to us on [Discord](https://discord.gg/block-opensource) or on the [Goose repo](https://github.com/block/goose).
|
||||
|
||||
|
||||
[providers]: /docs/configuration/providers
|
||||
[providers]: /docs/getting-started/providers
|
||||
Reference in New Issue
Block a user