Skip to main content
goose provides built-in diagnostic tools to help you troubleshoot issues, gather system information, and report bugs effectively. This guide covers how to use diagnostics, view logs, and collect information for debugging.

Generating Diagnostic Reports

Diagnostic reports bundle system information, session data, configuration files, and recent logs into a single ZIP file. This is invaluable for debugging issues or getting technical support.

Using the CLI

Generate diagnostics for a specific session using the goose session diagnostics command:
Find your session ID: First, list available sessions to get the session ID:
Example output:

Using goose Desktop

  1. In an active chat session, look for the diagnostics icon in the bottom toolbar
  2. Click the diagnostics button
  3. Review the information about what data will be collected
  4. Click Download to generate and save the bundle
  5. The ZIP file will be saved as diagnostics_{session_id}.zip
The diagnostics button is only available when you have an active session, as it needs a session ID to generate the bundle.

What’s Included in Diagnostics

The diagnostics ZIP file contains several components:

System Information

The system.txt file includes:
  • App Version: goose version number
  • OS: Operating system (macOS, Linux, Windows)
  • OS Version: Specific OS version
  • Architecture: CPU architecture (x86_64, arm64, etc.)
  • Provider: Configured LLM provider
  • Model: Selected model name
  • Enabled Extensions: List of active extensions
  • Timestamp: When the diagnostic was generated

Session Data

The session.json file contains your conversation history, including:
  • User messages
  • Assistant responses
  • Tool calls and results
  • Session metadata

Log Files

Log files are stored in JSONL format (one JSON object per line) and include:
  • Timestamped events
  • Error messages and stack traces
  • Extension activation/deactivation
  • Provider API calls
  • Tool execution details

When to Generate Diagnostics

Include diagnostic data when filing a bug report to help maintainers understand your environment and reproduce the issue.
Generate diagnostics immediately after a crash or error occurs to capture relevant log data.
Diagnostics can help identify slow operations, network timeouts, or resource constraints.
Review your config.yaml and system information to verify settings are correct.

Viewing Logs Manually

Log Locations

goose stores logs in different locations depending on your operating system:

Log Structure

Logs are organized by component and date:

Reading JSONL Logs

Logs use JSONL format for structured data. Each line is a valid JSON object:

Log Retention

goose automatically cleans up old logs:
  • Logs older than 14 days are automatically deleted
  • Only the 10 most recent log files are included in diagnostic bundles
  • This helps manage disk space while retaining recent troubleshooting data

Debugging Common Scenarios

Provider Connection Issues

Check provider configuration:
Review connection logs: Look for provider-specific errors in the LLM logs:

Extension Activation Failures

List enabled extensions:
Common extension issues:
  • Missing package runners (npx, uvx)
  • Network access blocked in corporate environments
  • Malicious package detection blocking installation
  • Incorrect command or arguments in configuration

Session Recovery

List all sessions:
Resume a previous session:
Export session data:

Privacy Considerations

Diagnostic bundles may contain sensitive information:
  • API keys (if stored in config.yaml instead of keyring)
  • Session messages with your code or data
  • File paths revealing your directory structure
  • Custom prompt templates
Before sharing diagnostic data:
  1. Review the contents of the ZIP file
  2. Redact any sensitive information
  3. Consider using environment variables for secrets instead of configuration files
  4. Remove or sanitize session data if needed

Getting Help

If you’re still experiencing issues after reviewing diagnostics:
  1. Check Known Issues: Review the Known Issues page for common problems and solutions
  2. Search Community: Check Discord for similar issues
  3. File a Bug Report: Use the diagnostic data when reporting bugs on GitHub
  4. Ask the Community: Join our Discord community for real-time help