How I Fixed the "No Provider Configured" Error in Goose CLI on macOS: A Complete Troubleshooting Guide

A step-by-step breakdown of the installation issues I encountered while setting up Goose CLI with Tetrate Agent Router, and how I resolved them.
Introduction
I had been hearing about Goose CLI, Block's open-source AI coding assistant and decided to give it a try. It seemed straightforward enough: install the CLI, connect it to an LLM provider, and start prompting.
What I expected to be a quick 5-minute setup turned into a troubleshooting session involving PATH issues, provider configuration failures, and a config file that refused to save properly.
This post documents every error I encountered and the exact steps I took to resolve them, hopefully saving you hours of debugging.
What is Goose CLI?
Goose is an open-source CLI tool developed by Block that acts as an AI-powered coding assistant. Unlike standalone AI chatbots, Goose requires an external LLM provider (like OpenAI, Anthropic, or Tetrate Agent Router) to function. It essentially acts as a messenger between you and the AI model.
Step 1: Installing Goose CLI on macOS
The Installation Command
I followed the official documentation and ran the installation script:
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
The script downloaded and installed Goose successfully, but ended with this warning:
goose installed, but /Users/yourusername/.local/bin is not in your PATH.
Understanding the PATH Error
What does this mean?
When you type a command in Terminal, macOS searches through a list of directories (called PATH) to find the executable. The warning meant that Goose was installed in ~/.local/bin, but that directory was not in my PATH, so my Mac couldn't find the goose command.
The Fix
I needed to add the installation directory to my PATH by modifying my shell configuration file:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
Then reload the configuration:
source ~/.zshrc
Verification
goose --version
Output:
goose version 1.21.2
✅ Goose was now recognised by my system.
Step 2: Configuring the LLM Provider
Why a Provider is Required
Goose doesn't have its own AI capabilities; it needs to connect to an LLM provider. I chose Tetrate Agent Router because:
One-click OAuth authentication (no manual API key generation)
$10 free credits with no credit card required
Access to multiple models (GPT-4o, Claude, etc.)
Running the Configuration
goose configure
I was presented with this menu:
◆ What would you like to configure?
│ ● Configure Providers (Change provider or update credentials)
│ ○ Custom Providers
│ ○ Add Extension
│ ○ Toggle Extensions
│ ○ Remove Extension
│ ○ goose settings
└
I selected "Configure Providers" and then "Tetrate Agent Router Service".
Step 3: The First Error: "Usage data error"
What Happened
After entering my Tetrate API key (which I obtained from router.tetrate.ai), the configuration process ended with:
◇ Model fetch complete
│
└ Usage data error: Missing data field in JSON response
What This Error Means
The API key worked (it successfully fetched available models), but an error occurred when Goose attempted to retrieve my credit balance from Tetrate's API. The response didn't match the expected JSON structure.
My Mistake
When prompted "Would you like to update this value?", I selected No because the option appeared auto-selected and I assumed Tetrate was already configured.
This was wrong. The configuration hadn't actually saved.
Step 4: The Critical Error: "No provider configured"
Attempting to Start a Session
I ran:
goose session
And got this crash:
thread 'main' panicked at /Users/runner/work/goose/goose/crates/goose-cli/src/session/builder.rs:394:10:
No provider configured. Run 'goose configure' first
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Breaking Down the Error
| Term | Meaning |
thread 'main' panicked | The program crashed unexpectedly |
builder.rs:394:10 | The crash occurred at line 394 of the session builder code |
No provider configured | Goose looked for provider settings and found nothing |
Investigating the Config File
I checked what was actually saved:
cat ~/.config/goose/config.yaml
Output:
GOOSE_TELEMETRY_ENABLED: false
The problem was clear: Only the telemetry setting existed. No provider configuration was saved.
Step 5: Failed Attempts to Fix via goose configure
I ran goose configure again, selected Tetrate, entered my API key, but kept getting:
└ Usage data error: Missing data field in JSON response
Each time the config file remained unchanged, the provider settings weren't being written to disk.
Step 6: The Solution: Manual Configuration
Since the interactive configuration wasn't saving properly, I bypassed it entirely by manually editing the config file.
Attempt 1: Using nano (Text Editor)
nano ~/.config/goose/config.yaml
This opened a terminal-based text editor. However, I accidentally opened it in file browser mode and had trouble saving the changes.
Attempt 2: Direct Write with echo (What Actually Worked)
I used the echo command to write the configuration directly:
echo 'GOOSE_TELEMETRY_ENABLED: true
GOOSE_PROVIDER: tetrate
GOOSE_MODEL: gpt-4o' > ~/.config/goose/config.yaml
What this command does:
echo '...'Outputs the text between the quotes>Redirects the output to a file (overwrites existing content)~/.config/goose/config.yamlThe target configuration file
Verifying the Fix
cat ~/.config/goose/config.yaml
Output:
GOOSE_TELEMETRY_ENABLED: true
GOOSE_PROVIDER: tetrate
GOOSE_MODEL: gpt-4o
✅ All three required settings were now present.
Step 7: Success!
Now, run Goose to confirm everything works:
goose session
Output:
starting session | provider: tetrate model: gpt-4o
session id: 20260129_5
working directory: /Users/ifeoma
goose is running! Enter your instructions, or try asking what goose can do.
Context: ○○○○○○○○ 0% (0/128000 tokens)
( 0)>
🎉 Goose was finally running!
Summary of Issues and Solutions
| Issue | Cause | Solution |
goose command not found | Installation directory not in PATH | Added ~/.local/bin to PATH in ~/.zshrc |
| "Usage data error" during config | API response format mismatch (likely a bug) | Bypassed by manually writing the config |
| "No provider configured" panic | Config file missing provider settings | Manually wrote GOOSE_PROVIDER and GOOSE_MODEL to config |
Key Takeaways
PATH issues are common - When installing CLI tools, always check if you need to update your PATH.
Verify your config files - Don't assume configurations saved successfully. Always check with
cator similar commands.Manual configuration is a valid fallback - When interactive tools fail, editing config files directly often works.
Error messages tell a story - The "panic" error pointed directly to the missing provider configuration, which led me to inspect the config file.
The Config File Structure for Goose CLI
For future reference, here is the minimum required configuration for Goose with Tetrate:
# ~/.config/goose/config.yaml
GOOSE_TELEMETRY_ENABLED: true # or false
GOOSE_PROVIDER: tetrate
GOOSE_MODEL: gpt-4o # or another supported model
Other provider examples:
# For OpenAI
GOOSE_PROVIDER: openai
GOOSE_MODEL: gpt-4
# For Anthropic
GOOSE_PROVIDER: anthropic
GOOSE_MODEL: claude-sonnet-4
Useful Commands Reference
# Check Goose version
goose --version
# Configure Goose interactively
goose configure
# View current config
cat ~/.config/goose/config.yaml
# Start a Goose session
goose session
# Update Goose
goose update
Conclusion
What should have been a straightforward installation became a debugging exercise, but that's often how we learn the most. The "Usage data error" appears to be a bug in how Goose handles Tetrate's API response, but the workaround of manually writing the config file is simple and reliable.
If you're facing similar issues, I hope this guide saves you time. Now, onto using Goose CLI 🪿
Have you encountered similar issues with the Goose CLI? Drop a comment below or connect with me on [LinkedIn].
Tags: Goose CLI, Tetrate, AI Tools, macOS, Troubleshooting, Developer Tools, CLI Configuration



