Session Management
A session is a single, continuous interaction between you and goose, providing a space to ask questions and prompt action. This guide covers how to manage the session lifecycle.
Start Session
In your first session, goose prompts you to set up an LLM (Large Language Model) provider.
- goose Desktop
- goose CLI
When you open goose, you'll see the session interface ready for use. Just type—or speak—your questions, requests, or instructions directly into the input field, and goose will immediately get to work.
To start a new chat session:
- Click the button in the top-left to open the sidebar
- Click
HomeorChatin the sidebar - Send your first prompt from the chat box
goose Desktop supports working with multiple active chat sessions in the same window. Your new sessions are added to the Chat section of the sidebar, so you can quickly switch between your 10 most recent sessions. Just click a session to continue working in that session.
To change your working directory, click the directory switcher at the bottom of the app.
To start a session in a new window, click the button in the top-left. After you send your first prompt, the new session is added to the Chat section of the sidebar.
On macOS, you can also use the goose dock icon to quickly start sessions:
- Drag and drop a folder onto the goose icon to open a new session in that directory
- Right-click the goose icon and select
New Windowto open a new session in your most recent directory
Keyboard Shortcuts
You can also use keyboard shortcuts to start a new session or manage goose windows.
| Action | macOS | Windows/Linux |
|---|---|---|
| New Session with Quick Launcher | Cmd+Option+Shift+G | Ctrl+Alt+Shift+G |
| New Session in Current Directory | Cmd+N | Ctrl+N |
| New Session in Current Directory (Same Window) | Cmd+T | Ctrl+T |
| New Session in Different Directory | Cmd+O | Ctrl+O |
| Toggle Sidebar | Cmd+B | Ctrl+B |
| Open Settings | Cmd+, | Ctrl+, |
| Focus goose Window | Cmd+Option+G | Ctrl+Alt+G |
| Keep goose Window Always on Top | Cmd+Shift+T | Ctrl+Shift+T |
Quick Launcher
Start a new session by typing your prompt into a popup:
- Press
Cmd+Option+Shift+G(macOS) orCtrl+Alt+Shift+G(Windows/Linux) to open the popup - Type your prompt and press
Enter
The session opens to your most recently opened directory in a new goose window.
Name Session
- goose Desktop
- goose CLI
A session's display name is auto-generated based on the context of your initial prompt. Session names help you identify goose sessions so you can switch between active sessions or resume a session.
You can edit session names after they're created:
- Click the button in the top-left to open the sidebar
- Click
View Allat the bottom of theChatsection - Hover over the session you'd like to rename
- Click the button that appears on the session card
- In the "Edit Session Description" modal that opens:
- Enter your new session description (up to 200 characters)
- Press
Enterto save orEscapeto cancel - Or click the
SaveorCancelbuttons
- A success toast notification will confirm the change
Session names appear in the Chat section of the sidebar, the Window menu, and the Dock (macOS) or taskbar (Windows) menu.
By default, goose names your session using the current timestamp in the format YYYYMMDD_<COUNT>. If you'd like to provide a specific name, this is where you'd do so. For example to name your session react-migration, you would run:
goose session -n react-migration
You'll know your session has started when your terminal looks similar to the following:
starting session | provider: openai model: gpt-4o
session id: react-migration
working directory: /path/to/your/project
Exit Session
Note that sessions are automatically saved when you exit.
- goose Desktop
- goose CLI
To exit a session, simply close the application.
To exit a session, type exit. Alternatively, you exit the session by holding down Ctrl+C.
Your session will be stored in goose's local SQLite database.
Search Sessions
Search allows you to find specific content within sessions or find specific sessions.
- goose Desktop
- goose CLI
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 |
Using regular expressions or search operators in search text isn't supported.
The following scenarios are supported:
Search Within Current Session
To find specific content within your current session:
- Use
Cmd+Fto open the search bar - Enter your search term
- 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:
- Click the button in the top-left to open the sidebar
- Click
View Allat the bottom of theChatsection - Use
Cmd+Fto open the search bar - Enter your search term
- Use keyboard shortcuts and search bar buttons to navigate the results (
Cmd+Enot supported)
This is a metadata-only search. It doesn't search conversation content. Note that searching by session ID (e.g. 20251108_1) is supported, but this property isn't displayed in the UI.
You can rename sessions to give them descriptive names that you'll remember later.
Search Across All Session Content
To search conversation content across all your sessions, ask goose directly in any chat session. For example:
- "Find my earlier conversation about React hooks from last week"
- "Show me sessions where I worked on database migrations"
goose will search your session history and show relevant conversations with context from matching sessions.
This functionality requires the built-in Chatrecall extension to be enabled. You can enable it manually or, if Extension Manager is enabled, simply ask goose to use it:
- "Use chatrecall to find the latest status of the database migration project"
Search Within Current Session
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 |
To find specific content within your current session:
- Use the shortcut to open the search bar
- Enter your search term
- Use shortcuts and search bar buttons to navigate the results
Your specific terminal emulator may use a different keyboard shortcut. Check your terminal's documentation or settings for the search command.
Search Across All Session Content
To search conversation content across all your sessions, start a goose session and ask directly:
- "Find my earlier conversation about React hooks from last week"
- "Show me sessions where I worked on database migrations"
goose will search your session history and show relevant conversations with context from matching sessions.
This functionality requires the built-in Chatrecall extension to be enabled.
Search Session Data Directly
The session list subcommand with supported options can be useful for some search operations.
You can also query the SQLite database directly:
# Search session descriptions
sqlite3 ~/.local/share/goose/sessions/sessions.db \
"SELECT id, description FROM sessions WHERE description LIKE '%your search term%';"
# Search by working directory
sqlite3 ~/.local/share/goose/sessions/sessions.db \
"SELECT id, description, working_dir FROM sessions WHERE working_dir LIKE '%project-name%';"
# List recent sessions
sqlite3 ~/.local/share/goose/sessions/sessions.db \
"SELECT id, description, created_at FROM sessions ORDER BY created_at DESC LIMIT 10;"
Starting with version 1.10.0, goose uses a SQLite database (sessions.db) instead of individual .jsonl files. Legacy .jsonl files remain on disk but are no longer managed by goose.
Resume Session
- goose Desktop
- goose CLI
You can switch between active sessions in the sidebar or resume any session from your history.
Switch Between Active Sessions
goose Desktop allows you to switch between multiple chat sessions in the same window. You can start a task in one session, switch to another to do some work, and return to the first session when the task is completed.
Your most recent sessions (up to 10) are available in the sidebar for quick access:
- Click the button in the top-left to open the sidebar
- In the
Chatsection, click any session to switch to it
Visual indicators help you track session status:
- Blue spinning icon - Session is actively processing a request
- Green dot - Session completed a task while you were viewing a different session
- Red dot - Session encountered an error
In addition, sessions that are started from a recipe display the icon.
You can rename sessions to make it easier to identify specific sessions.
Resume from Session History
To find and resume sessions beyond your 10 most recent:
- Click the button in the top-left to open the sidebar
- Click
View Allat the bottom of theChatsection - Find the session you'd like to resume. goose provides search features to help you find the session.
- Choose how to resume:
- Click
Resumeto continue in the current window - Click
New Windowto open in a new window
- Click
To resume your latest session, you can run the following command:
goose session -r
To resume a specific session, run the following command:
goose session -r --name <name>
For example, to resume the session named react-migration, you would run:
goose session -r --name react-migration
Sessions created in goose Desktop can be resumed in the CLI and vice versa. All sessions are stored in the same database.
While you can resume sessions, we recommend creating new sessions for new tasks to reduce the chance of doom spiraling.
Resume Project-Based Sessions
- goose Desktop
- goose CLI
Project-based sessions are only available through the CLI.
You can use the project and projects commands to start or resume sessions from a project, which is a tracked working directory with session metadata. For a complete guide to using Projects, see Managing Projects Guide.
Delete Sessions
- goose Desktop
- goose CLI
You can delete sessions directly from the Desktop app:
- Click the button in the top-left to open the sidebar
- Click
View Allat the bottom of theChatsection - Find the session you want to delete
- Hover over the session card to reveal the action buttons
- Click the button that appears
- Confirm the deletion in the modal that appears
Deleting a session from goose Desktop will also delete it from the CLI. This action cannot be undone.
The session will be immediately removed from your session history and the underlying session record will be deleted from local storage.
You can remove sessions using CLI commands. For detailed instructions on session removal, see the CLI Commands documentation.
Import Sessions
- goose Desktop
- goose CLI
Import complete sessions from JSON files to restore, share, or migrate sessions between goose instances. Importing creates a new session with a new ID rather than overwriting existing sessions.
- Click the button in the top-left to open the sidebar
- Click
View Allat the bottom of theChatsection - Click the
Import Sessionbutton in the top-right corner - Select a
.jsonsession file that was previously exported from goose - The session will be imported with a new session ID
- A success notification will confirm the import
Session import is currently only available through the Desktop app.
Export Sessions
- goose Desktop
- goose CLI
Export complete sessions as JSON files for backup, sharing, migration, or archival. Exported files preserve all session data including conversation history, metadata, and settings.
- Click the button in the top-left to open the sidebar
- Click
View Allat the bottom of theChatsection - Find the session you want to export
- Hover over the session card to reveal the action buttons
- Click the button that appears
- The session will be downloaded as a
.jsonfile named after the session description
Export sessions for backup, sharing, migration, or documentation purposes. You can export as JSON files to preserve complete session data including conversation history, metadata, and settings, or as Markdown files to get a formatted, readable version of the conversation.
From your terminal, run the session export subcommand:
goose session export