substrate diagnose runs a suite of health probes across your environment and installation, and substrate logs surfaces warnings and errors written by the long-lived processes. Both are designed to be useful exactly when things are broken.
Health Check
substrate diagnose prints environment and substrate health, and exits non-zero if it finds a problem. Every probe is individually wrapped, so a missing or malformed config.json produces a diagnostic line rather than a crash. It also reports where a live substrate serve is bound, reading .substrate/serve.json, and whether the installed agent skill has drifted from the binary.
Include the full output of
substrate diagnose in any bug report you file.Logs
The long-lived processes —substrate mcp and substrate serve — record warnings and errors to .substrate/logs/substrate.log. This file is gitignored and local-only.
-n is honoured correctly even across a rotation boundary.
Two different empty states carry different meanings:
Filing Feedback
Thesubmit_feedback MCP tool takes a title and body and returns a prefilled GitHub issue URL for 42pe/substrate. Nothing is sent automatically — there is no network call, no credentials are needed, and nothing is stored. A human opens the returned URL and submits the issue.
substrate diagnose
Attach the full output to every bug report. It gives maintainers environment, version, and health information in one snapshot.
substrate logs --errors
Attach error log output when the issue involves MCP tool failures or unexpected server behaviour.