14 KiB
sidebar_position, title, sidebar_label
| sidebar_position | title | sidebar_label |
|---|---|---|
| 7 | CLI Commands | CLI Commands |
Goose provides a command-line interface (CLI) with several commands for managing sessions, configurations and extensions. Below is a list of the available commands and their descriptions:
Commands
help
Used to display the help menu
Usage:
goose --help
configure [options]
Configure Goose settings - providers, extensions, etc.
Usage:
goose configure
session [options]
-
Start a session and give it a name
Options:
-n, --name <n>Usage:
goose session --name <n> -
Resume a previous session
Options:
-r, --resumeUsage:
goose session --resume --name <n>Or, if you didn't name your session, you can locate it by the session id generated by Goose, e.g.
2025250620_013617.goose session --resume --id <id> -
Start a session with the specified extension
Options:
--with-extension <command>Usage:
goose session --with-extension <command>Examples:
goose session --with-extension "npx -y @modelcontextprotocol/server-memory"With environment variable:
goose session --with-extension "GITHUB_PERSONAL_ACCESS_TOKEN=<YOUR_TOKEN> npx -y @modelcontextprotocol/server-github" -
Start a session with the specified remote extension over SSE
Options:
--with-remote-extension <url>Usage:
goose session --with-remote-extension <url>Examples:
goose session --with-remote-extension "http://localhost:8080/sse" -
Start a session with the specified built-in extension enabled (e.g. 'developer')
Options:
--with-builtin <id>Usage:
goose session --with-builtin <id>Example:
goose session --with-builtin computercontroller -
Enable debug mode to output complete tool responses, detailed parameter values, and full file paths
Options:
--debugUsage:
goose session --name my-session --debug -
Limit the maximum number of turns the agent can take before asking for user input to continue
Options:
--max-turns <NUMBER>Usage:
goose session --max-turns 50 -
Set the maximum number of turns allowed without user input (default: 1000)
Options:
--max-turns <NUMBER>Usage:
goose session --max-turns 10Examples:
# Low limit for step-by-step control goose session --max-turns 3 # Moderate limit for controlled automation goose session --max-turns 25 # Combined with other options goose session --name my-project --max-turns 10 --debug
session list [options]
List all saved sessions.
-v, --verbose: (Optional) Includes session file paths in the output.-f, --format <format>: Specify output format (textorjson). Default istext.--ascending: Sort sessions by date in ascending order (oldest first). Default is descending order (newest first).
Usage:
# List all sessions in text format (default)
goose session list
# List sessions with file paths
goose session list --verbose
# List sessions in JSON format
goose session list --format json
# Sort sessions by date in ascending order.
goose session list --ascending
session remove [options]
Remove one or more saved sessions.
Options:
-i, --id <id>: Remove a specific session by its ID-r, --regex <pattern>: Remove sessions matching a regex pattern. For example:
Usage:
# Remove a specific session by ID
goose session remove -i 20250305_113223
# Remove all sessions starting with "project-"
goose session remove -r "project-.*"
# Remove all sessions containing "migration"
goose session remove -r ".*migration.*"
:::caution Session removal is permanent and cannot be undone. Goose will show which sessions will be removed and ask for confirmation before deleting. :::
session export [options]
Export a session to Markdown format for sharing, documentation, or archival purposes.
Options:
-n, --name <name>: Export a specific session by name-p, --path <path>: Export a specific session by file path-o, --output <file>: Save exported content to a file (default: stdout)
Usage:
# Export specific session to file
goose session export --name my-session --output session.md
# Export specific session to stdout
goose session export --name my-session
# Interactive export (prompts for session selection)
goose session export
# Export session by path
goose session export --path ./my-session.jsonl --output exported.md
info [options]
Shows Goose information, including the version, configuration file location, session storage, and logs.
-v, --verbose: (Optional) Show detailed configuration settings, including environment variables and enabled extensions.
Usage:
goose info
version
Used to check the current Goose version you have installed
Usage:
goose --version
update [options]
Update the Goose CLI to a newer version.
Options:
--canary, -c: Update to the canary (development) version instead of the stable version--reconfigure, -r: Forces Goose to reset configuration settings during the update process
Usage:
# Update to latest stable version
goose update
# Update to latest canary version
goose update --canary
# Update and reconfigure settings
goose update --reconfigure
mcp
Run an enabled MCP server specified by <n> (e.g. 'Google Drive')
Usage:
goose mcp <n>
run [options]
Execute commands from an instruction file or stdin. Check out the full guide for more info.
Options:
-i, --instructions <FILE>: Path to instruction file containing commands. Use - for stdin.-t, --text <TEXT>: Input text to provide to Goose directly-s, --interactive: Continue in interactive mode after processing initial input-n, --name <n>: Name for this run session (e.g.daily-tasks)-r, --resume: Resume from a previous run--recipe <RECIPE_FILE_NAME> <OPTIONS>: Load a custom recipe in current session-p, --path <PATH>: Path for this run session (e.g../playground.jsonl)--with-extension <COMMAND>: Add stdio extensions (can be used multiple times in the same command)--with-builtin <n>: Add builtin extensions by name (e.g., 'developer' or multiple: 'developer,github')--debug: Output complete tool responses, detailed parameter values, and full file paths--max-turns <NUMBER>: Maximum number of turns allowed without user input (default: 1000)--explain: Show a recipe's title, description, and parameters--no-session: Run goose commands without creating or storing a session file--max-turns <NUMBER>: Limit the maximum number of turns the agent can take before asking for user input to continue (default: 1000)
Usage:
goose run --instructions plan.md
#Load a recipe with a prompt that Goose executes and then exits
goose run --recipe recipe.yaml
#Load a recipe from this chat and then stays in an interactive session
goose run --recipe recipe.yaml -s
#Load a recipe containing a prompt which Goose executes and then drops into an interactive session
goose run --recipe recipe.yaml --interactive
#Generates an error: no text provided for prompt in headless mode
goose run --recipe recipe_no_prompt.yaml
#Load a recipe in debug mode
goose run --recipe recipe.yaml --debug
#Show recipe details
goose run --recipe recipe.yaml --explain
#Run instructions from a file without session storage
goose run --no-session -i instructions.txt
#Run with a limit of 25 turns before asking for user input
goose run --max-turns 25 -i plan.md
#Run with limited turns before prompting user
goose run --recipe recipe.yaml --max-turns 10
bench
Used to evaluate system-configuration across a range of practical tasks. See the detailed guide for more information.
Usage:
goose bench ...etc.
recipe
Used to validate recipe files and manage recipe sharing.
Usage:
goose recipe <COMMAND>
Commands:
validate <FILE>: Validate a recipe filedeeplink <FILE>: Generate a shareable link for a recipe file
Options:
--help, -h: Print help information
Examples:
# Validate a recipe file
goose recipe validate my-recipe.yaml
# Generate a shareable link
goose recipe deeplink my-recipe.yaml
# Get help about recipe commands
goose recipe help
schedule
Automate recipes by running them on a schedule using a cron job.
Usage:
goose schedule <COMMAND>
Commands:
add <OPTIONS>: Create a new scheduled job. Copies the current version of the recipe to~/.local/share/goose/scheduled_recipeslist: View all scheduled jobsremove: Delete a scheduled jobsessions: List sessions created by a scheduled reciperun-now: Run a scheduled recipe immediately
Options:
--id <NAME>: A unique ID for the scheduled job (e.g.daily-report)--cron "* * * * * *": Specifies when a job should run using a 6-field cron expression represented as a string in the format "seconds minutes hours day-of-month month day-of-week"--recipe-source <PATH>: Path to the recipe YAML file--limit <NUMBER>: (Optional) max number of sessions to display when using thesessionscommand
Examples:
# Add a new scheduled recipe which runs every day at 9 AM
goose schedule add --id daily-report --cron "0 0 9 * * *" --recipe-source ./recipes/daily-report.yaml
# List all scheduled jobs
goose schedule list
# List the 10 most recent Goose sessions created by a scheduled job
goose schedule sessions --id daily-report --limit 10
# Run a recipe immediately
goose schedule run-now --id daily-report
# Remove a scheduled job
goose schedule remove --id daily-report
project
Start working on your last project or create a new one.
Alias: p
Usage:
goose project
For a complete guide, see Managing Projects Guide.
projects
Choose one of your projects to start working on.
Alias: ps
Usage:
goose projects
For detailed usage examples and workflows, see Managing Projects Guide.
web
Start a new session in Goose Web, a lightweight web-based interface launched via the CLI that mirrors the desktop app's chat experience.
Goose Web is particularly useful when:
- You want to access Goose with a graphical interface without installing the desktop app
- You need to use Goose from different devices, including mobile
- You're working in an environment where installing desktop apps isn't practical
Usage:
goose web
Options:
-p, --port <PORT>: Port number to run the web server on. Default is3000.--host <HOST>: Host to bind the web server to. Default is127.0.0.1.--open: Automatically open the browser when the server starts.
Examples:
# Start web interface at `http://127.0.0.1:3000` and open the browser
goose web --open
# Start web interface at `http://127.0.0.1:8080`
goose web --port 8080
# Start web interface accessible from local network at `http://192.168.1.7:8080`
goose web --host 192.168.1.7 --port 8080
Limitations:
While the web interface provides most core features, be aware of these limitations:
- Some file system operations may require additional confirmation
- Extension management must be done through the CLI
- Certain tool interactions might need extra setup
- Configuration changes require a server restart
:::warning Don't expose the web interface to the internet without proper security measures. :::
:::info
Use Ctrl-C to stop the server.
:::
Prompt Completion
The CLI provides a set of slash commands that can be accessed during a session. These commands support tab completion for easier use.
Available Commands
/?or/help- Display this help message/builtin <names>- Add builtin extensions by name (comma-separated)/exitor/quit- Exit the current session/extension <command>- Add a stdio extension (format: ENV1=val1 command args...)/mode <n>- Set the goose mode to use ('auto', 'approve', 'chat')/plan <message>- Create a structured plan based on the given message/prompt <n> [--info] [key=value...]- Get prompt info or execute a prompt/prompts [--extension <n>]- List all available prompts, optionally filtered by extension/recipe <recipe file name>- Generate and save a session recipe torecipe.yamlor the filename specified by the command parameter./summarize- Summarize the current session to reduce context length while preserving key information/t- Toggle between Light/Dark/Ansi themes
All commands support tab completion. Press <Tab> after a slash (/) to cycle through available commands or to complete partial commands.
Examples
# Create a plan for triaging test failures
/plan let's create a plan for triaging test failures
# List all prompts from the developer extension
/prompts --extension developer
# Switch to chat mode
/mode chat
Keyboard Shortcuts
Goose CLI supports several shortcuts and built-in commands for easier navigation.
Keyboard Navigation
Ctrl+C- Interrupt the current requestCtrl+J- Add a newlineCmd+Up/Down arrows- Navigate through command history
Slash Commands
/exitor/quit- Exit the session/t- Toggle between Light/Dark/Ansi themes/t <theme>- Set theme directly (/t light,/t dark, or/t ansi)/?or/help- Display the help menu