diff --git a/documentation/docs/guides/managing-goose-sessions.md b/documentation/docs/guides/managing-goose-sessions.md index 4bf62aa2e971..d44289d9df6a 100644 --- a/documentation/docs/guides/managing-goose-sessions.md +++ b/documentation/docs/guides/managing-goose-sessions.md @@ -5,7 +5,7 @@ sidebar_label: Managing Sessions --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -import { AppWindow, PanelLeft, FolderDot, Paperclip } from 'lucide-react'; +import { AppWindow, PanelLeft, FolderDot, Paperclip, Copy } from 'lucide-react'; A session is a single, continuous interaction between you and Goose, providing a space to ask questions and prompt action. In this guide, we'll cover how to start, exit, and resume a session. @@ -104,13 +104,114 @@ Note that sessions are automatically saved when you exit. +## Search Sessions + +Search allows you to find specific content within sessions or find specific sessions. + + + + + You can use keyboard shortcuts and search bar buttons to search sessions in Goose Desktop. + + | Action | macOS | Windows/Linux | + |--------|-------|---------------| + | Open Search | `Cmd+F` | `Ctrl+F` | + | Next Match | `Cmd+G` or `↓` | `Ctrl+G` or `↓` | + | Previous Match | `Shift+Cmd+G` or `↑` | `Shift+Ctrl+G` or `↑` | + | Use Selection for Find | `Cmd+E` | n/a | + | Toggle Case-Sensitivity | `Aa` | `Aa` | + | Close Search | `Esc` or `X` | `Esc` or `X` | + + The following scenarios are supported: + + #### Search Within Current Session + + To find specific content within your current session: + + 1. Use `Cmd+F` to open the search bar + 2. Enter your search term + 3. Use shortcuts and search bar buttons to navigate the results + + #### Search For Session By Name or Path + + To search all your sessions by name or working directory path: + + 1. Click the button in the top-left to open the sidebar + 2. Click `History` in the sidebar + 3. Use `Cmd+F` to open the search bar + 4. Enter your search term + 5. Use keyboard shortcuts and search bar buttons to navigate the results (`Cmd+E` not supported) + + This is a metadata-only search. It doesn't search conversation content. Note that searching by file name is supported (e.g. `20250727_130002.jsonl`), but this property isn't displayed in the UI. + + #### Search Within Historical Session + + To find specific content within a historical session: + + 1. Click the button in the top-left to open the sidebar + 2. Click `History` in the sidebar + 3. Click a specific session tile from the list to view its content + 4. Use `Cmd+F` to open the search bar + 5. Enter your search term + 6. Use keyboard shortcuts and search bar buttons to navigate the results + + :::info No Regex or operator support + Using regular expressions or search operators in search text isn't supported. + ::: + + + + + Search functionality is provided by your terminal interface. Use the appropriate shortcut for your environment: + + | Terminal | Operating System | Shortcut | + |----------|-----------------|-----------| + | iTerm2 | macOS | `Cmd+F` | + | Terminal.app | macOS | `Cmd+F` | + | Windows Terminal | Windows | `Ctrl+F` | + | Linux Terminal | Linux | `Ctrl+F` | + + :::info + Your specific terminal emulator may use a different keyboard shortcut. Check your terminal's documentation or settings for the search command. + ::: + + The Goose CLI supports [listing session history](/docs/guides/goose-cli-commands#session-list-options) but doesn't provide search functionality. As a workaround, you can use your terminal's search capabilities (including regex support) to search for specific content within sessions or find specific sessions. + + Examples for macOS: + + ```bash + # Search session IDs (filenames) + ls ~/.local/share/goose/sessions/ | grep "full or partial session id" + + # List sessions modified in last 7 days + find ~/.local/share/goose/sessions/ -mtime -7 -name "*.jsonl" + + # Show first line (metadata) of each session file + for f in ~/.local/share/goose/sessions/*.jsonl; do + head -n1 "$f" | grep "your search term" && echo "Found in: $(basename "$f" .jsonl)" + done + + # Find search term in session content + rg "your search term" ~/.local/share/goose/sessions/ + + # Search and show session IDs that contain search term + for f in ~/.local/share/goose/sessions/*.jsonl; do + if grep -q "your search term" "$f"; then + echo "Found in session: $(basename "$f" .jsonl)" + fi + done + ``` + + + + ## Resume Session 1. Click the button in the top-left to open the sidebar 2. Click `History` in the sidebar - 3. Click the session you'd like to resume + 3. Click the session you'd like to resume. Goose provides [search features](#search-sessions) to help you find the session. 4. Choose how to resume: - Click `Resume` to continue in the current window - Click `New Window` to open in a new window @@ -144,56 +245,6 @@ Note that sessions are automatically saved when you exit. -### Search Session History - - - - In Goose Desktop, you can search session metadata including the description, filename, and working directory path. The search is text-based and supports case-sensitive matching, but doesn't search session content or support regex patterns. - - 1. Click the button in the top-left to open the sidebar - 2. Click `History` in the sidebar - 3. Use `Cmd+F` to open the search bar - 4. Enter your search term - 5. Use search features to refine and navigate results - - | Action | macOS | Windows/Linux | - |--------|-------|---------------| - | Next Match | `Cmd+G`
or `↓` | `Ctrl+G`
or `↓` | - | Previous Match | `Shift+Cmd+G`
or `↑` | `Shift+Ctrl+G`
or `↑` | - | Toggle Case-Sensitivity | `Aa` | `Aa` | - | Focus Search Bar | `Cmd+F` | `Ctrl+F` | - | Close Search | `Esc` or X | `Esc` or X | - -
- - The Goose CLI supports [listing session history](/docs/guides/goose-cli-commands/#session-list-options) but doesn't provide search functionality. As a workaround, you can use your terminal's search capabilities (including regex support). Examples for macOS: - - ```bash - # Search session IDs (filenames) - ls ~/.local/share/goose/sessions/ | grep "full or partial session id" - - # List sessions modified in last 7 days - find ~/.local/share/goose/sessions/ -mtime -7 -name "*.jsonl" - - # Show first line (metadata) of each session file - for f in ~/.local/share/goose/sessions/*.jsonl; do - head -n1 "$f" | grep "your search term" && echo "Found in: $(basename "$f" .jsonl)" - done - - # Find search term in session content - rg "your search term" ~/.local/share/goose/sessions/ - - # Search and show session IDs that contain search term - for f in ~/.local/share/goose/sessions/*.jsonl; do - if grep -q "your search term" "$f"; then - echo "Found in session: $(basename "$f" .jsonl)" - fi - done - ``` - - -
- ### Resume Session Across Interfaces You can resume a CLI session in Desktop. @@ -290,40 +341,6 @@ Speak to Goose directly instead of typing your prompts. -## Search Within Sessions - -Search allows you to find specific content within your current session. The search functionality is available in both CLI and Desktop interfaces. - - - - Trigger search using keyboard shortcuts or the search icon: - - | Action | macOS | Windows/Linux | - |--------|-------|---------------| - | Open Search | `Cmd+F` | `Ctrl+F` | - | Next Match | `Cmd+G`
or `↓` | `Ctrl+G`
or `↓` | - | Previous Match | `Shift+Cmd+G`
or `↑` | `Shift+Ctrl+G`
or `↑` | - | Use Selection for Find | `Cmd+E` | n/a | - | Toggle Case-Sensitivity | `Aa` | `Aa` | - | Close Search | `Esc` or X | `Esc` or X | - -
- - Search functionality is provided by your terminal interface. Use the appropriate shortcut for your environment: - - | Terminal | Operating System | Shortcut | - |----------|-----------------|-----------| - | iTerm2 | macOS | `Cmd+F` | - | Terminal.app | macOS | `Cmd+F` | - | Windows Terminal | Windows | `Ctrl+F` | - | Linux Terminal | Linux | `Ctrl+F` | - - :::info - Your specific terminal emulator may use a different keyboard shortcut. Check your terminal's documentation or settings for the search command. - ::: - -
- ## Share Files in Session diff --git a/documentation/docs/guides/recipes/session-recipes.md b/documentation/docs/guides/recipes/session-recipes.md index f218ffa1c283..24f17358066d 100644 --- a/documentation/docs/guides/recipes/session-recipes.md +++ b/documentation/docs/guides/recipes/session-recipes.md @@ -455,7 +455,7 @@ You can turn your current Goose session into a reusable recipe that includes the - Share your recipe with Desktop users by copying the recipe URL from the recipe creation dialog. When someone clicks the URL, it will open Goose Desktop with your recipe configuration. + Share your recipe with Desktop users by copying the recipe URL from the recipe creation dialog. To copy the recipe URL: 1. [Open the recipe](#use-recipe) @@ -463,6 +463,8 @@ You can turn your current Goose session into a reusable recipe that includes the 3. Click `View recipe` 4. Scroll down and copy the link + When someone clicks the URL, it will open Goose Desktop with your recipe configuration. They can also use your recipe URL to [import a recipe](/docs/guides/recipes/storing-recipes#storing-recipes) into their Recipe Library. + 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: diff --git a/documentation/docs/guides/recipes/storing-recipes.md b/documentation/docs/guides/recipes/storing-recipes.md index b9075c697f40..d6844a775e33 100644 --- a/documentation/docs/guides/recipes/storing-recipes.md +++ b/documentation/docs/guides/recipes/storing-recipes.md @@ -59,6 +59,15 @@ If you're already using a recipe and want to save a modified version: 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** + diff --git a/documentation/docs/mcp/_template_.mdx b/documentation/docs/mcp/_template_.mdx index 32d66f515134..bb8d41afd8be 100644 --- a/documentation/docs/mcp/_template_.mdx +++ b/documentation/docs/mcp/_template_.mdx @@ -1,7 +1,6 @@ --- title: {Extension Name} Extension - -escription: Add {Extension Name} MCP Server as a Goose Extension +description: Add {Extension Name} MCP Server as a Goose Extension --- import Tabs from '@theme/Tabs';