From 3fa85995227eb58b891011e7f9f38f7e92848249 Mon Sep 17 00:00:00 2001 From: dianed-square <73617011+dianed-square@users.noreply.github.com> Date: Wed, 24 Sep 2025 15:51:31 -0700 Subject: [PATCH] docs: import yaml recipe (#4799) --- .../docs/guides/recipes/recipe-reference.md | 8 +-- .../docs/guides/recipes/session-recipes.md | 61 +++++++++---------- .../docs/guides/recipes/storing-recipes.md | 40 +++++++++--- 3 files changed, 63 insertions(+), 46 deletions(-) diff --git a/documentation/docs/guides/recipes/recipe-reference.md b/documentation/docs/guides/recipes/recipe-reference.md index e4c8a6528c..29e5a72d0c 100644 --- a/documentation/docs/guides/recipes/recipe-reference.md +++ b/documentation/docs/guides/recipes/recipe-reference.md @@ -20,12 +20,12 @@ After creating recipe files, you can use [`goose` CLI commands](/docs/guides/goo ### CLI and Desktop Formats -The Goose CLI supports CLI and Desktop recipe formats: +Goose recipes use two formats: -- **CLI Format**: Recipe fields (like `title`, `description`, `instructions`) are at the root level of the YAML/JSON file -- **Desktop Format**: Recipe fields are nested inside a `recipe` object, with additional metadata fields at the root level +- **CLI Format**: Recipe fields (like `title`, `description`, `instructions`) are at the root level of the YAML/JSON file. This format is used when recipes are created via the CLI `/recipe` command and [Recipe Generator](/recipe-generator) YAML option. +- **Desktop Format**: Recipe fields are nested inside a `recipe` object, with additional metadata fields at the root level. This format is used when recipes are created from Goose Desktop. -The CLI automatically detects and handles both formats when running `goose run --recipe ` and `goose recipe` commands. +The CLI automatically detects and handles both formats when running `goose run --recipe ` and `goose recipe` commands. The Desktop can [import](/docs/guides/recipes/storing-recipes#importing-recipes) and use YAML recipes (or deeplinks) in either CLI or Desktop format.
Format Examples diff --git a/documentation/docs/guides/recipes/session-recipes.md b/documentation/docs/guides/recipes/session-recipes.md index 09c49837d5..f9effb546e 100644 --- a/documentation/docs/guides/recipes/session-recipes.md +++ b/documentation/docs/guides/recipes/session-recipes.md @@ -455,34 +455,40 @@ You can turn your current Goose session into a reusable recipe that includes the ## Share Recipe - - - - Share your recipe with Desktop users by copying the recipe link: - - 1. Click the button in the top-left to open the sidebar - 2. Click `Recipes` in the sidebar - 3. Find your recipe in the Recipe Library - 4. Click `Preview` next to the recipe you want to share - 5. Under `Deeplink`, click `Copy` and then share the link with others - - When someone clicks the link, it will open Goose Desktop with your recipe configuration. They can also use your recipe link to [import a recipe](/docs/guides/recipes/storing-recipes#storing-recipes) into their Recipe Library for future use. - - - - Share your recipe with CLI users by directly sending them the recipe file or converting it to a shareable [deep link](/docs/guides/goose-cli-commands#recipe) for Desktop users: - - ```sh - goose recipe deeplink recipe.yaml - ``` - - - +Share your recipe with Goose users using a recipe link or recipe file. :::info Privacy & Isolation Each recipient gets their own private session when using your shared recipe. No data is shared between users, and your original session and recipe remain unaffected. ::: +### Share via Recipe Link +You can share a recipe with Desktop users via a recipe link. + + + + Copy the deeplink from your Recipe Library to share with others: + 1. Click the button in the top-left to open the sidebar + 2. Click `Recipes` in the sidebar + 3. Click `Preview` next to the recipe you want to share + 4. Under `Deeplink`, click `Copy` + + + + Generate a deeplink from your recipe file to share with others: + ```sh + goose recipe deeplink + ``` + + + +When someone clicks the link, it will open Goose Desktop with your recipe configuration. They can also use your recipe link to [import a recipe](/docs/guides/recipes/storing-recipes#importing-recipes) for future use. + +### Share via Recipe File +You can share a recipe with Desktop or CLI users by sending the recipe file directly. + +- Desktop users can [import the recipe](/docs/guides/recipes/storing-recipes#importing-recipes) (YAML only). +- CLI users can run a YAML or JSON recipe using `goose run --recipe ` + ## Schedule Recipe @@ -661,14 +667,5 @@ To protect your privacy and system integrity, Goose excludes: This means others may need to supply their own credentials or memory context if the recipe depends on those elements. -## CLI and Desktop Formats - -The Goose CLI supports both CLI and Desktop recipe formats: - -- **CLI Format**: Recipe fields are at the root level. This format is used when recipes are created via the CLI `/recipe` command and Recipe Generator YAML option. -- **Desktop Format**: Recipe fields are nested under a `recipe` key. This format is used when recipes are saved in Goose Desktop. - -Both formats work seamlessly with `goose run --recipe ` and `goose recipe` CLI commands - you don't need to convert between them. For more details, see [CLI and Desktop Formats](/docs/guides/recipes/recipe-reference#cli-and-desktop-formats). - ## Learn More Check out the [Goose Recipes](/docs/guides/recipes) guide for more docs, tools, and resources to help you master Goose recipes. \ No newline at end of file diff --git a/documentation/docs/guides/recipes/storing-recipes.md b/documentation/docs/guides/recipes/storing-recipes.md index d6844a775e..f9677501ba 100644 --- a/documentation/docs/guides/recipes/storing-recipes.md +++ b/documentation/docs/guides/recipes/storing-recipes.md @@ -55,19 +55,10 @@ If you're already using a recipe and want to save a modified version: 3. Make any desired edits to the description, instructions, or initial prompts 5. Click **Save Recipe** -:::note +:::info When you modify and save a recipe with a new name, a new recipe and new link are generated. You can still run the original recipe from the recipe library, or using the original link. If you edit a recipe without changing its name, the version in the recipe library is updated, but you can still run the original recipe via link. ::: -**Import Recipe:** - -You can import a [shared recipe](/docs/guides/recipes/session-recipes#share-recipe) into your Recipe Library: -1. Click the button in the top-left to open the sidebar -2. Click `Recipes` -3. Click **Import Recipe** and paste in the recipe URL -4. Add a name and choose the [storage location](#recipe-storage-locations) -5. Click **Import Recipe** - @@ -80,6 +71,35 @@ You can import a [shared recipe](/docs/guides/recipes/session-recipes#share-reci +### Importing Recipes + + + + Import a recipe using its deeplink or YAML file: + + **Import via Recipe Link:** + 1. Click the button in the top-left to open the sidebar + 2. Click `Recipes` in the sidebar + 3. Click **Import Recipe** + 4. Under **Recipe Deeplink**, paste in the [recipe link](/docs/guides/recipes/session-recipes#share-via-recipe-link) + 5. Add a name and choose the [storage location](#recipe-storage-locations) + 6. Click **Import Recipe** + + **Import via Recipe File:** + 1. Click the button in the top-left to open the sidebar + 2. Click `Recipes` in the sidebar + 3. Click **Import Recipe** + 4. Under **Recipe YAML File**, click **Choose File**, select the YAML recipe file, and click `Open` + 5. Add a name and choose the [storage location](#recipe-storage-locations) + 6. Click **Import Recipe** + + Importing JSON recipe files isn't currently supported. + + + + Recipe import is only available in Goose Desktop. + + ## Finding Your Recipes