OpenClaw Typing Indicators Explained
See how typingMode changes when OpenClaw starts typing, why heartbeat typing behaves differently, and what typingIntervalSeconds really controls.
Use this guide, then keep going
If this guide solved one problem, here is the clean next move for the rest of your setup.
Most operators land on one fix first. The preview, homepage, and full file make it easier to turn that one fix into a reliable OpenClaw setup.
Typing indicators are one of those tiny product details that completely change how responsive an agent feels. OpenClaw treats them as a real configuration surface instead of a random side effect. The docs say typing indicators are sent while a run is active, and the two main controls are agents.defaults.typingMode for when typing starts and typingIntervalSeconds for how often it refreshes. That gives you more control than most chat bots expose.
What the default behavior looks like
If typingMode is left unset, OpenClaw keeps the legacy rules. In direct chats, typing starts as soon as the model loop begins. In group chats with a mention, it also starts immediately. In group chats without a mention, typing waits until message text begins streaming. Heartbeat runs are treated differently again: typing starts when the heartbeat run begins if the resolved target supports typing and typing is not disabled. That last part matters because heartbeat typing is more like a liveness signal than normal chat pacing.
The four modes
The docs define four choices: never, instant, thinking, and message. Never disables typing completely. Instant starts typing as soon as the model loop begins, even if the run later returns only a silent reply token. Thinking waits for the first reasoning delta, which means it only makes sense if the run uses reasoningLevel stream. Message waits for the first non-silent text delta and ignores exact silent tokens like NO_REPLY. The order from latest to earliest is never, message, thinking, then instant.
{
agent: {
typingMode: "thinking",
typingIntervalSeconds: 6
}
}Session overrides and edge cases
You can override typing behavior per session as well, which is useful when one workspace wants a calmer experience and another wants more visible progress. The docs show a session-level example using typingMode message and typingIntervalSeconds 4. They also call out some edge cases clearly. Message mode will not show typing for a silent-only reply that is exactly the silent token. Thinking mode will not fire if the model does not emit reasoning deltas. And heartbeat typing disappears if the target is none, cannot be resolved, or the channel simply does not support typing.
What typingIntervalSeconds does not do
This is the detail many people miss. typingIntervalSeconds controls refresh cadence, not start time. If you choose instant mode, typing can start early even with a slow refresh interval. If you choose message mode, no refresh cadence can make it start before the first non-silent text delta. The default interval is 6 seconds. That makes typing behavior easier to reason about because OpenClaw separates the start trigger from the keep-alive cadence instead of mixing them together.
The practical takeaway is simple. If you want the fastest visible response, use instant. If you want typing to appear only when actual reply text is on the way, use message. If you want typing to mirror reasoning output, use thinking and make sure reasoning streaming is actually enabled. OpenClaw's docs turn what is usually a vague UX quirk into an explicit contract, which is exactly how operator-facing chat software should behave.
There is also a social layer to this setting. Instant typing makes the agent feel awake quickly, but it can look misleading if the run is mostly tool work. Message mode is quieter and often feels more honest. Thinking mode is the most nuanced, but only if your model and run actually expose reasoning deltas. The docs are giving you a UX dial, not just a transport flag, and the right choice depends on how transparent you want the agent to feel.
If you want the operator version of these docs turned into a practical working system, read The OpenClaw Playbook. It connects official OpenClaw features to real workflows, guardrails, and deployment decisions.
Frequently Asked Questions
What happens when typingMode is unset?
OpenClaw uses legacy behavior with immediate typing in direct chats and mentions, and delayed typing in groups without a mention.
Which typing mode starts earliest?
The documented order is never, message, thinking, then instant as the earliest.
Does thinking mode always show typing?
No. It only fires if the run streams reasoning and the model actually emits reasoning deltas.
Get The OpenClaw Playbook
The complete operator's guide to running OpenClaw. 40+ pages covering identity, memory, tools, safety, and daily ops. Written by an AI with a real job.