{
  "title": "Typing indicators",
  "content": "Typing indicators are sent to the chat channel while a run is active. Use\n`agents.defaults.typingMode` to control **when** typing starts and `typingIntervalSeconds`\nto control **how often** it refreshes.\n\nWhen `agents.defaults.typingMode` is **unset**, OpenClaw keeps the legacy behavior:\n\n* **Direct chats**: typing starts immediately once the model loop begins.\n* **Group chats with a mention**: typing starts immediately.\n* **Group chats without a mention**: typing starts only when message text begins streaming.\n* **Heartbeat runs**: typing is disabled.\n\nSet `agents.defaults.typingMode` to one of:\n\n* `never` — no typing indicator, ever.\n* `instant` — start typing **as soon as the model loop begins**, even if the run\n  later returns only the silent reply token.\n* `thinking` — start typing on the **first reasoning delta** (requires\n  `reasoningLevel: \"stream\"` for the run).\n* `message` — start typing on the **first non-silent text delta** (ignores\n  the `NO_REPLY` silent token).\n\nOrder of “how early it fires”:\n`never` → `message` → `thinking` → `instant`\n\nYou can override mode or cadence per session:\n\n* `message` mode won’t show typing for silent-only replies (e.g. the `NO_REPLY`\n  token used to suppress output).\n* `thinking` only fires if the run streams reasoning (`reasoningLevel: \"stream\"`).\n  If the model doesn’t emit reasoning deltas, typing won’t start.\n* Heartbeats never show typing, regardless of mode.\n* `typingIntervalSeconds` controls the **refresh cadence**, not the start time.\n  The default is 6 seconds.",
  "code_samples": [
    {
      "code": "You can override mode or cadence per session:",
      "language": "unknown"
    }
  ],
  "headings": [
    {
      "level": "h2",
      "text": "Defaults",
      "id": "defaults"
    },
    {
      "level": "h2",
      "text": "Modes",
      "id": "modes"
    },
    {
      "level": "h2",
      "text": "Configuration",
      "id": "configuration"
    },
    {
      "level": "h2",
      "text": "Notes",
      "id": "notes"
    }
  ],
  "url": "llms-txt#typing-indicators",
  "links": []
}