Logs and diagnostics
The /logs page (System health in the app) merges container and host-side service logs into one stream, with a health bar above them, and lets you package that detail for a bug report.
Already know what is wrong? Go to Troubleshooting first. Come here for raw logs or a bundle to attach.
Check the system-health bar
Section titled “Check the system-health bar”- Open
/logs. The status bar shows an overall status (healthyordegraded) plus a colored dot and label forvm,containers,ide_bridge, andmcp_os. - Click the overall status to expand a details row: each container’s name and status, plus the IDEs Speedwave detected with their ports.
- If Speedwave found an IDE you have not selected yet, the
ide_bridgecell shows a connect → link into Integrations. See IDE Bridge for what the bridge does. - Click refresh to force an update between the automatic 5-second ticks.
Read the log stream
Section titled “Read the log stream”- Below the bar, the log view live-tails a merged stream, the last 500 lines by default. It re-fetches every 5 seconds and sticks to the bottom while scrolled.
- Use the level chips (
all,debug,info,warn,error) to narrow what you see. - Use the source dropdown to isolate one source, each listed with its line count.
- Hover a timestamp to see its raw value; the displayed time is your local timezone.
Speedwave logs at trace level, with no toggle, so a diagnostics export always carries the fullest context and you never need to reproduce a problem at higher verbosity first. A few noisy third-party libraries are capped at warn to keep the stream readable.
On desktop, these logs also live on disk: ~/Library/Logs/pl.speedwave.desktop on macOS, %LOCALAPPDATA%/pl.speedwave.desktop/logs on Windows. Files rotate at 50 MB, keeping the last 10 segments.
HTTP debug logs get condensed
Section titled “HTTP debug logs get condensed”Set ANTHROPIC_LOG=debug to see raw Claude Code SDK traffic, and Speedwave collapses each verbose request or response into a one or two line summary tagged with a [log_ID], instead of dumping the raw multi-line output:
-> POST /v1/messages (model=claude-opus-4, max_tokens=4096, stream=true, messages=12) [a1b2c3]<- 200 /v1/messages (content-type=text/event-stream, from api.anthropic.com, in 842ms) [a1b2c3]The SDK emits each response in three fragments; Speedwave merges them into that one line. Anything it doesn’t recognize still passes through untouched.
Export a diagnostics bundle
Section titled “Export a diagnostics bundle”The export diagnostics button packages app logs, container logs, and system info into a sanitized ZIP, no tokens or secrets included. It is disabled during an export and when no project is open.
- On
/logs, click export diagnostics. The label changes to “exporting…” while Speedwave builds the archive. - On success, a modal titled Diagnostics archive saved shows the ZIP’s path.
- Click copy path to copy it, then close.
- Share the bundle yourself, with support or attached to your bug report. Nothing uploads automatically.
The ZIP lands in your Downloads directory (falling back to your home directory), named speedwave-diagnostics-<unix-timestamp>.zip.
What the bundle contains
Section titled “What the bundle contains”Directoryspeedwave-diagnostics-<timestamp>.zip
Directorylogs/
- *.log app log files
Directorycontainers/
- compose.log container and compose logs
- compose.yml the project compose file
Directorymcp-os/
- mcp-os.log if present
Directoryclaude/
- claude-session.log if present
Directorylima/
- serial.log Lima serial log, macOS only
- system-info.txt OS, arch, app version,
claude_pinned(pinned Claude Code version)
The single-file sources (mcp-os log, Claude session log, Lima serial.log macOS only) appear only when they exist.
Speedwave’s log sanitizer rewrites anything sensitive as ***REDACTED*** before writing the ZIP:
| Category | Examples |
|---|---|
| API keys | Anthropic (sk-ant-...), Google (AIza...), generic sk-* |
| Git hosting tokens | GitHub (ghp_, ghs_, gho_, ghu_, github_pat_), GitLab (glpat-), Atlassian Cloud |
| Chat tokens | Slack (xoxb, xoxp, xoxa, xoxr, xoxs, xoxe) |
| Auth data | Authorization/Bearer headers, Set-Cookie/Cookie, JWTs, URL userinfo credentials |
| Other | PEM private keys, home-directory usernames, password/secret/api_key/token params, X-Redmine-API-Key, OTEL exporter headers |
A crash payload the sanitizer can’t parse as text collapses to unknown panic payload rather than risk leaking it. The tokens directory is never included in the ZIP. The exception is system-info.txt, written raw with OS, architecture, app version, and the pinned Claude Code version.
For a version mismatch, check claude_pinned in system-info.txt first. Speedwave pins this version itself, so a mismatch usually means your claude container needs a rebuild; see Troubleshooting for the fix.