mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-18 06:34:26 +01:00
docs: restructure menu (#769)
This commit is contained in:
@@ -1,172 +0,0 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
title: Managing Goose Extensions
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
Extensions are add-ons that provide a way to extend the functionality of Goose. They also provide a way to connect Goose with applications and tools you already use in your workflow. These extensions can be used to add new features, automate tasks, or integrate with other systems.
|
||||
|
||||
Extensions are based on the [Model Context Protocol (MCP)](https://github.com/modelcontextprotocol), so you can connect
|
||||
Goose to a wide ecosystem of capabilities.
|
||||
|
||||
|
||||
## Adding Extensions
|
||||
|
||||
You can add extensions to Goose through the CLI or the UI.
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
|
||||
1. After the initial Goose setup, You can add extensions through the configuration system.
|
||||
|
||||
```
|
||||
goose configure
|
||||
```
|
||||
|
||||
2. Choose `Add Extension` to see the options.
|
||||
|
||||
You can also edit the config file directly, which is stored in `~/.config/goose/config.yaml`.
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
1. Locate the menu (...) in the top right corner of the Goose UI.
|
||||
2. Select `Settings` from the menu.
|
||||
3. Under `Extensions`, you can add (+) a new extension manually,
|
||||
4. Or [`Browse Extensions`][extensions] to find curated extensions.
|
||||
5. Click 'Install' on extension you'd like to add and it installs right in the Goose app.
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## Removing Extensions
|
||||
|
||||
You can remove extensions installed on Goose
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
At the moment, you can remove extensions by editing the config file directly, which is stored in `~/.config/goose/config.yaml`.
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
|
||||
1. Locate the menu (...) in the top right corner of the Goose UI.
|
||||
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>
|
||||
|
||||
## Built-in Extensions
|
||||
Out of the box, Goose is installed with a few extensions out of the box but with only the `Developer` extension enabled by default.
|
||||
|
||||
Here are the default extensions:
|
||||
|
||||
1. **Developer**: The `Developer` extension provides a set of general development tools that are useful for software development.
|
||||
2. **Non-Developer**: The `Non-Developer` extension provides general computer control tools that don't require you to be a developer or engineer.
|
||||
3. **Memory**: The `Memory` extension teaches goose to remember your preferences as you use it
|
||||
4. **JetBrains**: The `JetBrains` extension provides an integration for working with JetBrains IDEs.
|
||||
5. **Google Drive**: The `Google Drive` extension 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>
|
||||
1. Run Goose configuration:
|
||||
|
||||
```bash
|
||||
goose configure
|
||||
```
|
||||
2. Choose `Add Extension`
|
||||
3. Choose `Built-in Extension`
|
||||
|
||||
Alternatively, you can enable a built-in extension by specifying its name in this command:
|
||||
|
||||
```
|
||||
goose mcp {name}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
1. Locate the menu (...) in the top right corner of the Goose UI.
|
||||
2. Select `Settings` from the menu.
|
||||
3. Under `Extensions`, you can toggle the built-in extensions on or off.
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
:::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.
|
||||
:::
|
||||
|
||||
## MCP Servers
|
||||
|
||||
You can run any MCP server as a Goose extension.
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
|
||||
1. Run `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.
|
||||
|
||||
You can also edit the resulting config entry directly, 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 UI">
|
||||
|
||||
1. Locate the menu (...) in the top right corner of the Goose UI.
|
||||
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>
|
||||
|
||||
|
||||
## Discovering Extensions
|
||||
|
||||
Goose comes with a [central directory][extensions] of extensions that you can install and use. You can install extensions from the Goose CLI or from the Goose GUI. The page will give you a test command to try out extensions, and if you want to keep them, you can add through `goose configure`.
|
||||
|
||||
You can test out an extension for a single session with
|
||||
|
||||
```sh
|
||||
goose session --with-extension "command to run"
|
||||
```
|
||||
|
||||
|
||||
## 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 system that allows AI models and agents to securely connect with local or remote resources using standard protocols. Learn how to build your own [extension as an MCP server](https://modelcontextprotocol.io/quickstart/server).
|
||||
|
||||
|
||||
[extensions]: https://block.github.io/goose/v1/extensions
|
||||
@@ -3,11 +3,14 @@ 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";
|
||||
|
||||
# Installation
|
||||
|
||||
# Install Goose
|
||||
|
||||
:::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 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).
|
||||
:::
|
||||
|
||||
|
||||
@@ -25,16 +28,18 @@ Goose currently works only on **OSX** and **Linux** systems, and supports both *
|
||||
It’s best to keep Goose updated. You can update it by re-running the installation script.
|
||||
:::
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
#### Installing the Goose Desktop Application
|
||||
To install Goose, click the **button** below:
|
||||
<Button
|
||||
label=":arrow_down: Download Goose Desktop"
|
||||
link="https://github.com/block/goose/releases/download/stable/Goose.zip"
|
||||
variant="secondary"
|
||||
size="lg"
|
||||
outline
|
||||
/>
|
||||
<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.
|
||||
@@ -52,10 +57,10 @@ 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 UI">
|
||||

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

|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
@@ -90,7 +95,7 @@ The process will look similar to the example below:
|
||||
> sk-1234abcd5678efgh
|
||||
```
|
||||
</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.
|
||||
@@ -114,12 +119,12 @@ You will need to have credits in your LLM Provider account (when necessary) to b
|
||||
goose session
|
||||
```
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
Starting a session in the Goose UI is straightforward. After choosing your provider, you’ll see the session interface ready for use.
|
||||
<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>
|
||||
|
||||
@@ -127,7 +132,7 @@ You will need to have credits in your LLM Provider account (when necessary) to b
|
||||
|
||||
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/configuration/managing-extensions
|
||||
[providers]: /docs/configuration/providers
|
||||
[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
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
sidebar_position: 2
|
||||
title: Configure LLM Provider
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
@@ -7,7 +8,7 @@ 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 UI.
|
||||
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>
|
||||
@@ -20,7 +21,7 @@ You can use Goose with your preferred LLM. Goose supports a variety of LLM provi
|
||||

|
||||
|
||||
</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.
|
||||
@@ -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
|
||||
@@ -3,7 +3,7 @@ sidebar_position: 1
|
||||
---
|
||||
# Extensions Design
|
||||
|
||||
This document describes the design and implementation of the Extensions framework in Goose, which enables AI agents to interact with different extensions through a unified tool-based interface.
|
||||
This document describes the design and implementation of the [Extensions framework](/docs/getting-started/using-extensions) in Goose, which enables AI agents to interact with different extensions through a unified tool-based interface.
|
||||
|
||||
## Core Concepts
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ goose session --name <name> --with-extension <command>
|
||||
|
||||
- **`--with-builtin <NAME>`**
|
||||
|
||||
Starts the session with the specified [built-in extension](../configuration/managing-extensions.md#built-in-extensions) enabled. (e.g. 'developer')
|
||||
Starts the session with the specified [built-in extension](/docs/getting-started/using-extensions#built-in-extensions) enabled. (e.g. 'developer')
|
||||
|
||||
```bash
|
||||
goose session --with-builtin <name>
|
||||
|
||||
@@ -31,7 +31,7 @@ OpenRouter provides a unified interface for LLMs that allows you to select and s
|
||||
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>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
|
||||
1. Click on the three dots in the top-right corner.
|
||||
2. Select `Settings` from the menu.
|
||||
|
||||
@@ -10,7 +10,7 @@ import TabItem from '@theme/TabItem';
|
||||
A session is a single, continuous interaction between you and Goose, providing a space to ask questions and prompt action. In this guide, we'll cover how to start, exit, save, and resume.
|
||||
|
||||
|
||||
## Starting a Session
|
||||
## Start Session
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
@@ -19,7 +19,7 @@ A session is a single, continuous interaction between you and Goose, providing a
|
||||
goose session
|
||||
```
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
After choosing an LLM provider, you’ll see the session interface ready for use.
|
||||
|
||||
Type your questions, tasks, or instructions directly into the input field, and Goose will immediately get to work.
|
||||
@@ -27,7 +27,7 @@ A session is a single, continuous interaction between you and Goose, providing a
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## Naming a Session
|
||||
## Name Session
|
||||
<Tabs>
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
By default, Goose will provide a random string as the name of your session. If you'd like to provide a specific name, this is where you'd do so. For example to name your session `react-migration`, you would run:
|
||||
@@ -43,15 +43,15 @@ A session is a single, continuous interaction between you and Goose, providing a
|
||||
logging to ~/.config/goose/sessions/react-migration.json1
|
||||
```
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
Session management features, such as **naming** and **resuming** sessions, are **not** currently available in the Goose UI. If you'd like to see these features added, please [open an issue on GitHub](https://github.com/block/goose/issues/new?template=Blank+issue) to let us know.
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
Session management features, such as **naming** and **resuming** sessions, are **not** currently available in the Goose Desktop. If you'd like to see these features added, please [open an issue on GitHub](https://github.com/block/goose/issues/new?template=Blank+issue).
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
:::info
|
||||
If this is your first session, Goose will prompt you for an API key to access an LLM (Large Language Model) of your choice. For more information on setting up your API key, see the [Installation Guide](/docs/installation#set-up-a-provider). Here is the list of [supported LLMs](/docs/configuration/providers).
|
||||
If this is your first session, Goose will prompt you for an API key to access an LLM (Large Language Model) of your choice. For more information on setting up your API key, see the [Installation Guide](docs/getting-started/installation#set-up-a-provider). Here is the list of [supported LLMs](/docs/getting-started/providers).
|
||||
:::
|
||||
|
||||
## Exiting a Session
|
||||
## Exit Session
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
@@ -59,12 +59,14 @@ A session is a single, continuous interaction between you and Goose, providing a
|
||||
|
||||
Your session will be stored locally in `~/.config/goose/sessions`.
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
To exit a session, simply close the application.
|
||||
</TabItem>
|
||||
|
||||
</Tabs>
|
||||
## Resuming a Session
|
||||
|
||||
## Resume Session
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
To resume your latest session, you can run the following command:
|
||||
@@ -94,7 +96,7 @@ A session is a single, continuous interaction between you and Goose, providing a
|
||||
goose session -r -n react-migration
|
||||
```
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
Session management features, such as **naming** and **resuming** sessions, are **not** currently available in the Goose UI. If you'd like to see these features added, please [open an issue on GitHub](https://github.com/block/goose/issues/new?template=Blank+issue) to let us know.
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
Session management features, such as **naming** and **resuming** sessions, are **not** currently available in the Goose Desktop. If you'd like to see these features added, please [open an issue on GitHub](https://github.com/block/goose/issues/new?template=Blank+issue).
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
@@ -44,7 +44,7 @@ You can tell Goose to run things for you continuously and it will iterate, try,
|
||||
It doesn't have to be in a repo. Just ask Goose!
|
||||
|
||||
### Keep Goose updated
|
||||
Regularly update Goose to benefit from the latest features, bug fixes, and performance improvements. For the CLI, the best way to keep it updated is by re-running the [Goose installation script][installation]. For Goose UI, check the [GitHub Releases page][ui-release] regularly for updates.
|
||||
Regularly update Goose to benefit from the latest features, bug fixes, and performance improvements. For the CLI, the best way to keep it updated is by re-running the [Goose installation script][installation]. For Goose Desktop, check the [GitHub Releases page][ui-release] regularly for updates.
|
||||
|
||||
[installation]: https://block.github.io/goose/v1/docs/quickstart/#installation
|
||||
[ui-release]: https://github.com/block/goose/releases/stable
|
||||
@@ -8,13 +8,13 @@ sidebar_position: 3
|
||||
`.goosehints` is a text file used to provide additional context about your project and improve the communication with Goose. The use of `goosehints` ensures that Goose understands your requirements better and can execute tasks more effectively.
|
||||
|
||||
:::info Developer extension required
|
||||
To make use of the hints file, you need to have the `developer` extension [enabled](../configuration/managing-extensions).
|
||||
To make use of the hints file, you need to have the `developer` extension [enabled](../configuration/using-extensions).
|
||||
|
||||
:::
|
||||
|
||||
This guide will walk you through creating and using your `.goosehints` file to streamline your workflow with custom instructions and context.
|
||||
|
||||
## Creating your `.goosehints` file
|
||||
## Creating your hints file
|
||||
|
||||
Create a file named `.goosehints` and save the file in `~/.config/goose/.goosehints`. If saved here, Goose will use this file for every session with you.
|
||||
|
||||
|
||||
@@ -4,20 +4,20 @@ title: Quickstart
|
||||
---
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
import Link from "@docusaurus/Link";
|
||||
import { IconDownload } from "@site/src/components/icons/download";
|
||||
|
||||
|
||||
# Goose in 5 minutes
|
||||
|
||||
:::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).
|
||||
:::
|
||||
|
||||
## Quickstart
|
||||
|
||||
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.
|
||||
|
||||
|
||||
### Installation
|
||||
## Install Goose
|
||||
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
@@ -29,16 +29,18 @@ Goose is a developer AI agent that supercharges your software development by aut
|
||||
```
|
||||
This script will fetch the latest version of Goose and set it up on your system.
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
#### Installing the Goose Desktop Application
|
||||
To install Goose, click the **button** below:
|
||||
<Button
|
||||
label=":arrow_down: Download Goose Desktop"
|
||||
link="https://github.com/block/goose/releases/download/stable/Goose.zip"
|
||||
variant="secondary"
|
||||
size="lg"
|
||||
outline
|
||||
/>
|
||||
<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.
|
||||
@@ -46,9 +48,8 @@ Goose is a developer AI agent that supercharges your software development by aut
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### Running Goose
|
||||
## Configure Provider
|
||||
|
||||
#### Set up a provider
|
||||
Goose works with [supported LLM providers][providers]. When you first run Goose, you'll be prompted to supply an API key from your preferred LLM provider.
|
||||
|
||||
The process will look similar to the example below:
|
||||
@@ -57,7 +58,7 @@ The process will look similar to the example below:
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||

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

|
||||
</TabItem>
|
||||
</Tabs>
|
||||
@@ -66,7 +67,7 @@ The process will look similar to the example below:
|
||||
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.
|
||||
:::
|
||||
|
||||
#### Start a session
|
||||
## Start Session
|
||||
<Tabs groupId="interface">
|
||||
<TabItem value="cli" label="Goose CLI" default>
|
||||
From your terminal, navigate to the directory from which you'd like to start, and run:
|
||||
@@ -74,7 +75,7 @@ The process will look similar to the example below:
|
||||
goose session
|
||||
```
|
||||
</TabItem>
|
||||
<TabItem value="ui" label="Goose UI">
|
||||
<TabItem value="ui" label="Goose Desktop">
|
||||
After choosing an LLM provider, you’ll see the session interface ready for use.
|
||||
|
||||
Type your questions, tasks, or instructions directly into the input field, and Goose will immediately get to work.
|
||||
@@ -83,7 +84,7 @@ The process will look similar to the example below:
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
#### Make Goose do the work for you
|
||||
## 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.
|
||||
|
||||
@@ -94,66 +95,26 @@ You will see the Goose prompt `( O)>`. From here, you can interact with Goose in
|
||||
Here's an example:
|
||||
|
||||
```
|
||||
( O)> Create a JavaScript project that fetches and displays weather for a user specified city using a public API
|
||||
Create a JavaScript project that fetches and displays weather for a user-specified city using a public API
|
||||
```
|
||||
|
||||
You can interrupt Goose with `CTRL+C` while it is running to help redirect its efforts.
|
||||
|
||||
#### Exit the session
|
||||
## Next Steps
|
||||
|
||||
To end a session, use `CTRL+D` or enter `/exit`.
|
||||
* Install [Extensions][extensions-guide] to enhance Goose's functionality.
|
||||
* Provide Goose with a [set of hints](/docs/guides/using-goosehints) to use within your sessions.
|
||||
|
||||
#### Resume a session
|
||||
|
||||
When you exit a session, it will save the history in the `~/.config/goose/sessions` directory. You can later resume your last saved session by using:
|
||||
|
||||
``` sh
|
||||
goose session --resume
|
||||
```
|
||||
|
||||
Check out [Managing Goose sessions][managing-sessions] to learn more about working with sessions in Goose.
|
||||
|
||||
|
||||
Be sure to check out the available [CLI commands][cli]. If you’d like to develop your own CLI commands for Goose, check out the [Contributing guide][contributing].
|
||||
|
||||
|
||||
### Running a Goose task
|
||||
|
||||
As an alternative to the chat interface, you can also provide instructions to Goose via files. In this example, Goose will execute the commands that are specified in `instructions.md`:
|
||||
|
||||
```sh
|
||||
goose run -t "Create a new Python file that prints hello world" instructions.md
|
||||
```
|
||||
|
||||
You can also pass in a file full of instructions, or use process substitution to chain more complex commands:
|
||||
|
||||
```sh
|
||||
goose run -t instructions.md
|
||||
goose run -t <(echo "Create a new Python file that prints hello world")
|
||||
```
|
||||
|
||||
This will run until completion as best it can. If you'd like to take the run and turn it into an interactive session,
|
||||
you can use `goose session --resume` to pick up where it left off.
|
||||
|
||||
### Extending Goose Functionality
|
||||
|
||||
[Goose Extensions][extensions-guide] are add-ons built on the [Model Context Protocol(MCP)][MCP]. They enhance Goose's functionality by integrating with the applications and tools you already use in your workflow. Extensions can be used to add new features, access data, and integrate with other systems.
|
||||
|
||||
For more information on how to add or remove extensions, see [Managing Extensions][extensions-guide].
|
||||
|
||||
## Additional tips
|
||||
|
||||
You can provide Goose with a set of hints that it will automatically use in every session with you. To do so, create a file named `.goosehints` and save it in `~/.config/goose/.goosehints`. For additional tips to enhance your experience, check out [Quick Tips][quick-tips].
|
||||
|
||||
|
||||
|
||||
[handling-rate-limits]: /docs/guides/handling-llm-rate-limits-with-goose
|
||||
[openai-key]: https://platform.openai.com/api-keys
|
||||
[getting-started]: /docs/category/getting-started
|
||||
[providers]: /docs/configuration/providers
|
||||
[providers]: /docs/getting-started/providers
|
||||
[managing-sessions]: /docs/guides/managing-goose-sessions
|
||||
[contributing]: https://github.com/block/goose/blob/main/CONTRIBUTING.md
|
||||
[quick-tips]: /docs/guides/tips
|
||||
[extensions-guide]: /docs/configuration/managing-extensions
|
||||
[extensions-guide]: /docs/getting-started/using-extensions
|
||||
[cli]: /docs/guides/goose-cli-commands
|
||||
[MCP]: https://www.anthropic.com/news/model-context-protocol
|
||||
|
||||
@@ -77,6 +77,6 @@ If you have questions, run into issues, or just need to brainstorm ideas join th
|
||||
|
||||
|
||||
[handling-rate-limits]: /docs/guides/handling-llm-rate-limits-with-goose
|
||||
[installation]: /docs/installation
|
||||
[installation]: docs/getting-started/installation
|
||||
[discord]: https://discord.gg/block-opensource
|
||||
[goosehints]: /docs/guides/using-goosehints
|
||||
|
||||
Reference in New Issue
Block a user