Skip to content

Diagnostics Flags

Diagnostics flags let you enable targeted debug logs without turning on verbose logging everywhere. Flags are opt-in and have no effect unless a subsystem checks them.

  • Flags are strings (case-insensitive).
  • You can enable flags in config or via an env override.
  • Wildcards are supported:
    • telegram.* matches telegram.http
    • * enables all flags
{
"diagnostics": {
"flags": ["telegram.http"]
}
}

Multiple flags:

{
"diagnostics": {
"flags": ["telegram.http", "gateway.*"]
}
}

Restart the gateway after changing flags.

Terminal window
CODERCLAW_DIAGNOSTICS=telegram.http,telegram.payload

Disable all flags:

Terminal window
CODERCLAW_DIAGNOSTICS=0

Flags emit logs into the standard diagnostics log file. By default:

/tmp/coderclaw/coderclaw-YYYY-MM-DD.log

If you set logging.file, use that path instead. Logs are JSONL (one JSON object per line). Redaction still applies based on logging.redactSensitive.

Pick the latest log file:

Terminal window
ls -t /tmp/coderclaw/coderclaw-*.log | head -n 1

Filter for Telegram HTTP diagnostics:

Terminal window
rg "telegram http error" /tmp/coderclaw/coderclaw-*.log

Or tail while reproducing:

Terminal window
tail -f /tmp/coderclaw/coderclaw-$(date +%F).log | rg "telegram http error"

For remote gateways, you can also use coderclaw logs --follow (see /cli/logs).

  • If logging.level is set higher than warn, these logs may be suppressed. Default info is fine.
  • Flags are safe to leave enabled; they only affect log volume for the specific subsystem.
  • Use /logging to change log destinations, levels, and redaction.