Skip to content

feat: Hermes → Tlon messaging adapter#5577

Draft
wca4a wants to merge 3 commits intodevelopfrom
feat/hermes-tlon-adapter
Draft

feat: Hermes → Tlon messaging adapter#5577
wca4a wants to merge 3 commits intodevelopfrom
feat/hermes-tlon-adapter

Conversation

@wca4a
Copy link
Copy Markdown

@wca4a wca4a commented Mar 12, 2026

What

Adds a Tlon platform adapter for Hermes Agent, letting you talk to a Hermes AI agent through Tlon Messenger — same UX as Telegram/Discord/Signal.

Files

integrations/hermes-tlon-adapter/:

  • tlon.py — the main adapter (~1,200 lines)
  • README.md — setup, config, and usage docs
  • patches/ — diffs to apply to hermes-agent for wiring
  • requirements.txt — aiohttp

How it works

  1. Auth via POST /~/login with +code
  2. SSE subscriptions to channels (/v2) and DMs (/v3)
  3. Mention detection in groups, all DMs from allowlisted ships
  4. Routes to Hermes session store → AI agent
  5. Sends responses back via pokes
  6. Auto-reconnects with exponential backoff

Based on patterns from openclaw-tlon.

Status

Draft — needs live ship testing.

william arzt and others added 3 commits March 12, 2026 08:51
Adds a Tlon platform adapter for Hermes Agent, enabling Hermes to
communicate through Tlon Messenger (Urbit) the same way it works
with Telegram, Discord, etc.

Files:
- tlon.py — the main adapter (~1,200 lines)
- README.md — setup and usage docs
- patches/ — diffs to apply to hermes-agent for integration points
- requirements.txt — aiohttp dependency

Based on patterns from openclaw-tlon. Needs live ship testing.
- Fix ship mentions in story content to include ~ prefix (was causing
  DM cast fails in Hoon parser)
- Fix channel post structure: flat essay fields in add (no essay wrapper)
- Fix channel post author to include ~ prefix
- Add thread reply support for both DMs and channels
- Add one-shot poke with SSE ack reading for debugging silent nacks
- Override handle_message to bypass base adapter echo/replay loops
- Add send-level dedup and asyncio.Lock for thread-safe processing
- Fix channel thread inbound detection (r-post.reply path)
- Fix @da timestamp conversion to match @urbit/aura
- Remove event broadcast to prevent cross-handler echo

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant