Typing Indicators
When and how OpenClaw displays 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 `typingIntervalSeconds` to control **how often** it refreshes.
Use `agents.defaults.typingMode` to control **when** typing starts and `typingIntervalSeconds` to control **how often** it refreshes.
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 is disabled.
Modes
Set `agents.defaults.typingMode` to control when typing indicators start:
- `run` β start typing when the **run starts** (default).
- `firstToken` β start typing on the **first streaming token**.
- `message` β start typing on the **first non-silent text delta** (ignores the `NO_REPLY` silent token).
- `message` β start typing on the **first non-silent text delta** (ignores the `NO_REPLY` silent token).
Order of "how early it fires":
''never'' β ''message'' β ''thinking'' β ''instant''
Ignores the `NO_REPLY` silent token).
Order of "how early it fires":
''never'' β ''message'' β ''thinking'' β ''instant''
Configuration
{
agent: {
typingMode: "thinking",
typingIntervalSeconds: 6,
},
}You can override mode or cadence per session:
{
session: {
typingMode: "message",
typingIntervalSeconds: 4,
},
}Notes
Set `typingIntervalSeconds` to control how often typing indicators refresh:
- Default is 6 seconds.
- Minimum is 3 seconds.
- Maximum is 30 seconds.
- `typingIntervalSeconds` controls the **refresh cadence**, not the start time. The default is 6 seconds.
- `typingIntervalSeconds` controls the **refresh cadence**, not the start time. The default is 6 seconds.
Default is 6 seconds.