بنقرة واحدة
agent-sse-interop
Real-time SSE-based communication bus between Hermes and Leo/OpenClaw agents on port 18900
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Real-time SSE-based communication bus between Hermes and Leo/OpenClaw agents on port 18900
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Diagnose and fix Hermes messaging gateway connectivity issues (Telegram/Discord down, stale locks, PM2 problems)
Backup Hermes agent to GitHub and restore on a new VPS. Covers what to include/exclude, GitHub token requirements, and restore steps. Includes automated scripts.
GitHub auth setup: HTTPS tokens, SSH keys, gh CLI login.
Clone, create, fork, configure, and manage GitHub repositories. Manage remotes, secrets, releases, and workflows. Works with gh CLI or falls back to git + GitHub REST API via curl.
Fetch YouTube video transcripts and transform them into structured content (chapters, summaries, threads, blog posts). Use when the user shares a YouTube URL or video link, asks to summarize a video, requests a transcript, or wants to extract and reformat content from any YouTube video.
Manage Linear issues, projects, and teams via the GraphQL API. Create, update, search, and organize issues. Uses API key auth (no OAuth needed). All operations via curl — no dependencies.
| name | agent-sse-interop |
| description | Real-time SSE-based communication bus between Hermes and Leo/OpenClaw agents on port 18900 |
Real-time message bus between Hermes and Leo/OpenClaw using Server-Sent Events (SSE) via a shared HTTP server on port 18900. Enables push-based communication without polling.
┌─────────────────┐ SSEsubscribe ┌──────────────────────┐
│ Hermes Agent │◄───────────────────│ interop-server.py │
│ (SSE client) │ │ ThreadedHTTPServer │
└─────────────────┘ │ Port 18900 │
└──────────┬───────────┘
│ push
┌─────────────────┐ SSEsubscribe ┌──────────▼───────────┐
│ Leo/OpenClaw │◄──────────────────│ │
│ (SSE client) │ │ subscribers dict │
└─────────────────┘ │ queues dict │
└──────────────────────┘
GET /health — health check
GET /status — agents + queues + subscribers status
GET /subscribe?agent=<name> — SSE stream (long-lived connection)
GET /poll?agent=<name> — HTTP poll (returns + clears queue)
POST /broadcast?from=<name> — broadcast to OTHER agent
Without ThreadingMixIn, SSE connections block the entire server:
from socketserver import ThreadingMixIn
class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
daemon_threads = True
allow_reuse_address = True
Each python3 interop-server.py process has its own queues dict. Broadcasts go to one process, SSE clients connect to another — they never meet.
Always kill ALL before restarting:
pkill -9 -f interop-server.py
sleep 2
ss -tlnp | grep 18900 || echo "port free"
When subscriber reconnects, flush pending messages:
q = queue.Queue()
while queues[agent]:
q.put_nowait(queues[agent].pop(0))
subscribers[agent] = q
self.wfile.write(b": keepalive\n\n")
try:
self.wfile.write(data)
except BrokenPipeError:
pass
/home/marco/hermes-commands/interop-server.py/home/marco/hermes-commands/hermes-sse-client.py/tmp/hermes-msg-pipe