Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions documentation/docs/guides/recipes/recipe-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <file>` and `goose recipe` commands.
The CLI automatically detects and handles both formats when running `goose run --recipe <file>` 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.

<details>
<summary>Format Examples</summary>
Expand Down
43 changes: 20 additions & 23 deletions documentation/docs/guides/recipes/session-recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -455,33 +455,39 @@ You can turn your current Goose session into a reusable recipe that includes the
</Tabs>

## Share Recipe
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.

<Tabs groupId="interface">
<TabItem value="ui" label="Goose Desktop" default>
Share your recipe with Desktop users by copying the recipe link:

Copy the deeplink from your Recipe Library to share with others:
1. Click the <PanelLeft className="inline" size={16} /> 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.
3. Click `Preview` next to the recipe you want to share
4. Under `Deeplink`, click `Copy`

</TabItem>
<TabItem value="cli" label="Goose CLI">
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:

Generate a deeplink from your recipe file to share with others:
```sh
goose recipe deeplink recipe.yaml
goose recipe deeplink <FILE>
```

</TabItem>
</Tabs>

:::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.
:::
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 <FILE>`

## Schedule Recipe
<Tabs groupId="interface">
Expand Down Expand Up @@ -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 <file>` 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.
40 changes: 30 additions & 10 deletions documentation/docs/guides/recipes/storing-recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <PanelLeft className="inline" size={16} /> 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**

</TabItem>
<TabItem value="cli" label="Goose CLI">

Expand All @@ -80,6 +71,35 @@ You can import a [shared recipe](/docs/guides/recipes/session-recipes#share-reci
</TabItem>
</Tabs>

### Importing Recipes

<Tabs groupId="interface">
<TabItem value="desktop" label="Goose Desktop" default>
Import a recipe using its deeplink or YAML file:

**Import via Recipe Link:**
1. Click the <PanelLeft className="inline" size={16} /> 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 <PanelLeft className="inline" size={16} /> 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.

</TabItem>
<TabItem value="cli" label="Goose CLI">
Recipe import is only available in Goose Desktop.
</TabItem>
</Tabs>

## Finding Your Recipes

Expand Down