AI / Automation

2026-05-28 Hermes Agent Telegram auf gemietetem Mac mini M4 (HK / JP / KR / SG / US)

Auf demselben Mac mini M4, der bereits iOS-Apps per SSH baut, können Sie Hermes Agent als Telegram-Bot betreiben. Der Gateway-Prozess (hermes gateway) hält Ihren BotFather-Token, erzwingt eine Allowlist numerischer Benutzer-IDs und leitet Chats in die Hermes-Tool-Schleife—CI-Fixes freigeben oder Architekturfragen vom Telefon, ohne ein Laptop dauerhaft laufen zu lassen.

Hinweis: MacXCode betreibt gemietete Apple-Silicon-Cloud-Macs in HK, JP, KR, SG und den USA. Hermes Agent ist ein Drittprojekt (MIT); Telegram und Modell-APIs unterliegen den jeweiligen Anbietern. Dieser Leitfaden ist Betriebsdokumentation, keine Empfehlung für Abonnements.

Für Modal/Daytona Serverless-Terminals und Near-Idle-Compute: Hermes Serverless Modal/Daytona-Leitfaden.

Hermes-Agent-Telegram-Gateway-Setup auf gemietetem Mac-mini-M4-Cloud-Mac

Warum Telegram auf einem Builder-Mac

Telegram passt zu headless Mieten: Das Gateway nutzt standardmäßig ausgehendes Long Polling—Ihr Mac initiiert HTTPS zur Telegram-API, ohne eingehende Ports auf einem geteilten Builder freizugeben (im Gegensatz zum Webhook-Modus mit öffentlichem HTTPS).

Typische Gründe, Hermes auf einem Lease-Host mit Telegram zu verbinden:

  • On-Call-Triage—wenn GitHub Actions oder xcodebuild nachts scheitert, vom Handy antworten, während der Agent Logs auf NVMe liest.
  • Trennung der AufgabenOpenClaw für Repo-Automatisierung, Hermes für persönlichen/Ops-Chat; parallel nur, wenn Sie zwei Gateway-Prozesse (RAM und Token-Isolation) akzeptieren.
  • Migration von OpenClaw-Messaging—hermes claw migrate ist upstream dokumentiert; lesen Sie unsere Matrix Hermes vs OpenClaw vs OpenHuman, bevor zwei Gateways auf einem 16-GB-Host laufen.

Die Mac-mini-Spezifikationen nennen 16–24 GB Unified Memory. Planen Sie etwa 1–2 GB für hermes gateway und den Modell-Working-Set, bevor Sie parallele Xcode-Tests stapeln. Committen Sie den Bot-Token nicht in git.

Wie das Telegram-Gateway zusammenpasst

Hermes trennt CLI-Chat (hermes TUI) von Messaging (hermes gateway). Telegram-Konfiguration landet in ~/.hermes/.env (oder Wizard-Ausgabe), Logs unter ~/.hermes/logs/gateway.log, optional launchd auf macOS.

KomponentePfad / BefehlRolle
Installationcurl -fsSL …/install.sh | bashPython 3.11 + hermes CLI
Modell / Authhermes setupProvider-API-Keys (BYO oder Nous Portal)
Telegram-Konfighermes gateway setupBot Token + + TELEGRAM_ALLOWED_USERS
Vordergrund-Testhermes gatewayLong-Polling-Bot bis Ctrl+C
Diensthermes gateway installhermes gateway startmacOS launchd, Überlebt Logout
Health-Checkshermes doctor, hermes gateway statusConfig- und Prozessprüfungen

Datenfluss (Polling-Modus):

  1. Sie schreiben dem Bot in Telegram.
  2. Das Gateway empfängt Updates über die Telegram-Bot-API (ausgehendes Polling).
  3. Die Hermes-Agent-Schleife führt Tools auf dem konfigurierten Terminal-Backend aus (lokal, Docker oder SSH auf demselben Host).
  4. Antworttext (und optionale MEDIA:/path-Anhänge) geht über das Gateway zurück nach Telegram.

