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
Verbosity levels
Section titled “Verbosity levels”Default
Section titled “Default”Shows the high-level run flow:
- authentication
- active deletion cutoff, when applicable
- channel processing
- per-channel summaries
- final summary
Event Level
Section titled “Event Level”-v adds message and reaction action events:
Would delete message ...Would delete reaction ...Deleting message ...Deleting reaction ...
Detail Level
Section titled “Detail Level”-vv adds detail lines:
Content: ...Reaction: ...Reactions: ...
Operational Level
Section titled “Operational Level”-vvv adds operational diagnostics:
- fetch summaries
- wait timing between fetch batches
- retry/rate-limit related diagnostics
Dry-run output
Section titled “Dry-run output”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 timeest. execute timeest. total time
The final run summary uses the same two-line structure.
Deletion mode output
Section titled “Deletion mode output”In a real deletion run, each channel ends with:
- a summary line
- a timing line with:
total time- and
execute timewhen buffered mode is enabled
Buffered mode
Section titled “Buffered mode”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.
Meaning of the timing fields
Section titled “Meaning of the timing fields”scan time: how long it took to fetch and evaluate the channel or runest. execute time: rough estimate for how long delete/reaction actions would takeest. total time:scan time + est. execute timeexecute time: measured action time during a real buffered deletion runtotal 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.
JSON mode
Section titled “JSON mode”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
Sensitive value redaction
Section titled “Sensitive value redaction”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-namesis 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.