Table of Contents
- Introduction
- What is Goose?
-
Windows Installation Options
- A. Option 1: Goose Desktop (Recommended for Beginners)
- Installation Steps
- A walkthrough
- First Launch
- B. Option 2: Goose CLI (For Power Users)
- Method 1: Native Windows Installation
- Critical Windows-Specific Note
- Method 2: Windows Subsystem for Linux (WSL)
- Installation Steps
- WSL Considerations
- Windows-Specific API Key Setup
- Choosing an LLM Provider
- Running Your First Goose Session
- Windows-Specific Optimizations and Best Practices
- Working with Extensions
- Troubleshooting Common Windows Issues
- Updating Goose
- Best Practices for Windows Users
- Advanced Configuration
Introduction
Goose is an open source, extensible AI agent that transforms how developers work by going beyond simple code suggestions. It can install packages, execute commands, edit files, and test code, all powered by your choice of LLM. While Goose has traditionally been more prevalent on macOS and Linux, Windows support has matured significantly, making it a powerful tool for Windows developers.
This comprehensive guide will walk you through installing, configuring, and optimizing Goose on Windows systems, addressing platform-specific challenges and best practices.
What is Goose?
Before diving into installation, let's understand what makes Goose special. Goose is an AI-powered development assistant that operates locally in your environment, integrating seamlessly with your existing tools. Unlike traditional AI coding assistants that only suggest code, Goose can:
- Execute commands in your terminal
- Read and modify files in your project
- Install dependencies and run tests
- Interact with APIs and databases
- Work with any LLM provider you choose
The tool is available in two forms: a desktop application with a graphical interface and a command-line interface (CLI) for terminal enthusiasts.
Windows Installation Options
Goose offers multiple installation paths on Windows, each suited to different workflows and preferences. Let's explore both options.
A. Option 1: Goose Desktop (Recommended for Beginners)
The desktop application provides the easiest entry point, especially if you prefer a visual interface or are new to command-line tools.
Installation Steps:
- Navigate to the official Goose installation page
- Download the Windows ZIP file for Goose Desktop
- Extract the ZIP file to a location of your choice (e.g.,
C:\Program Files\Goose or your user directory
) - Run the executable file to launch the application
- Keep the executable accessible—consider creating a desktop shortcut or pinning it to your taskbar
A walkthrough
- This is what the extracted file will look like. Click on the file with the
Goose
icon from the folder. - Create a shortcut for easier access:
- Right-click on the
Goose
file. - Select "Send to" → "Desktop (create shortcut)"
- Now you can launch Goose from your desktop.
- Right-click on the
First Launch
When you first open Goose Desktop, you'll be greeted with a provider configuration screen. This is where you'll select your LLM provider and enter your API key. The interface is intuitive:
- Use the provider dropdown to select your preferred service (OpenAI, Google Gemini, Anthropic Claude, etc.)
- Authorize your AI agent.
- Authorize your created API key when prompted
- Click Submit to complete the setup
- Boom! Your Goose Desktop is launched.
The desktop interface features a clean chat-style interface where you can type instructions, upload files, do all sort of things and Goose will execute tasks immediately.
B. Option 2: Goose CLI (For Power Users)
The CLI version integrates directly with your terminal workflow, making it ideal for developers who live in the command line. Windows users have three approaches for running the Goose CLI.
Method 1: Native Windows Installation
This method installs Goose natively on Windows, providing the best performance and integration.
Prerequisites:
You'll need one of these environments:
- Git Bash (recommended): Comes bundled with Git for Windows
- MSYS2: A Unix-like environment for Windows
- PowerShell: Built into Windows 10/11
The installation script requires curl
and unzip
to be available. Git Bash includes these by default, making it the simplest choice for most users.
Installation:
Open Git Bash, MSYS2, or PowerShell and run:
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
To install without interactive configuration, disable CONFIGURE
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | CONFIGURE=false bash
Once the installation was successful. Now you need to add the binary to your PATH. Since you're using Git Bash on Windows, add this line to your ~/.bashrc
:
export PATH="/c/Users/user/.local/bin:$PATH"
Here's how to do it:
# Add to .bashrc
echo 'export PATH="/c/Users/user/.local/bin:$PATH"' >> ~/.bashrc
# Reload your shell
source ~/.bashrc
# Verify goose is now available
goose --version
After reloading, run the configuration:
goose configure
Configuring Your LLM Provider
Goose works with multiple LLM providers, giving you flexibility in terms of cost, performance, and features. Here's how to set up your provider on Windows.
Follow the prompts to complete the configuration until you see a successful configuration in your terminal.
Start interacting with Goose in your terminal with is command. goose start
You can now:
- Ask questions about the codebase
- Request code changes
- Generate tests
- Review code
- Get explanations
Try some commands like:
- "What can you do?"
- "Explain the structure of this project"
- "Help me understand how the agent system works"
- "Show me the available MCP extensions"
The context bar shows token usage:
○○○○○○○○○○ 0% (0/400000 tokens)
Tips:
- Press Enter to send your message
- Press Ctrl-J for a new line (multi-line input)
- Type your instructions or questions at the ( O)> prompt
Critical Windows-Specific Note
When prompted during configuration, choose NOT to store credentials in the keyring. Windows keyring integration can be problematic with Goose. Instead, you'll set your API keys as environment variables.
Method 2: Windows Subsystem for Linux (WSL)
While the native installation is recommended, WSL provides a full Linux environment that some developers prefer.
Installation Steps
- Open PowerShell as Administrator
- Install WSL with the default Ubuntu distribution:
wsl --install
- Restart your computer if prompted
- Launch Ubuntu:
wsl -d Ubuntu
- Install Goose in the Linux environment:
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
If you encounter extraction errors, install bzip2:
sudo apt update && sudo apt install bzip2 -y
WSL Considerations
- File system performance can be slower when working with files in Windows directories (accessed via
/mnt/c/
) - Use WSL's native file system (
~/
in Ubuntu) for better performance - You'll need to launch WSL each time you want to use Goose
- Windows and WSL maintain separate environments, which can complicate some workflows
Windows-Specific API Key Setup
On Windows (especially with native installation), keyring storage can be unreliable. The best practice is to use environment variables.
Setting Environment Variables:
export OPENAI_API_KEY=your_actual_api_key_here
To make this permanent, add it to your bash configuration:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
echo 'export OPENAI_API_KEY=your_actual_api_key_here' >> ~/.bashrc
source ~/.bashrc
For PowerShell (session-only)
$env:OPENAI_API_KEY="your_actual_api_key_here"
For PowerShell (permanent)
[System.Environment]::SetEnvironmentVariable('OPENAI_API_KEY', 'your_actual_api_key_here', 'User')
After setting the environment variable, run goose configure
again. Goose will detect the existing environment variable and display:
● OPENAI_API_KEY is set via environment variable
Choosing an LLM Provider
Goose supports numerous providers, each with different strengths:
Free/Low-Cost Options
- Google Gemini: Offers a generous free tier, excellent for getting started
- Groq: Fast inference with limited free usage
Premium Options
- OpenAI: GPT-4o and o1 models, industry-leading performance
- Anthropic Claude: Strong reasoning and coding capabilities
- Tetrate Agent Router Service: Managed routing with $10 in free credits for new users
Consider your needs:
- Starting out? Use Google Gemini's free tier
- Professional development? GPT-4o or Claude Sonnet provide excellent results
- Budget-conscious? Monitor your usage and set up billing alerts
Rate Limits and API Management
Most providers implement rate limits on API usage. This is especially important to understand when using Goose, as complex tasks may generate multiple API calls in quick succession.
Best Practices:
- Start with smaller, focused tasks to understand usage patterns
- Monitor your API usage through your provider's dashboard
- Set up billing alerts to avoid unexpected charges
- Consider using cheaper models for routine tasks and premium models for complex work
- Use Goose's multi-model configuration to optimize cost and performance
Running Your First Goose Session
As I mentioned above, I will make Desktop, CLI, and general explanation in this section.
With configuration complete, you're ready to start using Goose. The experience differs slightly between Desktop and CLI.
Desktop Usage
Launch the Goose Desktop application. After the initial provider setup, you'll see a chat interface. Simply type your request in the input field:
Example Tasks:
- "Create a Python script that fetches weather data from an API"
- "Review the code in src/main.py and suggest improvements"
- "Set up a new React project with TypeScript"
- "Debug the error in my test suite" Goose will process your request, execute necessary commands, and provide results directly in the interface.
CLI Usage
Navigate to your project directory in your terminal (Git Bash, MSYS2, or PowerShell) and start a session:
cd /c/Users/YourName/projects/my-project
goose session
You'll enter an interactive session where you can converse with Goose. The AI agent has full context of your current directory and can execute commands, read files, and make modifications.
Example Interaction:
You: Create a new FastAPI project with basic CRUD endpoints for a todo app
Goose: I'll help you set up a FastAPI project with CRUD endpoints. Let me start by creating the project structure...
[Goose creates files, installs dependencies, and sets up the project]
Goose: I've created a complete FastAPI project with:
- Project structure with proper organization
- CRUD endpoints for todos (GET, POST, PUT, DELETE)
- Pydantic models for validation
- In-memory storage (ready to connect to a database)
- requirements.txt with FastAPI and Uvicorn
You can run the server with: uvicorn main:app --reload
To exit a session, press Ctrl+C
.
Windows-Specific Optimizations and Best Practices
Path and Directory Considerations
Windows uses backslashes (\)
for paths, while Unix-like systems use forward slashes (/)
. When using Git Bash or MSYS2, you'll typically use Unix-style paths:
# Windows path
C:\Users\YourName\projects\app
# Git Bash/MSYS2 equivalent
/c/Users/YourName/projects/app
# PowerShell (use Windows paths)
C:\Users\YourName\projects\app
Goose handles path conversions automatically in most cases, but being aware of this helps troubleshoot issues.
Permission Issues
Windows security can sometimes interfere with Goose's file operations. If you encounter permission errors:
- Run as Administrator: Right-click your terminal and select "Run as Administrator"
- Check folder permissions: Ensure your user account has full control over the project directory
- Antivirus software: Some antivirus programs flag script execution; you may need to add exclusions
The ~/.config
directory is particularly important. Goose stores configuration and logs here. If the Desktop app doesn't launch or shows no window, verify this directory has read and write permissions.
Performance Tips
- Use SSD storage: Place your projects on an SSD for faster file operations
- Disable real-time scanning: Configure antivirus to exclude your development directories
- Git Bash vs PowerShell: Git Bash generally provides better compatibility with Unix-oriented tools
- Resource allocation: Goose uses LLM APIs that may take seconds to respond; be patient with complex requests
Firewall and Network Configuration
Goose makes HTTPS requests to LLM provider APIs. Ensure:
- Windows Firewall allows outbound HTTPS connections
- Corporate proxy settings are configured if necessary
- VPN software doesn't block API access
For corporate environments, you may need to configure proxy
settings in your environment variables:
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
Working with Extensions
Goose's extensibility is one of its most powerful features. Extensions add new capabilities, from browser automation to specialized development tools.
Managing Extensions
CLI
goose configure
# Select "Configure Extensions"
Desktop
- Click the menu button (top-left)
- Open Settings
- Navigate to Extensions
- Add, configure, or toggle extensions
Useful Extensions for Windows Developers
- Computer Controller: Enables browser automation and UI interaction (useful for testing web apps)
- Developer Tools: Enhanced code analysis and refactoring
- Database Extensions: Direct database queries and management
Extensions are stored in the shared configuration file at ~/.config/goose/config.yaml
, so they work across both Desktop and CLI interfaces.
Troubleshooting Common Windows Issues
Issue: Command Not Found After Installation
Problem: After installing, typing goose returns "command not found"
Solution:
- Ensure
~/.local/bin
is in your PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
- Restart your terminal
- Verify installation:
which goose
goose --version
Issue: API Key Not Persisting
Problem: Goose keeps asking for your API key each session
Solution:
This typically happens when keyring storage fails. Use environment variables instead (see the configuration section above). Make sure to add the export command to your ~/.bashrc
file for permanence.
Issue: Slow Performance or Timeouts
Problem: Goose takes a very long time to respond or times out
Solution:
- Check your internet connection and API provider status
- Some models are slower than others; try a faster model (e.g., GPT-4o-mini instead of GPT-4o)
- Check if you've hit rate limits with your provider
- Increase timeout settings in extensions if applicable
Issue: Desktop App Won't Launch
Problem: Goose Desktop executable runs but no window appears
Solution:
- Check
~/.config directory
permissions - Look for logs in
~/.config/goose/logs/
- Try running from a terminal to see error messages
- Ensure antivirus isn't blocking the application
Issue: WSL File Access Errors
Problem: Goose can't access files in Windows directories
Solution:
- Use the
/mnt/c/
path to access Windows drives from WSL - Copy projects to WSL's native file system for better performance
- Ensure proper line ending configuration (Git's
core.autocrlf
setting)
Updating Goose
Keep Goose up to date to benefit from bug fixes and new features.
CLI Update
goose update
Desktop Update
Download the latest version from the releases page and replace your existing installation. The update process is straightforward since all configuration is stored separately in ~/.config/goose/
.
Best Practices for Windows Users
Development Workflow Integration
- Use Git Bash: For the most seamless experience with Unix-oriented development tools
- Organize projects: Keep projects in a dedicated directory with short paths (e.g.,
C:\dev\projects\
) - Version control: Always use Git to track changes Goose makes to your code
- Review AI changes: Don't blindly accept all suggestions; understand what Goose is doing
- Start small: Begin with simple tasks to build confidence before tackling complex projects
Security and Privacy
- API key protection: Never commit API keys to version control
- Sensitive data: Be cautious when working with projects containing credentials or private information
- Code review: Always review code Goose generates, especially for security-critical applications
- Local execution: Goose runs locally, but it sends code context to LLM APIs; understand your provider's data policies
Cost Management
- Use appropriate models: Don't use GPT-4o for simple tasks when GPT-4o-mini will suffice
- Break down large tasks: Instead of one massive request, split work into smaller, focused tasks
- Monitor usage: Regularly check your API usage dashboard
- Set budgets: Configure spending limits with your LLM provider
Advanced Configuration
Shared Configuration
Both Desktop and CLI share configuration stored at ~/.config/goose/config.yaml
. You can manually edit this file for advanced customization:
providers:
openai:
model: gpt-4o
api_key_env: OPENAI_API_KEY
extensions:
computer_controller:
enabled: true
timeout: 300
Multiple Providers
Goose supports multi-model configuration, letting you use different models for different tasks:
goose configure
# Add multiple providers with different models
# Switch between them as needed for your workflow
Conclusion
Goose on Windows has evolved into a robust, production-ready tool for developers. While there are Windows-specific considerations—particularly around paths, permissions, and environment configuration—the installation and setup process is straightforward. By following the best practices outlined in this guide, you'll be well-equipped to leverage Goose's powerful AI-assisted development capabilities.
Whether you choose the Desktop application for its intuitive interface or the CLI for terminal integration, Goose can dramatically accelerate your development workflow. Start with simple tasks, familiarize yourself with how Goose operates, and gradually incorporate it into more complex aspects of your work.
The key to success with Goose is understanding it as a collaborative tool rather than a replacement for your expertise. Use it to handle repetitive tasks, explore unfamiliar technologies, and prototype quickly—but always apply your judgment and review the results.
Additional Resources
- Official Documentation
- GitHub Repository
- Community Discord
- Provider Documentation: Consult your LLM provider's docs for API specifics
- Follow me on my favorite space
Happy coding with Goose!
Top comments (0)