Wichtige Sicherheits-Defaults: Upstream nutzt in TELEGRAM_ALLOWED_USERS numerische Benutzer-IDs, keine @Namen. Wer den Bot-Token hat, kann den Bot impersonieren—wie API-Keys behandeln und bei Leak per BotFather /revoke rotieren.

Offizielle Referenz: Hermes-Telegram-Dokumentation (BotFather, Privatmodus, Webhooks).

BotFather und Zugriffskontrolle

Bot anlegen

  1. @BotFather öffnen → /newbot.
  2. Anzeigenamen setzen (z. B. Builder Hermes) und Benutzernamen mit Endung bot.
  3. Token im Format 123456789:ABCdefGHIjklMNOpqrs… kopieren—in Passwortmanager, nicht in git.

Benutzer-ID auf die Allowlist

Nachricht an @userinfobot für die numerische ID (z. B. 123456789). Mit TELEGRAM_ALLOWED_USERS lehnt Hermes Fremde ab.

Optionale Härtung auf geteilten Leases:

  • nur Einzelbenutzer-Allowlist—keine Wildcard-„Team“-IDs, bis Tool-Umfang klar ist.
  • Bot pro Umgebung (Staging vs. Produktions-Lease)—Staging-Leak darf Produktions-Workspaces nicht treffen.
  • Gruppenzugriff deaktivieren, bis DM-Verhalten verifiziert ist.

Hermes für Telegram konfigurieren

Interaktiv (empfohlen)

hermes setup # bei frischer Installation zuerst Modell-Provider hermes gateway setup # Telegram wählen → Token einfügen → erlaubte Benutzer-IDs

Manuell bearbeiten ~/.hermes/.env

TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ TELEGRAM_ALLOWED_USERS=123456789 # Optionales Team: TELEGRAM_ALLOWED_USERS=111111111,222222222

Dateirechte 600 prüfen und von untrusted Dotfile-Sync ausschließen.

Vordergrund-Smoke-Test:

hermes gateway

hello in Telegram senden; Antwort in Sekunden erwartet. Mit Ctrl+C stoppen vor launchd.

Acht Schritte Headless-Rollout auf Mac mini M4

  1. Hermes installieren — Offizielles install.sh im Lease-Benutzerkonto (nicht root) ausführen.
  2. hermes setup ausführen — Modell-Provider konfigurieren; hermes doctor ohne Fehler.
  3. BotFather-Token erstellen — und numerische Benutzer-ID (Abschnitte oben).
  4. hermes gateway setup ausführen — Telegram wählen; Token + Allowlist in ~/.hermes/.env prüfen.
  5. Vordergrund-Testhermes gateway, Bot anschreiben, harmloses Tool (z. B. pwd); Ctrl+C stoppen.
  6. Dienst installierenhermes gateway install, dann hermes gateway start (macOS-launchd).
  7. Umgebung für Daemons persistieren — API-Keys in ~/.hermes/.env für launchd lesbar (gleicher Benutzer wie Install); bei Fehlern nur im Hintergrund OpenClaw-launchd-PATH-Hinweise prüfen.
  8. Überwachenhermes gateway status, tail -f ~/.hermes/logs/gateway.log, nach Config-Änderungen Telegram /new für kaputte Sessions.

Zitierbare Betriebsregel:Ein Gateway-Prozess kann mehrere Plattformen bedienen (Telegram, Discord, Slack usw.)—kein separater Daemon pro Chat-App nötig.

launchd und SSH-only-Leases

Auf macOS-Leases registriert hermes gateway install einen Benutzer-launchd-Job—ähnlich dem Muster openclaw onboard --install-daemon auf diesem Blog.

hermes gateway install hermes gateway start hermes gateway status tail -f ~/.hermes/logs/gateway.log

Nach SSH-Abbruch sollte das Gateway unter dem selben Unix-Benutzer wie bei der Installation laufen. Stoppt der Job, prüfen:

  • launchctl list | grep -i hermes
  • Log auf TELEGRAM_BOT_TOKEN / Auth-Fehler
  • ob Lease-Richtlinien langlebige User-Agenten beim Logout beenden (selten auf dediziertem M4; häufig auf geteilten Shells)

Hinweis Docker-Backend: Bei terminal.backend: docker müssen per MEDIA:/path gesendete Dateien auf dem vom Gateway lesbaren Host-Pfad liegen—nicht nur im Container. Host-sichtbare Volumes laut upstream telegram.md mounten.

Gruppenchats (optional)

Der Telegram-Privatmodus ist standardmäßig AN—in Gruppen sieht der Bot oft nur /commands, Antworten an den Bot oder Admin-sichtbaren Traffic. Für mehr Kontext Privatmodus in BotFather aus (Bot Settings → Group Privacy → Turn off) und den Bot pro Gruppe entfernen und neu hinzufügen oder zum Gruppenadmin machen.

Für „beobachten, aber ohne @ nicht antworten“ siehe TELEGRAM_OBSERVE_UNMENTIONED_GROUP_MESSAGES und erlaubte Chat-IDs—zuerst den Gruppenabschnitt in telegram.md lesen.

Fehlerbehebung

Symptom: Bot antwortet nicht (stilles Polling)

PrüfungBefehl / Fix
Gateway läuft?hermes gateway status; mit hermes gateway start neu starten
Token gültig?aus BotFather neu einfügen; bei Leak /revoke
Benutzer nicht auf Allowlist?numerische ID zu TELEGRAM_ALLOWED_USERS und Gateway neu starten
Modell/Auth-Fehler?hermes doctor; zuerst hermes CLI lokal testen
Logsgrep -i error ~/.hermes/logs/gateway.log | tail -20

Symptom: 401 Unauthorized oder Conflict: terminated by other getUpdates

  • 401: falscher oder widerrufener TELEGRAM_BOT_TOKEN.
  • Conflict: zwei Prozesse pollen denselben Bot—doppelte Vordergrund-hermes gateway-Sessions oder zweiten Host mit gleichem Token stoppen.

hermes gateway stop pkill -f "hermes gateway" 2>/dev/null || true hermes gateway start

Symptom: Vordergrund OK, unter launchd Fehler

  • launchd hat minimale Umgebung—~/.hermes/.env lesbar und Provider-Keys vorhanden prüfen.
  • PATH in SSH vs. launchctl print gui/$(id -u) vergleichen (macOS); Node-Pfade angleichen, wenn Plugins shellen.

Symptom: Gruppe sieht nur /commands

  • BotFather-Privatmodus noch AN—ausschalten oder Bot zum Admin machen; Bot neu zur Gruppe hinzufügen.

FAQ

Ersetzt Hermes Telegram die OpenClaw-Telegram-Bindungen?+
Das sind verschiedene Gateways. Migration mit hermes claw migrate ist möglich, aber zwei Bots auf einem Host duplizieren RAM und riskieren Automationskonflikte. Ein Messaging-Owner pro Lease.
Brauche ich eine öffentliche URL für Telegram?+
Nein bei Standard-Long-Polling. Webhook-Modus braucht HTTPS-Ingress (Fly.io, Railway usw.)—auf SSH-only Mac-mini-Mieten meist nicht nötig.
Telegram auf 16-GB-M4 mit Xcode-CI?+
Ja, wenn Sie schwere Jobs serialisieren. Messen Sie memory_pressure bei Archive- und Gateway-Peaks; pausieren Sie das Gateway bei großen xcodebuild-Matrizen bei Bedarf.
Reicht das Bot-Token zum Schutz?+
Nein. Das Token steuert die Bot-Identität. Tool-Ausführung folgt Hermes-Berechtigungen und Terminal-Backend-Scope—sperren Sie Workspaces, vermeiden Sie root auf Multi-Tenant-Hosts.
Wo ist die offizielle Telegram-Dokumentation?+

Headless-M4 für Hermes-Telegram-Gateway

SSH-first Apple Silicon in HK, JP, KR, SG und US—Telegram-Polling und launchd für 24/7-Betrieb.