Hermes Atlas
Messaging bridges & gateways

Hermes Lark Streaming

Cheerwhy/hermes-lark-streaming

Hermes Gateway plugin that streams replies into Feishu and Lark interactive cards using CardKit v2.0

In short

Hermes Lark Streaming is a plugin for the Hermes Agent gateway that renders replies as streaming interactive cards in Feishu and Lark, using the CardKit v2.0 API. Thinking, tool calls and the answer appear in order inside one card.

What Hermes Lark Streaming does

The plugin runs in-process with the Hermes Gateway and shows model output with a typewriter effect. It lays out reasoning, tool calls and the answer in arrival order, with tool status, results and error blocks. When a card nears Feishu's 200-element limit it splits into several cards and seals the old ones, and if a card cannot be created the reply falls back to the default Hermes Gateway response. Finished cards can show token usage, elapsed time and context usage in a footer, and the header, footer, text size and width mode are set in config.yaml.

It also handles /stop interrupts by showing an interrupted card and starting a new session, stops updating when a message is deleted or recalled, uploads markdown images and swaps them for Feishu img_key values, and pushes cron results and /background (/btw) task results as cards. Card text is bilingual, Chinese and English, following the Feishu client language. A CLI provides verify, install, uninstall, restore and status commands.

Key features

  • Typewriter-style streaming of replies inside a single Feishu or Lark card
  • Thinking and tool-call panels with status, results and error blocks
  • Final card with token usage, elapsed time and context usage
  • Configurable header, footer, text size and card width
  • Cron and /background task results delivered as cards
  • Automatic card splitting near Feishu's 200-element limit

When to use it

  • Show live Hermes replies and tool progress to a team on Feishu
  • Receive scheduled cron job results as formatted cards
  • Interrupt a running reply with /stop and see the interrupted state on the card

Who it is for: Hermes Agent operators who use Feishu or Lark as their chat platform.

How it fits with Hermes Agent

A plugin for the Hermes Gateway; it requires Hermes 0.21.1 or newer with the Feishu platform configured.

Requirements: Hermes 0.21.1 or newer with Feishu configured, Python 3.11+, lark-oapi 1.4.0+, PyYAML 6.0+, and Feishu app permissions for CardKit read and write, message send and reply, and image upload.

Note: The install command injects a hook into the Hermes installation, and a restore command recovers the original files from backup.

FAQ

What is Hermes Lark Streaming?

Hermes Lark Streaming is a Hermes Gateway plugin that streams agent replies into Feishu and Lark cards. It uses the CardKit v2.0 streaming API.

Does Hermes Lark Streaming work with Hermes Agent?

Yes, it is built for the Hermes Gateway. The README requires Hermes 0.21.1 or newer with the Feishu platform already configured.

What do I need to run Hermes Lark Streaming?

You need Hermes 0.21.1 or newer, Python 3.11 or newer, the lark-oapi and PyYAML packages, and a Feishu app with CardKit, messaging and image-upload permissions. The full steps are in INSTALL.md.

Similar messaging for Hermes Agent

All messaging

Related guides: How to run Hermes Agent securely · Run multiple Hermes agents with profiles