Use this file to discover all available pages before exploring further.
Typing indicators
Typing indicators are sent to the chat channel while a run is active. Use
agents.defaults.typingMode
to control
when typing starts and
to control
how often it refreshes.
Defaults
When
agents.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 starts when the heartbeat run begins if the
resolved heartbeat target is a typing-capable chat and typing is not disabled.
Modes
Set
agents.defaults.typingMode
to one of:
- — no typing indicator, ever.
- — start typing as soon as the model loop begins, even if the run
later returns only the silent reply token.
- — start typing on the first reasoning delta (requires
for the run).
- — start typing on the first non-silent text delta (ignores
the silent token).
Order of “how early it fires”:
→
→
→
Configuration
{
agent: {
typingMode: "thinking",
typingIntervalSeconds: 6,
},
}
You can override mode or cadence per session:
{
session: {
typingMode: "message",
typingIntervalSeconds: 4,
},
}
Notes
- mode won’t show typing for silent-only replies when the whole
payload is the exact silent token (for example / ,
matched case-insensitively).
- only fires if the run streams reasoning ().
If the model doesn’t emit reasoning deltas, typing won’t start.
- Heartbeat typing is a liveness signal for the resolved delivery target. It
starts at heartbeat run start instead of following or
stream timing. Set to disable it.
- Heartbeats do not show typing when , when the target cannot
be resolved, when chat delivery is disabled for the heartbeat, or when the
channel does not support typing.
- controls the refresh cadence, not the start time.
The default is 6 seconds.
Related