Skip to content
windsurf-debug-bundle logo

windsurf-debug-bundle

Collect Windsurf diagnostic information for troubleshooting and support

SKILL.md

Full skill instructions

Windsurf Debug Bundle

Current State

!windsurf --version 2>/​dev/​null || echo 'Windsurf CLI not in PATH' !node --version 2>/​dev/​null || echo 'N/​A' !uname -a

Overview

Collect all diagnostic information needed to troubleshoot Windsurf issues or submit effective support tickets.

Prerequisites

  • Windsurf installed (even if malfunctioning)
  • Terminal access
  • Permission to read Windsurf config directories

Instructions

Step 1: Collect Windsurf Configuration State

#!/​bin/​bash
set -euo pipefail

BUNDLE="windsurf-debug-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE"/​{config,logs,workspace}

echo "=== Windsurf Debug Bundle ===" > "$BUNDLE/​summary.txt"
echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$BUNDLE/​summary.txt"

# 1. Windsurf version and environment
echo "--- Environment ---" >> "$BUNDLE/​summary.txt"
windsurf --version >> "$BUNDLE/​summary.txt" 2>&1 || echo "windsurf CLI not found" >> "$BUNDLE/​summary.txt"
node --version >> "$BUNDLE/​summary.txt" 2>&1
echo "OS: $(uname -srm)" >> "$BUNDLE/​summary.txt"

# 2. Codeium config (redacted)
echo "--- Codeium Config ---" >> "$BUNDLE/​summary.txt"
ls -la ~/​.codeium/ >> "$BUNDLE/​config/​codeium-dir.txt" 2>&1 || echo "No ~/​.codeium/" >> "$BUNDLE/​config/​codeium-dir.txt"

# 3. MCP server config (redacted)
if [ -f ~/​.codeium/​windsurf/​mcp_config.json ]; then
  sed 's/"[A-Za-z0-9_-]\{20,\}"/"***REDACTED***"/​g' ~/​.codeium/​windsurf/​mcp_config.json > "$BUNDLE/​config/​mcp-config-redacted.json"
fi

# 4. Workspace config
cp .windsurfrules "$BUNDLE/​workspace/" 2>/​dev/​null || true
cp .codeiumignore "$BUNDLE/​workspace/" 2>/​dev/​null || true
ls -la .windsurf/ >> "$BUNDLE/​workspace/​windsurf-dir.txt" 2>/​dev/​null || true
ls -la .windsurf/​rules/ >> "$BUNDLE/​workspace/​rules-dir.txt" 2>/​dev/​null || true

# 5. Extension list
windsurf --list-extensions > "$BUNDLE/​config/​extensions.txt" 2>/​dev/​null || echo "Cannot list extensions" > "$BUNDLE/​config/​extensions.txt"

Step 2: Collect Logs

# Windsurf logs location varies by OS:
# macOS: ~/​Library/​Application Support/​Windsurf/​logs/
# Linux: ~/​.config/​Windsurf/​logs/
# Windows: %APPDATA%/​Windsurf/​logs/

LOG_DIR="${HOME}/​.config/​Windsurf/​logs"
[ -d "$LOG_DIR" ] || LOG_DIR="${HOME}/​Library/​Application Support/​Windsurf/​logs"

if [ -d "$LOG_DIR" ]; then
  # Copy last 1000 lines of each log (redacted)
  for log in "$LOG_DIR"/​*.log; do
    tail -1000 "$log" 2>/​dev/​null | sed 's/​Bearer [^ ]*/​Bearer ***REDACTED***/​g' > "$BUNDLE/​logs/​$(basename "$log")"
  done
fi

# Codeium-specific logs
if [ -d ~/​.codeium/​windsurf/​logs ]; then
  cp ~/​.codeium/​windsurf/​logs/​*.log "$BUNDLE/​logs/" 2>/​dev/​null || true
fi

Step 3: Check Workspace Health

# Workspace analysis
echo "--- Workspace Health ---" >> "$BUNDLE/​summary.txt"
echo "File count: $(find . -type f -not -path '*/​node_modules/​*' -not -path '*/​.git/​*' | wc -l)" >> "$BUNDLE/​summary.txt"
echo "Has .windsurfrules: $([ -f .windsurfrules ] && echo 'YES' || echo 'NO')" >> "$BUNDLE/​summary.txt"
echo "Has .codeiumignore: $([ -f .codeiumignore ] && echo 'YES' || echo 'NO')" >> "$BUNDLE/​summary.txt"
echo "Has .windsurf/​rules/: $([ -d .windsurf/​rules ] && echo 'YES' || echo 'NO')" >> "$BUNDLE/​summary.txt"

# Check for common issues
if [ ! -f .codeiumignore ] && [ -d node_modules ]; then
  echo "WARNING: No .codeiumignore but node_modules exists -- indexing will be slow" >> "$BUNDLE/​summary.txt"
fi

Step 4: Package and Submit

tar -czf "$BUNDLE.tar.gz" "$BUNDLE"
echo "Debug bundle created: $BUNDLE.tar.gz"
echo "Review for sensitive data before submitting to support."

Support Ticket Template

## Windsurf Support Request

**Windsurf Version:** [from debug bundle]
**OS:** [macOS/​Linux/​Windows + version]
**Plan:** [Free/​Pro/​Teams/​Enterprise]

### Issue
[One paragraph description]

### Steps to Reproduce
1. [Step 1]
2. [Step 2]

### Expected vs Actual
- Expected: [behavior]
- Actual: [behavior]

### Attachments
- [ ] Debug bundle (windsurf-debug-*.tar.gz)
- [ ] Screenshot of error (if visual)
- [ ] Relevant .windsurfrules (if context-related)

### Already Tried
- [ ] Restart Cascade
- [ ] Reload Window
- [ ] Reset Indexing
- [ ] Disable conflicting extensions

Error Handling

ItemPurposeIncluded
Windsurf versionCompatibility checkYes
Extension listConflict detectionYes
Workspace configContext issuesYes
Log files (redacted)Error analysisYes
MCP config (redacted)Integration issuesYes

Examples

ALWAYS REDACT

  • API keys and tokens
  • Passwords and secrets
  • Personal file paths (replace with ~/)
  • Customer data

Quick Single-Command Health Check

echo "Windsurf: $(windsurf --version 2>/​dev/​null || echo 'N/​A')" && \
echo "Rules: $([ -f .windsurfrules ] && wc -c < .windsurfrules || echo 'none')" && \
echo "Ignore: $([ -f .codeiumignore ] && wc -l < .codeiumignore || echo 'none')"

Resources

Next Steps

For rate limit issues, see windsurf-rate-limits.