Skip to main content
Find answers to common questions about using goose, from basic setup to advanced features.

Getting Started

goose is an open-source, on-machine AI agent capable of automating complex development tasks from start to finish. Unlike simple code completion tools, goose can build entire projects, write and execute code, debug failures, orchestrate workflows, and interact with external APIs autonomously.goose works with any LLM provider, supports multi-model configuration, integrates with MCP servers, and is available as both a desktop app and CLI tool.Learn more: Introduction
goose is available in multiple formats:Desktop App (Recommended for beginners):
  • Download from the goose website
  • Available for macOS, Linux, and Windows
  • Includes built-in UI and automatic updates
CLI (For developers and automation):
From source:
See the Installation Guide for detailed instructions.
goose supports a wide range of LLM providers:Cloud Providers:
  • OpenAI (GPT-4, GPT-3.5)
  • Anthropic (Claude 3.5 Sonnet, Opus, Haiku)
  • Google Gemini
  • GitHub Copilot
  • Databricks
  • Azure OpenAI
  • Amazon Bedrock
Local Providers:
  • Ollama (runs models locally)
  • Any OpenAI-compatible API endpoint
Configure your provider with:
Learn more: Providers
Yes, you need an API key for your chosen LLM provider (except for local Ollama models).Getting API keys:Storing keys securely:goose stores API keys in your system keyring by default (macOS Keychain, Windows Credential Manager, Linux Secret Service). You can also use environment variables:
See: Configuration
goose itself is free and open source. However, you pay for LLM API usage based on your provider’s pricing.Cost considerations:
  • Claude 3.5 Sonnet: ~3permillioninputtokens, 3 per million input tokens, ~15 per million output tokens
  • GPT-4: ~10permillioninputtokens, 10 per million input tokens, ~30 per million output tokens
  • GPT-3.5: ~0.50permillioninputtokens, 0.50 per million input tokens, ~1.50 per million output tokens
  • Gemini: Competitive pricing with free tier available
  • Ollama (local): Free, but requires local compute resources
Cost optimization:
  • Use lead/worker model configuration (expensive model for planning, cheaper for execution)
  • Start sessions with clear, specific goals
  • Use .goosehints to reduce context size
  • Monitor usage in your provider’s dashboard
Learn more: Providers

Using goose

goose can automate a wide range of development tasks:Code Development:
  • Build entire projects from scratch
  • Write, refactor, and optimize code
  • Generate tests and documentation
  • Debug issues and fix bugs
DevOps & Automation:
  • Set up CI/CD pipelines
  • Configure development environments
  • Manage Docker containers
  • Deploy applications
Research & Analysis:
  • Search documentation and codebases
  • Analyze code quality and security
  • Generate reports and summaries
Integration:
  • Interact with GitHub, GitLab, Jira
  • Query databases
  • Call external APIs
  • Use MCP servers for extended capabilities
See Tutorials for real-world examples.
CLI:
Desktop App:
  1. Launch goose Desktop
  2. Click New Session or press Cmd+N (macOS) / Ctrl+N (Windows/Linux)
  3. Type your request in the chat input
  4. Press Enter or click Send
Learn more: Sessions
Extensions are tools that expand goose’s capabilities by integrating with external services and systems.Built-in Extensions:
  • Developer: File operations, shell commands, code execution
  • GitHub: Repository management, PR creation, issue tracking
  • Screen Control: UI automation and testing
MCP Server Extensions:Extensions following the Model Context Protocol can be added from the community:
Managing Extensions:
  • Desktop: Settings → Extensions → Enable/Disable
  • CLI: Edit ~/.config/goose/config.yaml
Learn more: Extensions
Recipes are reusable automation workflows that define specific tasks for goose to execute.Example Recipe:
Running Recipes:
Use cases:
  • Standardize team workflows
  • Automate repetitive tasks
  • Share best practices
  • Schedule recurring tasks
Learn more: Recipes
CLI:
  • Press Ctrl+C to interrupt the current task
  • Type exit or quit to end the session
Desktop App:
  • Click the Stop button in the chat interface
  • Press Esc to cancel ongoing operations
  • Close the session tab to end it
When to interrupt:
  • goose is heading in the wrong direction
  • You need to provide additional context
  • A task is taking too long
  • You notice an error or unexpected behavior
You can resume the session and provide corrections after interrupting.
Yes, goose can and will edit files as part of its workflow.Protecting Your Work:
  1. Use version control (Git):
  2. Review before committing:
    • Leave goose’s edits unstaged
    • Review changes with git diff
    • Create separate commits for goose’s work
  3. Use interrupts:
    • Stop goose if it’s making unwanted changes
    • Provide clearer instructions
    • Revert changes and try again
  4. Limit scope:
    • Be specific about which files to modify
    • Use .goosehints to guide behavior
    • Start with small, focused tasks
Learn more: Best Practices

Configuration and Customization

goose uses platform-specific directories:Configuration Files:
  • macOS/Linux: ~/.config/goose/
  • Windows: %APPDATA%\Block\goose\config\
