Hermes Agent Streaming: Live Replies, Timeouts and the New Lifetime Cap

Share this post

Hermes Agent streaming is what makes replies appear word by word instead of all at once, in your terminal and in chat apps like Telegram. It also keeps long requests alive and spots ones that have hung. On 1 November 2026 Nous Research merged a new setting into hermes-agent: agent.stream_max_lifetime, an opt-in cap that stops a stream that keeps sending data but never finishes. Below is how to turn streaming on for each surface, what each timeout does, when to use the new cap, and the hooks that read the stream live. My video is right under this intro.

Key takeaways

  • Terminal: display.streaming: true. Chat apps: streaming.enabled: true (off by default).
  • After you turn it on, Telegram streams by default and Discord stays on whole replies until you switch it.
  • New: agent.stream_max_lifetime caps one streaming reply’s total time. Default 0 = off.
  • Plugins can read the stream live through on_stream_delta and three other hooks.
  • Want AI agents replying to your customers in real time? Claim a free strategy session.

How streaming works in Hermes

There are two separate switches, and people mix them up. From the configuration docs:

  • API streaming (model.streaming, on by default): Hermes asks the provider to send the reply in chunks. This keeps long requests alive and lets Hermes spot a hung connection.
  • Display streaming: whether you see those chunks appear live, in the terminal or in a chat app.

You almost never want to turn API streaming off. The docs keep model.streaming: false as an escape hatch for self-hosted servers whose streaming tool calls are broken, because non-streaming calls lose the hang detection. Hermes also switches a session to non-streaming on its own if a provider says it doesn’t support streaming.

Turn on streaming in the terminal

display:
  streaming: true
  show_reasoning: true

Replies then appear token by token inside a streaming box. show_reasoning also streams the model’s thinking tokens. Tool calls are still captured quietly, and if a provider can’t stream, Hermes falls back to the normal display on its own.

Easier option: ask your agent, “Turn on terminal streaming in my Hermes config and show reasoning.”

Want AI agents answering your customers in real time? Inside the AI Profit Boardroom you get the Agent OS — Hermes, OpenClaw, OpenCode, Claude and Codex in one place — plus step-by-step Hermes training and four live coaching calls a week.

Want a plan for your business first? Claim your free strategy session.

Join the AI Profit Boardroom →Claim Your Free SEO Strategy Session →

Streaming in Telegram, Discord and Slack

streaming:
  enabled: true
  transport: auto
  edit_interval: 0.8
  buffer_threshold: 24
  cursor: " ▉"

With this on, the bot sends a message on the first token and keeps editing it as more text arrives. The details from the docs:

  • The master streaming.enabled switch is off by default.
  • Once it’s on, Telegram streams out of the box and Discord doesn’t until you flip its toggle in the dashboard’s Channels page or in config.yaml.
  • Platforms that can’t edit messages (Signal, Email, Home Assistant) are detected on the first try and streaming is switched off for that session.
  • Past about 4,096 characters, the current message is finished and a new one starts.
  • On Telegram, fresh_final_after_seconds can send a long reply as a brand-new final message so it gets a fresh timestamp.

The messaging docs list streaming support for Telegram, Discord, Slack, WhatsApp, Mattermost, Matrix, DingTalk, Feishu/Lark and Yuanbao.

The stream timeouts, in plain English

Hermes has several timers watching each stream. The configuration docs table:

TimerDefaultWhat it catches
Socket read timeout120 s (1,800 s for local models)No data at all from the provider
Stale stream detection180 s (900 s ceiling for local models)Keep-alive pings but no real content
Stream max lifetime (new)Off (0)A stream that keeps sending but never finishes
Post-terminal drain (Codex/Responses)2 sA relay that never closes after the reply is done

The gap the new setting fills: the stale detector resets every time a chunk arrives, so a gateway trickling data or a runaway generation was never cut, and the turn just sat there.

The new stream_max_lifetime cap

Merged on 1 November (commit). Set it in config.yaml, in seconds:

agent:
  stream_max_lifetime: 900
  • It’s off by default (0), so long reasoning turns behave as before.
  • It counts from the start of each attempt, never resets on new chunks, and restarts for each retry.
  • It never fires before the stale-stream timeout.
  • When it trips, Hermes kills the attempt the same way as a stale kill, then the retry or partial-reply continuation takes over.
  • A cut attempt doesn’t count toward the stale-stream circuit breaker, because the provider was responding.
  • It covers Chat Completions and Anthropic Messages streams. Codex/Responses and Bedrock streams aren’t capped.

