From 9b605dbdd7eeaa3d6b1eea6da56eee5401f3c64b Mon Sep 17 00:00:00 2001 From: John Austin <8884923+JohnMAustin78@users.noreply.github.com> Date: Thu, 17 Apr 2025 13:16:43 -0700 Subject: [PATCH] docs: New shared Agent topic with updates to existing topics and other stuff (#2160) Co-authored-by: John Austin Co-authored-by: Kalvin C --- .../blog/2025-03-06-goose-tips/index.md | 2 +- .../assets/guides/create-shared-agent-ui.png | Bin 0 -> 88190 bytes .../docs/getting-started/installation.md | 2 +- .../docs/guides/adjust-tool-output.md | 5 +- documentation/docs/guides/benchmarking.md | 6 +- .../docs/guides/experimental-features.md | 6 +- documentation/docs/guides/file-management.md | 5 +- .../docs/guides/goose-cli-commands.md | 50 +++- documentation/docs/guides/goose-in-docker.md | 7 +- .../docs/guides/goose-permissions.md | 5 +- .../handling-llm-rate-limits-with-goose.md | 6 +- documentation/docs/guides/logs.md | 6 +- .../docs/guides/managing-goose-sessions.md | 4 +- documentation/docs/guides/running-tasks.md | 5 +- .../docs/guides/share-goose-sessions.md | 272 ++++++++++++++++++ documentation/docs/guides/tips.md | 4 +- documentation/docs/guides/updating-goose.md | 6 +- documentation/docs/guides/using-goosehints.md | 7 +- .../docs/guides/using-gooseignore.md | 3 +- 19 files changed, 360 insertions(+), 41 deletions(-) create mode 100644 documentation/docs/assets/guides/create-shared-agent-ui.png create mode 100644 documentation/docs/guides/share-goose-sessions.md diff --git a/documentation/blog/2025-03-06-goose-tips/index.md b/documentation/blog/2025-03-06-goose-tips/index.md index 1118187c62..18cad46a3d 100644 --- a/documentation/blog/2025-03-06-goose-tips/index.md +++ b/documentation/blog/2025-03-06-goose-tips/index.md @@ -54,7 +54,7 @@ Goose offers [different modes](/docs/guides/goose-permissions) that determine ho * ⚡️ **Auto Mode (Default):** Goose can modify, create, and delete files, as well as use extensions, without requiring approval. Best for users who want seamless automation. -* ✅ **Approve Mode:** Goose asks for confirmation before making changes. With [Smart Approve](/docs/guides/goose-permissions#smart-approve) enabled, it evaluates risk levels and prompts for high-risk actions while executing safe ones automatically. +* ✅ **Approve Mode:** Goose asks for confirmation before making changes. With [Smart Approve](/docs/guides/goose-permissions#permission-modes) enabled, it evaluates risk levels and prompts for high-risk actions while executing safe ones automatically. * 💬 **Chat Mode:** Goose operates in chat-only mode, without modifying files or using extensions. Ideal for users who want AI assistance without automation. diff --git a/documentation/docs/assets/guides/create-shared-agent-ui.png b/documentation/docs/assets/guides/create-shared-agent-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..fc560417497cc1e10b0cea08185de72c3ba9b1dd GIT binary patch literal 88190 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 diff --git a/documentation/docs/guides/adjust-tool-output.md b/documentation/docs/guides/adjust-tool-output.md index c3f57cc860..7115ef9e87 100644 --- a/documentation/docs/guides/adjust-tool-output.md +++ b/documentation/docs/guides/adjust-tool-output.md @@ -1,7 +1,8 @@ --- -sidebar_position: 7 +sidebar_position: 11 +title: Adjusting Tool Output Verbosity +sidebar_label: Adjust Tool Output --- -# Adjust Tool Output When working with the Goose CLI, you can control the verbosity of tool output. diff --git a/documentation/docs/guides/benchmarking.md b/documentation/docs/guides/benchmarking.md index 3fcc55dbf5..dae586dfc0 100644 --- a/documentation/docs/guides/benchmarking.md +++ b/documentation/docs/guides/benchmarking.md @@ -1,9 +1,9 @@ --- -sidebar_position: 7 +sidebar_position: 12 +title: Benchmarking with Goose +sidebar_label: Benchmark with Goose --- -# Benchmarking with Goose - The Goose benchmarking system allows you to evaluate goose performance on complex tasks with one or more system configurations.

This guide covers how to use the `goose bench` command to run benchmarks and analyze results. diff --git a/documentation/docs/guides/experimental-features.md b/documentation/docs/guides/experimental-features.md index f189fda82e..52a6027ba8 100644 --- a/documentation/docs/guides/experimental-features.md +++ b/documentation/docs/guides/experimental-features.md @@ -1,4 +1,8 @@ -# Experimental Features +--- +title: Experimental Features +sidebar_position: 16 +sidebar_label: Experimental Features +--- Goose is an open source project that is constantly being improved, and new features are added regularly. Some of these features are considered experimental, meaning they are still in development and may not be fully stable or ready for production use. This guide covers how to enable and use experimental features in Goose, as well as how to provide feedback on them. diff --git a/documentation/docs/guides/file-management.md b/documentation/docs/guides/file-management.md index 622dcca829..6222c3fbd2 100644 --- a/documentation/docs/guides/file-management.md +++ b/documentation/docs/guides/file-management.md @@ -1,7 +1,8 @@ --- -sidebar_position: 6 +title: File Management +sidebar_position: 10 +sidebar_label: File Management --- -# File Management As an autonomous agent, Goose is designed to carry out tasks following specified instructions. This may sometimes involve working with local files. It's essential to follow best practices for safe file modification to monitor changes and revert anywhere necessary. diff --git a/documentation/docs/guides/goose-cli-commands.md b/documentation/docs/guides/goose-cli-commands.md index 0b87f3358d..f3ea4ba1e5 100644 --- a/documentation/docs/guides/goose-cli-commands.md +++ b/documentation/docs/guides/goose-cli-commands.md @@ -1,7 +1,8 @@ --- -sidebar_position: 4 +sidebar_position: 7 +title: CLI Commands +sidebar_label: CLI Commands --- -# CLI Commands Goose provides a command-line interface (CLI) with several commands for managing sessions, configurations and extensions. Below is a list of the available commands and their descriptions: @@ -190,7 +191,7 @@ goose update --reconfigure ### mcp -Run an enabled MCP server specified by `` (e.g. 'Google Drive') +Run an enabled MCP server specified by `` (e.g. `'Google Drive'`) **Usage:** ```bash @@ -208,9 +209,10 @@ Execute commands from an instruction file or stdin. Check out the [full guide](/ - **`-i, --instructions `**: Path to instruction file containing commands. Use - for stdin. - **`-t, --text `**: Input text to provide to Goose directly - **`-s, --interactive`**: Continue in interactive mode after processing initial input -- **`-n, --name `**: Name for this run session (e.g. 'daily-tasks') +- **`-n, --name `**: Name for this run session (e.g. `daily-tasks`) - **`-r, --resume`**: Resume from a previous run -- **`-p, --path `**: Path for this run session (e.g. './playground.jsonl') +- **`--recipe `**: Load a custom recipe in current session +- **`-p, --path `**: Path for this run session (e.g. `./playground.jsonl`) - **`--with-extension `**: Add stdio extensions (can be used multiple times in the same command) - **`--with-builtin `**: Add builtin extensions by name (e.g., 'developer' or multiple: 'developer,github') @@ -218,6 +220,19 @@ Execute commands from an instruction file or stdin. Check out the [full guide](/ ```bash goose run --instructions plan.md + +#Load a recipe with a prompt that Goose executes and then exits +goose run --recipe recipe.yaml + +#Load a recipe from this chat and then stays in an interactive session +goose run --recipe recipe.yaml -s + +#Load a recipe containing a prompt which Goose executes and then drops into an interactive session +goose run --recipe recipe.yaml --interactive + +#Generates an error: no text provided for prompt in headless mode +goose run --recipe recipe_no_prompt.yaml + ``` --- @@ -242,6 +257,30 @@ Used to evaluate system-configuration across a range of practical tasks. See the goose bench ...etc. ``` +### recipe +Used to validate a recipe file and get a link to share the recipe (aka "shared agent") with another Goose user. + +```bash +goose recipe +``` + +**Options:** + +- **`--help, -h`**: Print this message or the help for the subcommand + +**Command Usage:** + +```bash +# Validate a recipe file +goose recipe validate $FILE.yaml + +# Generate a deeplink for a recipe file +goose recipe deeplink $FILE.yaml + +# Print this message or the help for the given command +goose recipe help +``` + --- ## Prompt Completion @@ -257,6 +296,7 @@ The CLI provides a set of slash commands that can be accessed during a session. - `/mode ` - Set the goose mode to use ('auto', 'approve', 'chat') - `/plan ` - Create a structured plan based on the given message - `/?` or `/help` - Display this help message +- `/recipe ` - Generate and save a session recipe to `recipe.yaml` or the filename specified by the command parameter. All commands support tab completion. Press `` after a slash (/) to cycle through available commands or to complete partial commands. diff --git a/documentation/docs/guides/goose-in-docker.md b/documentation/docs/guides/goose-in-docker.md index c50dfb0781..923c7685cd 100644 --- a/documentation/docs/guides/goose-in-docker.md +++ b/documentation/docs/guides/goose-in-docker.md @@ -1,10 +1,9 @@ --- -title: Goose in Docker -sidebar_position: 9 +title: Building Goose in Docker +sidebar_label: Goose in Docker +sidebar_position: 15 --- -# Building Goose in Docker - :::info Tell Us What You Need There are various scenarios where you might want to build Goose in Docker. If the instructions below do not meet your needs, please contact us by replying to our [discussion topic](https://github.com/block/goose/discussions/1496). ::: diff --git a/documentation/docs/guides/goose-permissions.md b/documentation/docs/guides/goose-permissions.md index d5332b03b8..bda2c47472 100644 --- a/documentation/docs/guides/goose-permissions.md +++ b/documentation/docs/guides/goose-permissions.md @@ -1,13 +1,12 @@ --- sidebar_position: 3 -title: Goose Permissions +title: Goose Permission Modes +sidebar_label: Goose Permissions --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Managing Goose Modes - Goose’s permissions determine how much autonomy it has when modifying files, using extensions, and performing automated actions. By selecting a permission mode, you have full control over how Goose interacts with your development environment. ## Permission Modes 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 a75d1a37ec..5b2edf498e 100644 --- a/documentation/docs/guides/handling-llm-rate-limits-with-goose.md +++ b/documentation/docs/guides/handling-llm-rate-limits-with-goose.md @@ -1,12 +1,12 @@ --- -title: LLM Rate Limits -sidebar_position: 4 +title: Set LLM Rate Limits +sidebar_label: LLM Rate Limits +sidebar_position: 8 --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Handling LLM Rate Limits 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. diff --git a/documentation/docs/guides/logs.md b/documentation/docs/guides/logs.md index ad0d5636e0..471b23b97b 100644 --- a/documentation/docs/guides/logs.md +++ b/documentation/docs/guides/logs.md @@ -1,9 +1,9 @@ --- -title: Logging System -sidebar_position: 5 +title: Goose Logging System +sidebar_label: Logging System +sidebar_position: 9 --- -# Goose Logging System Goose uses a unified storage system for conversations and interactions. All conversations and interactions (both CLI and Desktop) are stored **locally** in the following locations: diff --git a/documentation/docs/guides/managing-goose-sessions.md b/documentation/docs/guides/managing-goose-sessions.md index cca4f44034..586c5ae314 100644 --- a/documentation/docs/guides/managing-goose-sessions.md +++ b/documentation/docs/guides/managing-goose-sessions.md @@ -1,11 +1,11 @@ --- sidebar_position: 1 -title: Managing Sessions +title: Managing Goose Sessions +sidebar_label: Managing Sessions --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Managing Goose Sessions 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, and resume a session. diff --git a/documentation/docs/guides/running-tasks.md b/documentation/docs/guides/running-tasks.md index ae7c18d390..86e8c5c767 100644 --- a/documentation/docs/guides/running-tasks.md +++ b/documentation/docs/guides/running-tasks.md @@ -1,7 +1,8 @@ --- -sidebar_position: 7 +sidebar_position: 13 +title: Running Tasks +sidebar_label: Run Tasks --- -# Running Tasks When working with the Goose CLI, you can pass files and instructions to the `goose run` command to execute tasks and workflows. This could be a simple one-liner command or a complex set of instructions stored in a file. diff --git a/documentation/docs/guides/share-goose-sessions.md b/documentation/docs/guides/share-goose-sessions.md new file mode 100644 index 0000000000..f9d7c9b812 --- /dev/null +++ b/documentation/docs/guides/share-goose-sessions.md @@ -0,0 +1,272 @@ +--- +sidebar_position: 5 +title: Sharing a Goose Agent +sidebar_label: Share Goose Agents +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +A shared Agent in Goose is like a collaborative workspace where multiple people can work with the AI assistant together in real-time. Think of it similar to a shared Google Doc, but for AI assistance. + +## Create a shared Agent +When you create an Agent to be shared, you are creating a host Agent. When your host terminates, the shared Agents are disconnected and collaborators can no longer see activity in the host. + +### Setup recipe +To create a custom session (whether using the desktop app or CLI), you'll need: + +* Instructions for the AI +* Activities it should perform +* A custom prompt (optional) + +The CLI calls this a "recipe." The desktop app shows these same options in the Agent Created dialog when you create a new shared session. + +:::tip +Both tools need the same information, they just use different names for it. +::: + +### Agent setup instructions +When you share your Goose Agent setup (either through the command line or desktop app), you'll get a chance to review and edit the setup instructions. These instructions come from your current session, but they might need some extra details to work well for others. + +Here's an example: Let's say you were working with Goose to make debug a new application and you need help with the debug logs. In this case, you should add a note like this to your instructions: + +"I asked Goose to review the debug logs from this application: https://github.com/square/connect-api-examples/tree/master/connect-examples/v2/node_orders-payments. The log files are in this folder: https://github.com/square/connect-api-examples/blob/master/my_app/v2/logs/" + + +This tells the new shared Agent (or new local session) what the context is for your debugging collaboration. The critical context that the shared Agent (or session) needs is the location of the application source code and the folder where log files are written. With this context, the teammate you are working with can ask Goose to clone the GitHub repo, open the project in an IDE, and build the project. + +### Agent setup activities +When you work with Goose, it keeps track of everything you do together. Before sharing your setup with others, you should review this list of activities. Think of it like cleaning up your workspace before inviting colleagues over: + +* Look at the list of activities when creating your shared setup +* Pick only the activities that matter for your project +* Remove any activities that aren't relevant for your teammates + +For example: If you used Goose for both writing the application UI and helping you debug it, but only want to share the debugging part, you can remove the coding the application activities. + + + + + + + To create a shared Agent using the CLI, you need a recipe. Think of a Goose "recipe" like a blueprint - it contains the instructions to recreate your agent for someone else. Here's what you need to know: + + * A recipe is different from sharing a live agent session + * The recipe tells Goose how to build a copy of your agent + * It includes things like: + * Instructions for how the agent should behave + * What activities the agent can do + + When you use the Goose desktop app to share an agent, it shows you a window where you can review and customize these settings before creating the recipe. With the CLI, the `/recipe` command creates a .yaml file that you can edit to customize the shared Agent that you want to create. + + Note: This is like sharing a cooking recipe with a friend - you're not giving them your actual meal, but the instructions to make the same thing themselves! + + In your terminal with a Goose session running, input the following: + ```sh + ( O)> /recipe + ``` + Goose generates `recipe.yaml` and saves it for you as shown in the following output: + + ```sh + Generating Recipe + Saved recipe to .../my-shared-project/goose/recipe.yaml + ``` + + ### Recipe.yaml specification + The .yaml file contains an editable set of fields that let you customize the shared Agent that gets created. + + ```yaml + --- + # Required fields + version: 1.0.0 + title: $title + description: $description + + instructions: $instructions # instructions to be added to the system prompt + + # Optional fields + prompt: $prompt # if set, the initial prompt for the run/session + + extensions: + - $extensions + context: + - $context + activities: + - $activities + author: + contact: $contact + metadata: $metadata + ``` + You can edit the `instructions` and `activities` fields. Instructions can be edited to add context that isn't in the session that you are creating the shared Agent from. You can also add additional activites such as "Please ask users for their zipcode so you can provide their local weather forecast." + + + Send the file to the Goose CLI user that wants to start a shared Agent. For more information about the `recipe` prompt completion command, see the [recipe](/docs/guides/goose-cli-commands#recipe) CLI prompt. + + + + To share an Agent at any time, + 1. click the three dots in the top-right corner of the application + 1. select **Make Agent from this session** from the dropdown menu. + + Goose will create a shareable version of your Agent and show you a dialog with: + * A shareable URL + * Instructions for the new agent + * Example activities the agent can help with + + ## Customizing your shared Agent + Before sharing, you can review and edit how your agent will help others: + + ### Instructions + These tell the agent how to help other users. Goose creates these automatically based on your conversation, but you can edit them to add more guidance. + + #### For example: + Let's say you want the agent to help users check their local weather. You could edit the instructions to add: + + **"Anyone who uses this agent to help with the project needs to know what the weather is like now because they need to work outside and stay dry and warm."** + + + + ### Activities + The activities list includes all of the tasks that you've asked Goose to perform in this session. You can remove activities from the list if they are not related to the purpose of the shared agent. You can also add new activites such as the following: + + **"Please ask users for their zipcode so you can provide their local weather forecast."** + + ### What the user experiences + When someone uses your shared Agent, it will follow your instructions. Using our weather example: + + ``` + user: "will it be sunny and warm today?" + Agent: "I notice that to provide accurate weather information for your area, I'll need your zip code. Could you please provide your zip code so I can check the current weather conditions for your specific location? - This is important since the instructions mention that users of this project need to know the weather conditions as they'll be working outside and need to stay dry and warm. + + Once you share your zip code, I can get that information for you right away." + ``` + + Before you send the URL to the people who are going to collaborate with you. Their browser will create a new shared Agent in Goose when it reads the URL in the address bar. + + + + + +## Start the shared Agent + + + + When another Goose CLI user sends you a recipe file, save it in the directory where you want to start your shared Agent. + From your terminal, navigate to the directory where you saved the file, and run: + ```sh + goose run -- + ``` + The Goose CLI loads the recipe and creates a session with all of the components shared in the original session. For infomration about the Goose `run` command, see the [run](/docs/guides/goose-cli-commands#run-options) CLI command. + + + + + When another Goose desktop user wants to share an Agent, they send you an URL which you use to start the new shared Agent. + + Open a new tab on your browser and paste the shared Agent URL into the address bar and press the **enter** key on your keyboard. The browser requests your permission to start a new Goose session with the shared components. + + The new Goose session shows a set of activities that you can run. Any prompts that you give the Agent are processed in the context provided by the recipe created by the hosting user. + + + + + +## Accessing conversation history in shared sessions +When you join a shared session, you automatically get access to: +* The full conversation history (chat messages) from when the session started +* All tool outputs and results +* Any files or content created during the session + +### How It Works +When you click the shared link, you'll join the active session. The conversation history will automatically load in your Goose window. You'll see all messages and interactions in real-time and can scroll up to view earlier parts of the conversation. +### Important Notes +The history is synchronized live - you'll see new messages as they happen. You don't need to take any special steps to access the history. The conversation remains available as long as the session is active. Once the host ends the session, the shared access ends. + +### Troubleshooting +If you're having trouble accessing the conversation history when joining a shared session, you might want to: +* Make sure you're using the most recent version of Goose +* Try refreshing your session +* Check with the host to ensure the session is still active + +Remember that the shared session ends when the host closes it, so make sure to save any important information you need before the session ends. + +## Tool outputs in a shared session +In a shared session, participants can see: +* All conversation messages +* Tool outputs and results +* Files or content created during the session +* Active extensions and their configurations +### How tool outputs work in shared sessions +When any participant uses a tool, all members can see: +* The tool being called +* The parameters used +* The results/output of the tool + +These outputs appear in the conversation just like messages and they're synchronized in real-time for all participants. + +### Important Notes +* Tool outputs are treated as part of the conversation history +* All participants can see the results, even if they didn't initiate the tool use +* The outputs remain visible as long as the session is active +* Like other shared content, tool outputs are only available during the active session + +This means that when you're in a shared session, you have full visibility into all tool interactions and their results, making it effective for collaborative troubleshooting or working together on tasks that require tool use. + +## File access in shared sessions +Files created during a session are meant to be accessible to all participants. However, a file that is created in one shared Agent instance is not created in parallel on the other instances. To give everyone access to the file, we suggest any of the following strategies: + +* **Ask the Host**: When a collaborator creates a file, ask them to: + 1. Share the file's location or path + 1. Confirm how they intend to share access to the file + +* **Use Shared Tools**: When files need to be shared: + 1. Use collaborative tools like Google Drive (if the extension is available) + 1. Share file contents directly in the conversation where possible + 1. Consider using version control systems for code files + +* **Document Important Files**: + 1. Keep track of important files created during the session + 1. Save or copy relevant content before the session ends + + +## What gets shared? +You might start a project in a Goose session and realize your teammate needs access to that context through a shared agent. But at the same time, you may have shared things with Goose that you’d rather keep private. +### Shared components +The shared agent includes these components: +* Conversation history (all messages) +* Tool outputs and results +* Files or content created during the session +* Active extensions and their configurations +* Project context (when working within a project) + +### Private components +The following components are not included in a shared agent: +* Global memories (stored in `~/.config/goose/memory`) +* Local memories (stored in .goose/memory) +* Personal API keys or credentials +* System-level configurations + + + +## Common use cases +There are many reasons why you might want to create a shared agent. The following shared agent use cases are just a starting point. + +### Team Collaboration +* Working together on coding projects +* Troubleshooting technical issues +* Brainstorming sessions +* Training & Onboarding + +### Teaching new team members +* Demonstrating workflows +* Sharing best practices +* Pair Programming + +### Real-time code collaboration +* Code reviews +* Debugging sessions + + + + + diff --git a/documentation/docs/guides/tips.md b/documentation/docs/guides/tips.md index 7a14272436..ef59130996 100644 --- a/documentation/docs/guides/tips.md +++ b/documentation/docs/guides/tips.md @@ -1,5 +1,7 @@ --- -title: Quick Tips +title: Quick Goose Tips +sidebar_position: 6 +sidebar_label: Quick Tips --- Here is a collection of tips for working with Goose: diff --git a/documentation/docs/guides/updating-goose.md b/documentation/docs/guides/updating-goose.md index c1f45056ff..bf073b5622 100644 --- a/documentation/docs/guides/updating-goose.md +++ b/documentation/docs/guides/updating-goose.md @@ -1,13 +1,15 @@ --- sidebar_position: 2 +title: Updating Goose +sidebar_label: Updating Goose --- -# Updating Goose - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import DesktopInstallButtons from '@site/src/components/DesktopInstallButtons'; +The Goose CLI and desktop apps are under active and continuous development. To get the newest features and fixes, you should periodically update your Goose client using the following instructions. + You can update Goose by running: diff --git a/documentation/docs/guides/using-goosehints.md b/documentation/docs/guides/using-goosehints.md index 881a8bbcca..b55cf21e3b 100644 --- a/documentation/docs/guides/using-goosehints.md +++ b/documentation/docs/guides/using-goosehints.md @@ -1,14 +1,13 @@ --- -title: Using Goosehints -sidebar_position: 3 +title: Providing Hints to Goose +sidebar_position: 4 +sidebar_label: Using Goosehints --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Providing Hints to Goose - `.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 diff --git a/documentation/docs/guides/using-gooseignore.md b/documentation/docs/guides/using-gooseignore.md index 1d6fe3983e..484adcfb2e 100644 --- a/documentation/docs/guides/using-gooseignore.md +++ b/documentation/docs/guides/using-gooseignore.md @@ -1,10 +1,9 @@ --- title: Prevent Goose from Accessing Files sidebar_label: Using Gooseignore -sidebar_position: 8 +sidebar_position: 14 --- -# Prevent Goose from Accessing Files `.gooseignore` is a text file that defines patterns for files and directories that Goose will not access. This means Goose cannot read, modify, delete, or run shell commands on these files when using the Developer extension's tools.