Create a Recipe from Your Session
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.
You can turn your current Goose session into a reusable recipe that includes the tools, goals, and setup you're using right now and package it into a new Agent that others (or future you) can launch with a single click.
Create Recipe
You'll need to provide both instructions and activities for your Recipe.
-
Instructions provide the purpose. These get sent directly to the model and define how it behaves. Think of this as its internal mission statement. Make it clear, action-oriented, and scoped to the task at hand.
-
Activities are specific, example prompts that appear as clickable bubbles on a fresh session. They help others understand how to use the Recipe.
- Goose Desktop
- Goose CLI
- While in the session you want to save as a recipe, click the menu icon ⋮ in the top right corner
- Select Make Agent from this session
- In the dialog that appears:
- Name the recipe
- Provide a description
- Some activities will be automatically generated. Add or remove as needed.
- A set of instructions will also be automatically generated. Review and edit as needed.
- Copy the Recipe URL and use it however you like (e.g., share it with teammates, drop it in documentation, or keep it for yourself)
While in a session, run the following command:
/recipe
This will generate a recipe.yaml
file in your current directory.
Alternatively, you can provide a custom filename:
/recipe my-custom-recipe.yaml
recipe.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 then edit the recipe file to include the following key information:
instructions
: Add or modify the system instructionsprompt
: Add the initial message or question to start a Goose session withactivities
: List the activities that can be performed
Recipe Parameters
You may add parameters to a recipe, which will require uses to fill in data when running the recipe. Parameters can be added to any part of the recipe (instructions, prompt, activities, etc).
To add parameters, edit your recipe file to include template variables using {{ variable_name }}
syntax.
Example recipe with parameters
version: 1.0.0
title: {{ project_name }} Code Review
description: Automated code review for {{ project_name }} with {{ language }} focus
instructions: |
You are a code reviewer specialized in {{ language }} development.
Apply the following standards:
- Complexity threshold: {{ complexity_threshold }}
- Required test coverage: {{ test_coverage }}%
- Style guide: {{ style_guide }}
activities:
- "Review {{ language }} code for complexity"
- "Check test coverage against {{ test_coverage }}% requirement"
- "Verify {{ style_guide }} compliance"
When someone runs a recipe that contains template parameters, they will need to provide the parameters:
goose run --recipe code-review.yaml \
--params project_name=MyApp \
--params language=Python \
--params complexity_threshold=15 \
--params test_coverage=80 \
--params style_guide=PEP8
Validate the recipe
Exit the session and run:
goose recipe validate recipe.yaml
Share the recipe
- To share with CLI users, send them the recipe yaml file
- To share with Desktop users, run the following command to create a deep link:
goose recipe deeplink recipe.yaml
Use Recipe
- Goose Desktop
- Goose CLI
To use a shared recipe, simply click the recipe link, or paste in a browser address bar. This will open Goose Desktop and start a new session with:
- The recipe's defined instructions
- Suggested activities as clickable bubbles
- The same extensions and project context (if applicable)
Each person using the recipe gets their own private session, so no data is shared between users, and nothing links back to your original session.
You can start a session with a recipe file in the following ways:
- Run the recipe once and exit:
goose run --recipe recipe.yaml
- Run the recipe and enter interactive mode:
goose run --recipe recipe.yaml --interactive
- Run the recipe with parameters:
goose run --recipe recipe.yaml --interactive --params language=Spanish --params style=formal --params name=Alice
Be sure to use the exact filename of the recipe.
What's Included
A Recipe captures:
- AI instructions (goal/purpose)
- Suggested activities (examples for the user to click)
- Enabled extensions and their configurations
- Project folder or file context
- Initial setup (but not full conversation history)
To protect your privacy and system integrity, Goose excludes:
- Global and local memory
- API keys and personal credentials
- System-level Goose settings
This means others may need to supply their own credentials or memory context if the Recipe depends on those elements.
Example Use Cases
- 🔧 Share a debugging workflow with your team
- 📦 Save a repeatable project setup
- 📚 Onboard someone into a task without overwhelming them
Tips for Great Recipes
If you're sharing recipes with others, here are some tips:
- Be specific and clear in the instructions, so users know what the recipe is meant to do.
- Keep the activity list focused. Remove anything that's too specific or out of scope.
- Test the link yourself before sharing to make sure everything loads as expected.
- Mention any setup steps that users might need to complete (e.g., obtaining an API key).
Troubleshooting
- You can't create a Recipe from an existing Recipe session. The menu option will be disabled
- Make sure you're using the latest version of Goose if something isn't working
- Remember that credentials, memory, and certain local setups won't carry over