A follow-up commit removed the environment variable version, so config.yaml is the only place to set it. Leave it at 0 if your agent legitimately streams for a long time, such as deep reasoning runs.

Want this set up for you instead of doing it yourself? Claim your free strategy session →

Claim Your Free SEO Strategy Session →

Streaming hooks for plugins

Plugins can watch the stream live without slowing it down. The hooks docs list four observer hooks: on_stream_start, on_stream_delta, on_stream_end and on_interim_message.

def on_delta(delta, kind, model, provider, **kwargs):
    if kind == "text":
        print(delta, end="", flush=True)

def register(ctx):
    ctx.register_hook("on_stream_delta", on_delta)

Each callback gets its own queue and worker, so one slow plugin can’t hold up the reply. Use them for live dashboards, telemetry or text-to-speech. Reasoning tokens stay hidden from plugins unless you set plugins.stream_reasoning_deltas: true. More on hooks in my Hermes Agent hooks guide.

My verdict

Turn on gateway streaming if your customers talk to your agent in Telegram, keep API streaming on, and set stream_max_lifetime only if you’ve seen a reply hang while still sending data. Those three settings cover almost everything you need from Hermes Agent streaming.

About Julian Goldie

I’m Julian Goldie — founder of Goldie Agency and the AI Profit Boardroom. I test new AI agents almost every day for 432K+ YouTube subscribers and run Hermes, OpenClaw, OpenCode, Claude and Codex side by side in my own Agent OS. Claim your free strategy session or join the AI Profit Boardroom.

Want another angle? Read the AI Profit Boardroom guide to Hermes Agent Streaming.

FAQ: hermes agent streaming

How do I turn on streaming in Hermes Agent?

For the terminal, set display.streaming: true in config.yaml. For Telegram, Discord and Slack, set streaming.enabled: true, which is off by default.

Why doesn’t my Hermes Discord bot stream replies?

After you enable streaming, Telegram streams by default but Discord does not. Turn on the Discord toggle in the dashboard Channels page or set its per-platform streaming option in config.yaml.

What is stream_max_lifetime in Hermes?

An opt-in cap, merged on 1 November 2026, on the total time of one streaming reply. It never resets when chunks arrive, so it stops a stream that keeps sending data but never finishes. The default 0 means off.

Should I turn off API streaming?

Usually no. model.streaming: false is an escape hatch for self-hosted servers with broken streaming tool calls, and non-streaming calls lose Hermes’s hang detection.

What is the stale stream timeout?

It kills a connection that gets keep-alive pings but no real content for 180 seconds by default, raised to a 900-second ceiling for local models.

Can plugins read the stream as it happens?

Yes. on_stream_start, on_stream_delta, on_stream_end and on_interim_message are observer hooks that get the stream through their own queues, so they never slow the reply.

Ready to put Hermes to work in your business? Join the AI Profit Boardroom for the Agent OS, setup training and daily updates.

Or claim your free strategy session and we’ll map out your setup.

Starting from zero? Get the free AI course and community.

Join the AI Profit Boardroom →Claim Your Free SEO Strategy Session →Get the FREE AI Course + Community →

Related reading

Last updated November 2026. This page is a living guide to hermes agent streaming — the facts here move fast and it is updated as they do.

Done-for-you AI SEO

Rank #1 with AI SEO and get more leads, traffic and sales

Done-for-you SEO packages: backlinks, AI-powered articles and an account manager every month. Save 30% with code BLACKFRIDAY (ends Dec 1). No setup fees.

See SEO packages →or book a free strategy session

Table of contents

Related Articles

Grok Bot Linux guide: install the .deb, .rpm or AppImage on x64 or Arm64, update with apt or dnf, hold versions, and the Linux limits you should know.
Grok Bot Windows guide: install the Setup .exe on x64 or Arm64, sign in, control local access, security keys, updates, shortcuts and silent installs.
Grok Bot iOS guide: iOS 18+ setup from the App Store, iPad support, Siri shortcuts, the Action Button, Live Activities, phone app access and routines.
Grok Bot Android guide: Android 9+ setup from Google Play, sign-in, messaging your Bots, phone app access, routines, approvals and what stays on desktop.