Data and Sessions:
  • macOS: ~/Library/Application Support/goose/
  • Linux: ~/.local/share/goose/
  • Windows: %LOCALAPPDATA%\Block\goose\
Logs:
  • macOS/Linux: ~/.local/state/goose/logs/
  • Windows: %LOCALAPPDATA%\Block\goose\logs\
Secrets:
  • macOS: Keychain (credential named “goose”)
  • Linux: System keyring (if available)
  • Windows: Credential Manager
Learn more: Configuration Files
Environment variables override configuration file settings:Common Variables:
Making variables persistent:Add to your shell configuration:
Learn more: Environment Variables
Yes! goose supports multi-model configuration:Lead/Worker Pattern:Use a powerful model for planning and a faster/cheaper model for execution:
Benefits:
  • Lower costs (use expensive models only when needed)
  • Faster execution (worker model handles routine tasks)
  • Better quality (lead model handles complex reasoning)
Switching providers:
Learn more: Custom Providers
.goosehints is a file that provides project-specific context and guidelines to goose.Example .goosehints:
Benefits:
  • Reduces token usage (concise context vs. full files)
  • Guides goose’s behavior
  • Enforces coding standards
  • Prevents mistakes
Place .goosehints in your project root.Learn more: Using Goosehints
You can create custom extensions using the MCP protocol:1. Create an MCP server:
2. Configure in goose:
Learn more: Creating Extensions

Troubleshooting

Common causes and solutions:
  1. Large context size:
    • Break tasks into smaller sessions
    • Use .goosehints instead of including full files
    • Clear old messages from long sessions
  2. Slow LLM provider:
    • Switch to a faster model (e.g., GPT-3.5, Claude Haiku)
    • Check provider status page
    • Verify network connectivity
  3. Extension issues:
    • Disable unused extensions
    • Check extension logs for errors
    • Update to latest extension versions
  4. System resources:
    • Close other resource-intensive applications
    • Check disk space (logs can accumulate)
    • Monitor CPU/memory usage
If issues persist, generate a diagnostic report and check the logs.
Generate a diagnostic report:
This creates a ZIP file with:
  • System information
  • Session data
  • Recent logs (last 10 files)
  • Configuration files
View logs manually:
Filter for errors:
Learn more: Diagnostics and Debugging
Extensions may fail to activate for several reasons:1. Missing package runners:
Install if needed:
  • Node.js: Download from nodejs.org
  • uv: curl -LsSf https://astral.sh/uv/install.sh | sh
2. Network restrictions:In corporate or airgapped environments, extensions can’t download dependencies. See Airgapped Environments.3. Malicious package detection:goose blocks extensions using packages flagged as malicious. Find alternative extensions or verify the package is safe.4. Configuration errors:
Learn more: Known Issues - Extensions
If goose enters a “doom spiral” or repeats the same actions:Immediate actions:
  1. Interrupt: Press Ctrl+C (CLI) or click Stop (Desktop)
  2. Provide context: Add clarifying information about what went wrong
  3. Restart if needed: End the session and start fresh
Prevention:
  • Break large tasks into smaller, focused sessions
  • Provide clear, specific instructions
  • Use .goosehints to guide behavior
  • Monitor progress and interrupt early if goose goes off-track
Example:
See: Known Issues - Stuck in a Loop
Community Support:Documentation:Report Bugs:
  • File a bug report
  • Include a diagnostic report for faster resolution
  • Check existing issues first to avoid duplicates
Request Features:

Advanced Topics

Yes! goose can be integrated into CI/CD workflows:Example GitHub Actions:
Use cases:
  • Automated code reviews
  • Test generation
  • Documentation updates
  • Security scanning
  • Release note generation
Learn more: CI/CD Integration
goose supports scheduling recipes to run automatically:Schedule a recipe:
List scheduled tasks:
Remove a scheduled task:
Common schedules:
  • 0 9 * * * - Daily at 9 AM
  • 0 */4 * * * - Every 4 hours
  • 0 0 * * 0 - Weekly on Sunday midnight
  • 0 0 1 * * - Monthly on the 1st
Learn more: Scheduling
Yes! goose includes a server mode for team deployments:Start the server:
Connect from UI:
Use cases:
  • Team collaboration
  • Centralized configuration
  • Resource sharing
  • Audit logging
  • Access control
Learn more: Server Deployment
You can create custom distributions with pre-configured providers, extensions, and branding:1. Fork the repository:
2. Customize configuration:
  • Update ui/desktop/package.json for branding
  • Pre-configure config.yaml defaults
  • Bundle custom extensions
  • Add organization-specific .goosehints
3. Build:
Use cases:
  • Enterprise deployments
  • Team-specific configurations
  • Airgapped environments
  • Custom branding
Learn more: Custom Distributions

Still Have Questions?

If your question isn’t answered here:
  1. Search the documentation - Use the search bar at the top
  2. Check the guides - Browse User Guides for detailed topics
  3. Join Discord - Ask the community at discord.gg/goose-oss
  4. Review issues - Search GitHub Issues for similar questions
  5. Start a discussion - Create a topic in GitHub Discussions
We’re here to help!