Skip to content

Log Output

The CLI does not always show the same kind of output.

What you see depends mainly on:

  • whether you are in --dry-run
  • your verbosity level (-v, -vv, -vvv)
  • whether you enabled --buffer-per-channel
  • whether you enabled --json
  • whether you enabled --redact-sensitive

Shows the high-level run flow:

  • authentication
  • active deletion cutoff, when applicable
  • channel processing
  • per-channel summaries
  • final summary

-v adds message and reaction action events:

  • Would delete message ...
  • Would delete reaction ...
  • Deleting message ...
  • Deleting reaction ...

-vv adds detail lines:

  • Content: ...
  • Reaction: ...
  • Reactions: ...

-vvv adds operational diagnostics:

  • fetch summaries
  • wait timing between fetch batches
  • retry/rate-limit related diagnostics

In --dry-run, the CLI reports what it would do instead of deleting anything.

Each channel ends with:

  • a summary line
  • a timing line with:
    • scan time
    • est. execute time
    • est. total time

The final run summary uses the same two-line structure.

In a real deletion run, each channel ends with:

  • a summary line
  • a timing line with:
    • total time
    • and execute time when buffered mode is enabled

With --buffer-per-channel, the CLI fetches one channel up front before evaluating it.

This is most useful when you want stronger per-channel timing visibility in a manual run.

  • scan time: how long it took to fetch and evaluate the channel or run
  • est. execute time: rough estimate for how long delete/reaction actions would take
  • est. total time: scan time + est. execute time
  • execute time: measured action time during a real buffered deletion run
  • total time: actual wall-clock time for that executed channel

The estimates are rough. They are based on planned delete/reaction actions plus the configured delete sleep timing, not exact future API latency.

Use --json when you want machine-readable output instead of terminal-oriented log lines.

In --json mode:

  • terminal-oriented formatting is disabled
  • each log entry is emitted as a JSON object
  • entries still include timestamp, level, logger, and message

Use --redact-sensitive when you want to share logs without exposing private names, IDs, or local paths. Use --no-redact-names when you want human-readable names to stay visible while IDs and other sensitive values remain redacted.

When redaction is enabled:

  • IDs use the configured prefix/suffix window
  • human-readable sensitive values are fully hidden as *** by default
  • human-readable names remain visible when --no-redact-names is set

Names means Discord display names used to identify targets and accounts: authenticated username, guild names, category names, channel names, and DM / Group DM display names. It does not include message content, local paths, tokens, or emoji names.

This applies to normal CLI logs, JSON logs, and discovery output from dmd list guilds or dmd list channels.