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
64 changes: 26 additions & 38 deletions documentation/docs/guides/recipes/session-recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ description: "Share a goose session setup (including tools, goals, and instructi

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { PanelLeft, Bot, SquarePen, Link, Calendar, Terminal } from 'lucide-react';
import { PanelLeft, ChefHat, SquarePen, Link, Clock, Terminal } from 'lucide-react';
import RecipeFields from '@site/src/components/RecipeFields';

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.

Expand All @@ -21,30 +22,23 @@ You can turn your current goose session into a reusable recipe that includes the

<Tabs>
<TabItem value="session" label="Current Session" default>
1. While in the session you want to save as a recipe, click the <Bot className="inline" size={16} /> button at the bottom of the app
2. Click `Create a recipe from this session`
3. A dialog opens with automatically generated instructions and activities:
- Provide a **title** and **description** for the recipe
- Review the **instructions** and edit them as needed
- Provide an optional **initial prompt** to display in the chat box
- Add or remove optional **activities** to display as buttons
4. When you're finished, you can:
- Copy the recipe link to share the recipe with others or [open it from the link](#use-recipe)
- Click `Save Recipe` to [save the recipe](/docs/guides/recipes/storing-recipes) locally
- Click `Create Schedule` to [schedule the recipe](#schedule-recipe)
1. While in the session you want to save as a recipe, click the <ChefHat className="inline" size={16} /> button at the bottom of the app
2. In the dialog that opens, review and edit the recipe fields as needed:
<RecipeFields />
3. When you're finished, you can:
- Click `Create Recipe` to save the recipe to your Recipe Library
- Click `Create & Run Recipe` to save and immediately run the recipe in a new session
</TabItem>
<TabItem value="new" label="Template">
1. Click the <PanelLeft className="inline" size={16} /> button in the top-left to open the sidebar
2. Click the `Recipes` button in the sidebar
2. Click `Recipes` in the sidebar
3. Click `Create Recipe`
4. A dialog opens with placeholder content:
- Provide a **title** and **description** for the recipe
- Edit the **instructions** as needed
- Provide an optional **initial prompt** to display in the chat box
- Add or remove optional **activities** to display as buttons
- Provide a **recipe name**
- Choose to [save the recipe](/docs/guides/recipes/storing-recipes) with **global** or **directory** availability
5. Click `Create Recipe`
4. In the dialog that opens, fill in the recipe fields as needed:
<RecipeFields />
5. When you're finished, you can:
- Copy the recipe link to share the recipe with others
- Click `Save Recipe` to save the recipe to your Recipe Library
- Click `Save & Run Recipe` to save and immediately run the recipe in a new session
</TabItem>
</Tabs>

Expand Down Expand Up @@ -191,23 +185,17 @@ You can turn your current goose session into a reusable recipe that includes the
<TabItem value="ui" label="goose Desktop" default>

1. Click the <PanelLeft className="inline" size={16} /> button in the top-left to open the sidebar
2. Click `Recipes`
2. Click `Recipes` in the sidebar
3. Find the recipe you want to edit and click the <SquarePen className="inline" size={16} /> button
4. In the dialog that appears, edit any of the following:
- Title
- Description
- Instructions
- Initial prompt
- Activities
- Parameters
- Response schema
4. When you're finished, you can:
<RecipeFields />
5. When you're finished, you can:
- Copy the recipe link to share the recipe with others
- Click `Save Recipe` to save your changes
- Click `Create Schedule` to [schedule the recipe](#schedule-recipe)
- Click `Save & Run Recipe` to save and immediately run the recipe in a new session

:::tip
You can also access the edit dialog while using a recipe in a session: Just click the <Bot className="inline" size={16} /> button at the bottom of the app and select `View/Edit Recipe`.
:::tip Edit In-Use Recipe
You can also access the edit dialog while using a recipe in a session: Just click the <ChefHat className="inline" size={16} /> button at the bottom of the app. The button shows up after you've sent your first message.
:::

</TabItem>
Expand Down Expand Up @@ -434,7 +422,7 @@ Create shortcuts to quickly run recipes in any goose chat session. Type a custom
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
1. Click the <PanelLeft className="inline" size={16} /> button in the top-left to open the sidebar
2. Click `Recipes`
2. Click `Recipes` in the sidebar
3. Find the recipe you want to edit and click the <Terminal className="inline" size={16} /> button
4. In the modal that pops up, type your custom command (without the leading `/`) into the text box
5. Click `Save`.
Expand Down Expand Up @@ -538,7 +526,7 @@ When someone clicks the link, it will open goose Desktop with your recipe config
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>` or open it directly in goose desktop with `goose recipe open <FILE>`. See the [CLI Commands guide](/docs/guides/goose-cli-commands#recipe) for details.
- CLI users can run a YAML or JSON recipe using `goose run --recipe <FILE>` or open it directly in goose Desktop with `goose recipe open <FILE>`. See the [CLI Commands guide](/docs/guides/goose-cli-commands#recipe) for details.

## Schedule Recipe
<Tabs groupId="interface">
Expand All @@ -552,8 +540,8 @@ Automate goose recipes by running them on a schedule. When creating a schedule,
**Schedule from Recipe Library:**

1. Click the <PanelLeft className="inline" size={16} /> button in the top-left to open the sidebar
2. Click `Recipes`
3. Find the recipe you want to schedule and click the <Calendar className="inline" size={16} /> button
2. Click `Recipes` in the sidebar
3. Find the recipe you want to schedule and click the <Clock className="inline" size={16} /> 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`
Expand Down Expand Up @@ -726,4 +714,4 @@ 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.

## Learn More
Check out the [Recipes](/docs/guides/recipes) guide for more docs, tools, and resources to help you master goose recipes.
Check out the [Recipes](/docs/guides/recipes) guide for more docs, tools, and resources to help you master goose recipes.
11 changes: 5 additions & 6 deletions documentation/docs/guides/recipes/storing-recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ sidebar_label: Saving Recipes

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { PanelLeft, Bot } from 'lucide-react';
import { PanelLeft, ChefHat } from 'lucide-react';

This guide covers storing, organizing, and finding goose recipes when you need to access them again later.

Expand Down Expand Up @@ -44,16 +44,15 @@ Before saving recipes, it's important to understand where they can be stored and

**Save New Recipe:**

1. To create a recipe from your chat session, see: [Create Recipe](/docs/guides/recipes/session-recipes#create-recipe)
1. To create a recipe from your chat session, see [Create Recipe](/docs/guides/recipes/session-recipes#create-recipe)
2. Once in the Recipe Editor, click `Save Recipe` to save it to your Recipe Library

**Save Modified Recipe:**

If you're already using a recipe and want to save a modified version:
1. Click the <Bot className="inline" size={16}/> button with your current model at the bottom of the window
2. Click `View Recipe`
3. Make any desired edits to the description, instructions, or initial prompts
5. Click `Save Recipe`
1. Click the <ChefHat className="inline" size={16}/> button at the bottom of the app, which appears after sending your first message
2. Make any desired edits to the instructions, prompt, or other fields
3. Click `Save Recipe`

:::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.
Expand Down
23 changes: 11 additions & 12 deletions documentation/docs/guides/using-goosehints.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ sidebar_label: Using goosehints

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { FolderKey } from 'lucide-react';
import { PanelLeft } from 'lucide-react';

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

Expand Down Expand Up @@ -46,21 +46,20 @@ You can use other agent rule files with goose by using the [`CONTEXT_FILE_NAMES`
<TabItem value="ui" label="goose Desktop" default>

#### Global hints file
1. Create a `.goosehints` file in `~/.config/goose`.
1. Create a `.goosehints` file in `~/.config/goose`

#### Local hints file

1. Change the directory to where you'd like to set up the file. You can do this by clicking the directory path on the bottom of the goose window.
2. Click the <FolderKey size={16} /> icon on the bottom right of the goose window.
4. Enter your local tips into the text area.
5. Click `Save`.
6. Restart your session so goose can read the updated `.goosehints`.
1. Click the directory path at the bottom of the app and open the directory where you want to create the file
2. Click the <PanelLeft className="inline" size={16} /> button in the top-left to open the sidebar
3. Click `Settings` in the sidebar
4. Click `Chat`
5. Scroll down to the `Project Hints (.goosehints)` section and click `Configure`
6. Enter your local hints in the text area
7. Click `Save`
8. Restart your session so goose can read the updated `.goosehints`

If a `.goosehints` file already exists in the given directory, you can edit or add to it from this screen.

:::tip
You may have to scroll or adjust the screen size to fully see the `Save` and `Cancel` buttons.
:::
If a `.goosehints` file already exists in the given directory, you can edit your existing hints.

</TabItem>
<TabItem value="manual" label="Manual">
Expand Down
16 changes: 16 additions & 0 deletions documentation/src/components/RecipeFields.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import React from "react";

const RecipeFields = () => {
return (
<ul>
<li><strong>Title</strong> and <strong>description</strong></li>
<li><strong>Instructions</strong> that tell goose what to do</li>
<li><strong>Initial prompt</strong> to pre-fill the chat input</li>
<li><strong>Message</strong> to display at the top of the recipe and <strong>activity buttons</strong> for users to click</li>
<li><strong>Parameters</strong> to accept dynamic values</li>
<li><strong>Response JSON schema</strong> for <a href="/goose/docs/guides/recipes/session-recipes#structured-output-for-automation">structured output in automations</a></li>
</ul>
);
};

export default RecipeFields;
Loading