Typing indicators
Typing indicators are sent to the chat channel while a run is active. Useagents.defaults.typingMode to control when typing starts and
typingIntervalSeconds to control how often it refreshes.
Defaults
Whenagents.defaults.typingMode is unset, OpenClaw
keeps the legacy
behavior:
- Direct chats: typing starts immediately once the model loop begins.
- Group chats with a mention: typing starts immediately.
- Group chats without a mention: typing starts only when message text begins streaming.
- Heartbeat runs: typing is disabled.
Modes
Setagents.defaults.typingMode to one of:
never— no typing indicator, ever.-
instant— start typing as soon as the model loop begins, even if the run later returns only the silent reply token. -
thinking— start typing on the first reasoning delta (requiresreasoningLevel: "stream"for the run). -
message— start typing on the first non-silent text delta (ignores theNO_REPLYsilent token).
never → message →
thinking → instant
Configuration
Notes
-
messagemode won’t show typing for silent-only replies (e.g. theNO_REPLYtoken used to suppress output). -
thinkingonly fires if the run streams reasoning (reasoningLevel: "stream"). If the model doesn’t emit reasoning deltas, typing won’t start. - Heartbeats never show typing, regardless of mode.
-
typingIntervalSecondscontrols the refresh cadence, not the start time. The default is 6 seconds.