Interactive Configuration
First-Time Setup
Run the configuration command:- Provider Selection: Choose from 30+ LLM providers
- Authentication: Enter API keys or complete OAuth flows
- Extension Setup (optional): Add MCP servers for extended capabilities
- Preferences (optional): Set telemetry, permissions, and output preferences
Modifying Configuration
Rungoose configure again to modify settings:
- Switch providers or models
- Update API credentials
- Add/remove extensions
- Change preferences
Provider Configuration
Cloud Providers
For cloud-based LLM providers, you’ll typically need an API key.- OpenAI
- Anthropic
- Databricks
Required Environment Variable:Optional Configuration:Available Models:
gpt-4.6(latest)gpt-4.5-previewgpt-4o(default)o1-preview,o1-minigpt-3.5-turbo
Local Inference
For local models using Ollama:Configuration Files
Goose stores configuration in several locations:Config Directory
- macOS/Linux
- Windows
config.yaml Structure
Secret Storage
Goose stores sensitive credentials securely:- macOS: Keychain
- Linux: Secret Service (GNOME Keyring, KWallet) or encrypted file
- Windows: Credential Manager
goose configure and never stored in plain text configuration files.
Environment Variables
Environment variables override configuration file values and are useful for:- Testing different providers
- CI/CD environments
- Temporary configuration changes
Common Variables
Configuration Precedence
When multiple configuration sources exist, goose follows this precedence order (highest to lowest):- Environment variables (
GOOSE_*, provider-specific) - Command-line flags (
--provider,--model) - Recipe parameters (when running a recipe)
- User config file (
~/.config/goose/config.yaml) - Project hints (
.goosehintsin working directory) - Default values
This allows you to override configuration temporarily without modifying files.
Extension Configuration
Adding Extensions
Duringgoose configure, you can add MCP servers:
config.yaml:
Extension Security
For security, goose:- Validates extension manifests
- Prompts for tool execution (unless permission mode is set to “allow”)
- Filters environment variables passed to extensions
- Scans extension outputs for malware patterns
Testing Your Configuration
After configuration, test that everything works:Next Steps
CLI Usage
Learn how to use the goose command-line interface
Desktop App
Explore the graphical desktop application
Environment Variables
Complete reference for environment variable configuration
Extensions
Add custom tools and capabilities to goose
Troubleshooting
Provider authentication fails
Provider authentication fails
Check that:
- Your API key is correct and not expired
- The environment variable name matches the provider’s expectation
- Your account has API access enabled
- Your network allows connections to the provider’s API
goose configure again to re-enter credentials.Extensions don't load
Extensions don't load
Verify that:
- The extension command is in your PATH
- Required dependencies are installed (e.g.,
npxfor Node.js servers) - The transport configuration matches the extension’s requirements
- Check logs with
goose session --log-level debug
Configuration changes don't apply
Configuration changes don't apply
Remember the precedence order - environment variables override config files. Try:
- Unset conflicting environment variables:
unset GOOSE_PROVIDER - Delete and recreate the config:
rm ~/.config/goose/config.yaml && goose configure - Check for project-level
.goosehintsthat might override settings