diff --git a/documentation/docs/guides/recipes/session-recipes.md b/documentation/docs/guides/recipes/session-recipes.md index 1b48459a6735..714dd1c79c56 100644 --- a/documentation/docs/guides/recipes/session-recipes.md +++ b/documentation/docs/guides/recipes/session-recipes.md @@ -6,7 +6,7 @@ description: "Share a goose session setup (including tools, goals, and instructi import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -import { PanelLeft, Bot } from 'lucide-react'; +import { PanelLeft, Bot, SquarePen, Link, Calendar } from 'lucide-react'; Sometimes you finish a task in goose and realize, "Hey, this setup could be useful again." Maybe you have curated a great combination of tools, defined a clear goal, and want to preserve that flow. Or maybe you're trying to help someone else replicate what you just did without walking them through it step by step. @@ -170,17 +170,17 @@ You can turn your current goose session into a reusable recipe that includes the Use the online [Recipe Generator](https://block.github.io/goose/recipe-generator) tool to create a recipe. First choose your preferred format: - - **URL Format**: Generates a shareable link that opens a session in the Goose Desktop app - - **YAML Format**: Generates YAML content that you can save to file and then run in the Goose CLI app + - **URL Format**: Generates a shareable link that opens a session in goose Desktop + - **YAML Format**: Generates YAML content that you can save to file and then run in goose CLI Then fill out the recipe form by providing: - A **title** for the recipe - A **description** - A set of **instructions** for the recipe. - An optional initial **prompt**: - - In the Desktop app, the prompt displays in the chat box. - - In the CLI app, the prompt provides the initial message to run. Note that a prompt is required to run the recipe in headless (non-interactive) mode. - - A set of optional **activities** to display in the Desktop app. + - In the Desktop, the prompt displays in the chat box. + - In the CLI, the prompt provides the initial message to run. Note that a prompt is required to run the recipe in headless (non-interactive) mode. + - A set of optional **activities** to display in the Desktop. - YAML format only: Optional **author** contact information and **extensions** the recipe uses. @@ -190,9 +190,10 @@ You can turn your current goose session into a reusable recipe that includes the - 1. While in the session that's using the recipe, click the button at the bottom of the app - 2. Click `View/Edit Recipe` - 3. Edit any of the following: + 1. Click the button in the top-left to open the sidebar + 2. Click `Recipes` + 3. Find the recipe you want to edit and click the button + 4. In the dialog that appears, edit any of the following: - Title - Description - Instructions @@ -203,6 +204,10 @@ You can turn your current goose session into a reusable recipe that includes the - Click `Save Recipe` to [save the recipe](/docs/guides/recipes/storing-recipes) locally - Click `Create Schedule` to [schedule the recipe](#schedule-recipe) + :::tip + You can also access the edit dialog while using a recipe in a session: Just click the button at the bottom of the app and select `View/Edit Recipe`. + ::: + @@ -469,8 +474,7 @@ 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` + 3. Find the recipe you want to share and click the button to copy the link @@ -481,7 +485,7 @@ You can share a recipe with Desktop users via a recipe link. -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. +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. @@ -492,28 +496,42 @@ You can share a recipe with Desktop or CLI users by sending the recipe file dire ## Schedule Recipe -Automate Goose recipes by running them on a schedule. +Automate goose recipes by running them on a schedule. When creating a schedule, you'll configure: +- **Name**: A descriptive name for the schedule +- **Source**: The recipe to run +- **Execution mode**: Whether the recipe runs in the background (no window, results saved) or foreground (opens window if goose Desktop is running, otherwise runs in background) +- **Frequency and time**: When to run the recipe (e.g. every 20 minutes, weekly at 10 AM on Friday). Your selection is converted into a [cron expression](https://en.wikipedia.org/wiki/Cron#Cron_expression) used by goose. + +**Schedule from Recipe Library:** + + 1. Click the button in the top-left to open the sidebar + 2. Click `Recipes` + 3. Find the recipe you want to schedule and click the button + 4. Click `Create Schedule` + 5. In the dialog that appears, configure the schedule. For **Source**, your recipe link is already provided. + 6. Click `Create Schedule` + +**Schedule from Scheduler View:** 1. Click the button in the top-left to open the sidebar 2. Click `Scheduler` 3. Click `Create Schedule` - 3. In the dialog that appears: - - Provide a **name** for the schedule - - Select the **source** of your recipe. This can be either a `yaml` file or link generated by Goose Desktop. - - Select whether you want your recipe to run in the background or foreground **execution mode**. Recipes run in the background don't open a window, but the session results are saved. Recipes run in the foreground will open a window if the Goose Desktop app is running. Otherwise, the recipe runs in the background. - - Choose the **frequency** and **time** to run your recipe. Your selected frequency (e.g. every 20 minutes, weekly at 10 AM on Friday) is converted into a [cron expression](https://en.wikipedia.org/wiki/Cron#Cron_expression) used by Goose. - - Click `Create Schedule` + 4. In the dialog that appears, configure the schedule. For **Source**, select a `.yaml` or `.yml` file or provide a [recipe link](#share-recipe). + 5. Click `Create Schedule` + +**Manage Scheduled Recipes** - Your new scheduled recipe is listed in the `Scheduler` page. Click on the schedule to view details, see when it was last run, and perform actions with the scheduled recipe: - - `Run Schedule Now` to trigger the recipe manually - - `Edit Schedule` to change the scheduled frequency - - `Pause Schedule` to stop the recipe from running automatically. +Your scheduled recipes are listed in the `Scheduler` page. +Click on a schedule to view details, see when it was last run, and perform actions with the scheduled recipe: +- `Run Schedule Now` to trigger the recipe manually +- `Edit Schedule` to change the scheduled frequency +- `Pause Schedule` to stop the recipe from running automatically - At the bottom of the `Schedule Details` page you can view the list of sessions created by the scheduled recipe and open or restore each session. +At the bottom of the `Schedule Details` page you can view the list of sessions created by the scheduled recipe and open or restore each session. - Automate Goose recipes by scheduling them to run with a [cron expression](https://en.wikipedia.org/wiki/Cron#Cron_expression). + Automate goose recipes by scheduling them to run with a [cron expression](https://en.wikipedia.org/wiki/Cron#Cron_expression). ```bash # Add a new scheduled recipe which runs every day at 9 AM @@ -620,9 +638,9 @@ response: **How it works:** 1. Recipe runs normally with provided instructions -2. Goose calls a `final_output` tool with JSON matching your schema +2. goose calls a `final_output` tool with JSON matching your schema 3. Output is validated against the JSON schema -4. If validation fails, Goose receives error details and must correct the output +4. If validation fails, goose receives error details and must correct the output 5. Final validated JSON appears as the last line of output for easy extraction **Example automation usage:** @@ -635,7 +653,7 @@ echo "Issues Found: $(echo $RESULT | jq -r '.tests_failed')" ``` :::info -Structured output is supported in recipes run in both the Goose CLI and Goose Desktop. However, creating and editing the `json_schema` configuration must be done manually in the recipe file. +Structured output is supported in recipes run in both the goose CLI and goose Desktop. However, creating and editing the `json_schema` configuration must be done manually in the recipe file. ::: ## What's Included @@ -651,14 +669,14 @@ A recipe captures: - Retry logic and success validation configuration (if configured) -To protect your privacy and system integrity, Goose excludes: +To protect your privacy and system integrity, goose excludes: - Global and local memory - API keys and personal credentials -- System-level Goose settings +- System-level goose settings This means others may need to supply their own credentials or memory context if the recipe depends on those elements. ## 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 +Check out the [Recipes](/docs/guides/recipes) guide for more docs, tools, and resources to help you master goose recipes. \ No newline at end of file